Tomato Florentine soup is a hearty, comforting soup loaded with vegetables, herbs, tender spinach, and pasta simmered in a rich tomato broth.

Tomato Florentine soup gets its name from the inclusion of spinach, a hallmark of Florentine-style dishes that trace back to Florence in Tuscany. This version elevates classic tomato soup by adding a savory sautéed vegetable base, aromatic herbs, pasta for body, and freshly grated Parmesan for richness. It pairs perfectly with crusty bread and a simple green salad for an easy weeknight meal.
Why you’ll love this soup
- A complete one-bowl meal. With vegetables, pasta, and cheese, the soup is satisfying on its own—though a slice of crusty bread makes it even better.
- Deeper flavor than basic tomato soup. Sweating shallots, garlic, carrots, and celery with a touch of tomato paste builds savory, concentrated flavor that carries through the broth.
- Flexible and family-friendly. The recipe adapts easily—make it vegetarian or vegan, skip the pasta, or add sausage for a heartier version.

Recipe ingredients
Below are the main ingredients to prepare Tomato Florentine soup. Refer to your recipe card for exact measurements and any ingredient notes you prefer to follow.
- Butter or olive oil – use unsalted butter or extra-virgin olive oil.
- Shallots, garlic, carrots, and celery – the aromatic base that builds depth.
- Tomato paste – concentrates tomato flavor; swap tomato sauce if needed.
- Chicken or vegetable broth – vegetable broth makes this vegetarian.
- Crushed tomatoes – fire-roasted crushed tomatoes add extra richness.
- Italian seasoning and fresh basil – dried Italian seasoning or a mix of dried basil and oregano, plus plenty of fresh basil.
- Salt, pepper, and red pepper flakes – season to taste; red pepper flakes add gentle heat.
- Lemon zest and a pinch of sugar – lemon zest brightens, while sugar balances acidity.
- Grated Parmesan – stirred in at the end for creaminess and umami.
- Macaroni – elbow or small pasta to make the soup substantial.
- Baby spinach – wilts quickly and gives the soup its Florentine signature.
- To serve – additional grated or shaved Parmesan, fresh basil, and crusty bread or sourdough.

Tips and variation ideas
- Adjust the consistency. Add extra broth if you prefer a thinner soup; the pasta will thicken it as it cooks.
- Make it vegetarian or vegan. Use vegetable broth and olive oil; omit the Parmesan for a vegan version or substitute a vegan cheese.
- Boost depth. A splash of red wine or a pinch of smoked paprika during simmering adds complexity.
- Skip the pasta. Leave the pasta out for a lighter soup, or serve it on the side.
- Add protein. Sautéed Italian sausage or cannellini beans work well if you want more substance.
Serving suggestions
This soup is wonderful with crusty bread, a cheesy pull-apart loaf, garlic bread, or a classic grilled cheese sandwich. A simple green salad makes a bright contrast to the warm, savory soup.

How to store and reheat leftovers
- Refrigerator. Cool the soup and store in an airtight container for up to 3 days.
- Reheating. Rewarm gently on the stovetop over medium heat, stirring occasionally. If the pasta absorbed too much liquid, add a splash of broth to restore the desired consistency. Microwave reheating in 1-minute intervals also works.
More easy soup recipes
- Broccoli Cheese Soup
- Loaded Baked Potato Soup
- Spicy Chicken Soup
- Creamy Leek and Potato Soup

Tomato Florentine Soup
Ingredients
- 2 tablespoons butter or olive oil
- 1 shallot, chopped
- 4 cloves garlic, minced
- 3 medium carrots, chopped
- 2 celery stalks, chopped
- 2 tablespoons tomato paste
- 5 cups chicken or vegetable broth
- 1 28-ounce can crushed tomatoes
- 1 teaspoon Italian seasoning
- ¼ cup fresh chopped basil
- 1 teaspoon Kosher salt, or to taste
- ½ teaspoon freshly ground black pepper
- ⅓ teaspoon red pepper flakes
- 1 teaspoon lemon zest
- ½ tablespoon granulated sugar
- ⅓ cup grated Parmesan cheese
- 1 cup whole-wheat elbow macaroni
- 3 handfuls baby spinach
- For serving: grated or shaved Parmesan, fresh basil, sourdough bread, olive oil
Instructions
-
Saute the aromatics. In a large pot or Dutch oven, melt the butter or heat the olive oil over medium heat. Add the chopped shallot and cook 2–3 minutes until translucent. Add minced garlic and cook 20–30 seconds until fragrant.
-
Stir in the vegetables. Add chopped carrots and celery, stirring and cooking 5–7 minutes until they begin to soften.
-
Add the tomato paste. Stir in the tomato paste and cook 1–2 minutes to deepen the flavor, stirring constantly so it doesn’t burn.
-
Add broth and tomatoes. Pour in the broth and add the crushed tomatoes, stirring to combine.
-
Season the soup. Add Italian seasoning, chopped basil, salt, black pepper, red pepper flakes, lemon zest, and a pinch of sugar. Stir to distribute the seasonings.
-
Cook with pasta. Bring the soup to a gentle boil, then reduce heat to a simmer. Add the pasta and cook 15–20 minutes until al dente, adding extra broth if the soup becomes too thick.
-
Finish with cheese and spinach. Remove the soup from heat and gradually stir in the grated Parmesan until melted and incorporated. Add the baby spinach and stir until wilted, about 1–2 minutes.
-
Serve. Ladle the soup into bowls and garnish with additional Parmesan and fresh basil. Serve with crusty bread or your favorite sandwich.
Equipment
- Dutch oven or large heavy pot
Nutrition
Nutrition values are estimates and can vary based on specific ingredients and portion sizes.
How to make Tomato Florentine soup


- Cook the shallot. Melt butter or heat oil and cook the chopped shallot until soft and translucent.
- Add garlic. Stir in minced garlic and cook for 20–30 seconds.


- Cook the vegetables. Add chopped carrots and celery and sauté 5–7 minutes.
- Add tomato paste. Cook the paste with the vegetables 1–2 minutes to build flavor.


- Add broth and tomatoes. Pour in the broth and the crushed tomatoes, then season with Italian seasoning, basil, salt, pepper, red pepper flakes, lemon zest, and a pinch of sugar.
- Boil and simmer. Bring to a gentle boil, reduce heat to a simmer, add pasta, and cook 15–20 minutes until al dente.


- Finish with cheese. Remove the soup from the heat and stir in grated Parmesan until melted and smooth.
- Fold in spinach. Add the baby spinach and stir until wilted, about 1–2 minutes.
- Serve. Ladle into bowls, garnish with extra Parmesan and basil, and serve with crusty bread.