Recipes / Soups, Stews, and Broths / Top Recipes

Classic Minestrone Soup with Spinach

Minestrone Soup with Spinach Print

Classic Minestrone Soup

  • Author: Mary Leir
  • Prep Time: 20
  • Cook Time: 60
  • Total Time: 1 hour 20 minutes
  • Yield: 8 servings 1x



For the Beans (see note):

  • 8 ounces dried white beans like cannellini, great northern, navy, or borlotti, rinsed
  • Kosher salt
  • 2 medium cloves garlic
  • 1 medium onion
  • 1 medium carrot
  • 2 celery stalks
  • 1 large sprig rosemary

For the Soup:

  • Extra-virgin olive oil
  • 1 medium onion, finely chopped
  • 1 medium carrot, finely diced
  • 2 celery stalks, finely diced
  • 1 tablespoon minced fresh rosemary leaves
  • 2 medium cloves garlic, minced
  • 1 can (14-1/2 ounces) diced tomatoes, undrained
  • 2 cans (8 ounces each) no-salt-added tomato sauce
  • 1/4 cup tomato paste
  • Pinch of red pepper flakes
  • 8 oz. dried small pasta, such as ditali, macaroni, or orecchiette, cooked according to package instructions
  • 2 cups chopped seasonal vegetables (potatoes, yellow squash, zucchini, butternut squash, cabbage, fennel, green beans or peas)
  • 1 bunch spinach, cleaned well, stems removed, roughly chopped
  • 2 tablespoons lemon juice
  • Chopped fresh herbs, such as basil, parsley, mint or rosemary, for serving
  • Kosher salt and freshly ground black pepper


  1. For the Beans: In a medium bowl, cover beans with cold water by several inches and stir in pinch of baking soda. Let beans soak 4 hours. Drain, but do not discard soaking water. Transfer bean-soaking water to a 2-quart measuring cup and add enough cold water to equal 8 cups.
  2. Pulse garlic in a food processor until finely chopped. Add onion, celery, and carrots. Pulse until onion is finely chopped. Transfer to a large soup pot and add rosemary sprig. Cover with 6 cups bean water. Beans should be covered by several inches. Add a teaspoon of salt. Bring to a boil, reduce to a simmer, and cook, topping up with water as necessary, until beans are fully tender, about 45 minutes.
  3. Using tongs, discard rosemary. Drain beans, reserving cooking liquid. Transfer bean-cooking liquid to a 2-quart measuring cup and add enough cold water to equal 8 cups.
  4. For the Soup: Heat olive oil in a large stockpot over medium-high heat. Add onion, carrot, celery, and minced rosemary. Season with a big pinch of salt and cook, stirring, until vegetables are softened but not browned, 10 to 15 minutes, adding more oil if needed.
  5. Add garlic and cook, stirring, until fragrant, about 30 seconds. Add tomatoes and tomato paste and cook, stirring, about 10 minutes.
  6. Add reserved bean-cooking liquid and beans. Let broth simmer for at least 10 minutes.
  7. Add , zucchini, squash, and green beans and simmer until vegetables are tender, about 10 minutes.
  8. Add spinach and pasta. Cook, stirring occasionally, until spinach is wilted and pasta is heated through, about 5 minutes.
  9. Serve soup immediately as is, or continue simmering for up to 2 1/2 hours for a heartier texture and flavor (if simmering for a long time, add the pasta 10 to 15 minutes before serving). Alternatively, reserve half of soup on the side, continue to simmer the other half in the pot for up to 2 1/2 hours, and stir reserved soup back in for a soup that is hearty, but still has plenty of bright vegetable flavor and texture.
  10. Stir in chopped herbs and season to taste with salt and pepper before serving.


Canned beans can be used in place of fresh. To use canned beans,  drain and rinse 2 cups of canned beans and add them to the soup (step 6), along with 8 cups of  vegetable stock. Increase simmering time to 30 minutes before proceeding to step 7.

Fresh tomatoes can be used only if ripe and in season. Peel, deseed and chop 1 pound of romas  before adding (step 5).

Cooking the pasta separate and adding it to individual serving bowls keeps the pasta from getting soggy when storing leftovers.

Did you make this recipe?

Share a photo and tag us — we can't wait to see what you've made!

Leave a Reply

Your email address will not be published. Required fields are marked *