A soup so packed with vegetables, pasta, and beans that you forget it’s technically healthy.
That’s minestrone. And once you make it from scratch, the canned stuff genuinely stops making sense.
I’ve made a lot of soups over the years, and minestrone is the one I keep coming back to. It’s endlessly forgiving, works with whatever vegetables you have on hand, and tastes like it took way more effort than it did. My husband calls it “the soup that eats like a meal” and honestly, he’s not wrong.
Here’s the version I’ve landed on after making it too many times to count.
What You’ll Need
The Base
- 3 tbsp olive oil
- 1 medium yellow onion, finely diced
- 3 garlic cloves, minced
- 2 medium carrots, diced
- 2 celery stalks, diced
- 1 medium zucchini, diced
- 1 cup green beans, trimmed and cut into 1-inch pieces
The Broth and Tomatoes
- 1 can (14 oz / 400g) diced tomatoes
- 1 can (14 oz / 400g) crushed tomatoes
- 6 cups vegetable broth (or chicken broth for a richer flavor)
- 2 tbsp tomato paste
The Beans and Pasta
- 1 can (15 oz / 425g) cannellini beans, drained and rinsed
- 1 can (15 oz / 425g) kidney beans, drained and rinsed
- 1 cup ditalini pasta (or small elbow macaroni)
Herbs and Seasoning
- 1 tsp dried oregano
- 1 tsp dried thyme
- 1 tsp dried basil
- 1 bay leaf
- Salt and black pepper, to taste
- 1 parmesan rind (optional but life-changing, see Pro Tips)
- 2 cups fresh kale or spinach, roughly chopped
To Serve
- Freshly grated Parmigiano-Reggiano
- Fresh basil leaves
- Good olive oil for drizzling
- Crusty bread or focaccia on the side
Tools You’ll Need
- Large heavy-bottomed pot or Dutch oven (at least 6-quart)
- Wooden spoon or silicone spatula
- Sharp chef’s knife
- Cutting board
- Can opener
- Ladle
- Box grater (for the Parmigiano)
Pro Tips
These small details make a noticeable difference.
- Use a parmesan rind. This is the single most underrated soup tip out there. Drop the hard rind of a block of Parmigiano-Reggiano into the broth while it simmers. It slowly melts and releases this deep, savory, umami flavor into the entire soup. Save your rinds in the freezer whenever you finish a block of parmesan. You’ll thank yourself later.
- Cook the pasta separately. Don’t cook the pasta directly in the soup if you’re planning on leftovers. Pasta sitting in broth overnight absorbs all the liquid and turns to mush. Cook it in a separate pot, add it to individual bowls at serving time, and store the rest of the soup pasta-free.
- Don’t skip the soffritto. Same rule as with a ragu: onion, carrot, and celery need a full 8-10 minutes over medium heat before anything else goes in. It’s the flavor foundation. Skip it and the soup tastes flat.
- Add the greens last. Kale or spinach goes in during the final 5 minutes of cooking. It wilts quickly and stays bright green. Add it too early and it gets slimy and sad-looking.
- Season in layers. Salt the vegetables as they cook, taste the broth before adding the beans, and taste again before serving. Minestrone needs a good amount of salt to bring everything to life. Underseasoned minestrone is the most common reason people find it bland.
Substitutions and Variations
The vegetables:
- This recipe is genuinely flexible. You can swap in diced potato, butternut squash, bell pepper, corn, or peas depending on what you have.
- In summer, fresh tomatoes (about 4 medium, roughly chopped) work beautifully in place of canned.
- Not a kale fan? Spinach, Swiss chard, or even cabbage all work well.
The beans:
- Cannellini and kidney beans are classic, but borlotti beans (if you can find them) are the most traditional Italian choice.
- For extra heartiness, mash about ¼ of the beans before adding them. It thickens the broth naturally without adding anything extra.
The pasta:
- Ditalini is traditional, but any small pasta shape works: small elbow macaroni, small shells, orzo, or even broken spaghetti.
- For gluten-free: use a gluten-free small pasta or skip the pasta and add an extra can of beans.
The broth:
- Vegetable broth keeps it fully vegetarian and vegan (just skip the parmesan rind and use dairy-free cheese or a drizzle of olive oil to finish).
- Chicken broth gives it a slightly richer, deeper flavor if that’s your preference.
Dietary notes:
- Naturally dairy-free and vegan without the parmesan rind and cheese topping.
- High in fiber, plant-based protein, and vitamins. One of the genuinely filling healthy meals that doesn’t feel like a compromise.
Make Ahead Tips
Minestrone is a meal prep dream.
The soup base (without pasta) keeps beautifully in the fridge for up to 5 days. Make a big batch on Sunday and you have lunches sorted for most of the week.
The flavor actually deepens overnight as the herbs and vegetables get more time together in the broth. Day two is often better than day one.
For the freezer: cool completely, portion into airtight containers or zip-lock bags, and freeze for up to 3 months. Thaw overnight in the fridge and reheat gently on the stove, adding a small splash of broth if needed to loosen it up.
Nutritional Information (Per Serving, Approx.)
| Nutrient | Amount (approx.) |
|---|---|
| Calories | 310 kcal |
| Protein | 14g |
| Fat | 8g |
| Carbohydrates | 46g |
| Fiber | 11g |
| Sodium | 620mg |
Based on 6 servings. Values vary based on specific brands and portions.
Meal Pairing Suggestions
- Crusty sourdough or focaccia for dunking. Non-negotiable.
- A simple arugula salad with lemon, olive oil, and shaved parmesan to cut through the richness.
- A glass of light Italian red like a Barbera d’Asti or Chianti pairs really nicely if you’re making this a proper dinner situation.
How to Make It
Total Time: About 55 minutes (20 min active, 35 min simmering) Serves: 6
Step 1: Build the soffritto
Heat 3 tbsp olive oil in a large Dutch oven over medium heat.
Add the diced onion, carrots, and celery with a good pinch of salt. Cook, stirring occasionally, for 8-10 minutes until softened and slightly golden.
Add the garlic and cook for another 1-2 minutes. The whole kitchen should smell good at this point.
Step 2: Add the zucchini and green beans
Add the diced zucchini and green beans. Stir to combine with the soffritto and cook for 3-4 minutes.
Step 3: Add tomato paste and tomatoes
Stir in the tomato paste and cook for 2 minutes, stirring frequently until it darkens slightly.
Add the diced tomatoes, crushed tomatoes, and stir everything together.
Step 4: Add broth, beans, and herbs
Pour in the vegetable broth. Add the cannellini beans, kidney beans, dried oregano, thyme, basil, bay leaf, and the parmesan rind if using.
Stir well. Bring to a gentle boil, then reduce the heat to low.
Step 5: Simmer
Partially cover and simmer on low for 25-30 minutes, stirring occasionally.
The broth should deepen in color and the vegetables should be completely tender but not falling apart.
Step 6: Cook the pasta separately
While the soup simmers, bring a separate pot of salted water to a boil.
Cook the ditalini pasta until just al dente (1-2 minutes less than the package says). Drain and toss with a tiny drizzle of olive oil to prevent sticking. Set aside.
Step 7: Add the greens and finish
Remove the bay leaf (and parmesan rind, if used).
Stir the chopped kale or spinach into the soup and cook for 3-5 minutes until just wilted.
Taste and adjust salt and pepper.
Step 8: Serve
Ladle the soup into bowls. Add a scoop of cooked pasta to each bowl.
Top with freshly grated Parmigiano-Reggiano, a few fresh basil leaves, and a drizzle of good olive oil.
Serve with crusty bread. Try to eat just one bowl (you won’t).
Leftovers and Storage
Refrigerator: Store the soup (pasta-free) in an airtight container for up to 5 days. Store cooked pasta separately.
Freezer: Freeze the soup base without pasta for up to 3 months. When reheating from frozen, add a splash of extra broth if it’s thickened too much.
Reheating: Warm on the stove over medium-low heat, stirring occasionally. Add a little broth or water to loosen if needed. Cook fresh pasta to add in when serving.
Ways to use it up:
- Pour leftover soup over cooked farro or barley for a heartier grain bowl situation
- Blend a portion of it for a creamy tomato-bean soup base (stir the chunky bits back in after)
- Use it as a pasta sauce over larger pasta shapes like rigatoni
FAQ
Can I use dried beans instead of canned?
Yes, but you’ll need to soak them overnight and cook them separately before adding to the soup. It adds several hours to the process. Canned beans work just as well here and save a lot of time.
Can I make this in a slow cooker?
Absolutely. Complete step 1 on the stovetop (the soffritto step is worth doing on the stove for flavor), then add everything except the pasta and greens to the slow cooker. Cook on LOW for 6-8 hours or HIGH for 3-4 hours. Add the greens in the last 15 minutes. Cook pasta separately before serving.
My soup is too thick. What do I do?
Just add more broth, a half cup at a time, until it’s the consistency you like. Minestrone thickens as it sits, especially if pasta is stored in it, so extra broth is always useful to have on hand.
Can I add meat to this?
Yes. Brown some Italian sausage (casings removed) or diced pancetta in the pot before starting the soffritto. The fat renders out and gives the whole soup a deeper, meatier flavor.
Do I have to use both types of beans?
Not at all. One type of bean in double the quantity works fine. Cannellini beans are the most traditional if you’re picking just one.
My soup tastes flat. What’s missing?
Almost always: salt and the parmesan rind. Taste it and season aggressively, then give it a few more minutes to develop. A small splash of red wine vinegar or a squeeze of lemon at the end also brightens everything up immediately.
Wrapping Up
Minestrone is one of those recipes that rewards you every time. It’s the soup you make when you want something nourishing without it feeling like a project.
And here’s the thing nobody tells you: it’s one of the few recipes that genuinely gets better the longer you have it. Make it today, eat it tomorrow, freeze the rest. Rinse and repeat all winter long.
Give this one a try and leave a comment below telling me how it went. Did you add anything different? Use a different bean combination? Throw in a parmesan rind and experience that revelation in real time?
I want to hear all of it. Drop your questions too if anything’s unclear before you get started. 🍲