Quick Recipe Version (TL;DR)
Quick Ingredients
- 3 tbsp extra-virgin olive oil
- 1 medium yellow onion, diced
- 2 medium carrots, diced
- 2 celery stalks, diced
- 4 garlic cloves, minced
- 2 medium zucchini, halved and sliced (about 3 cups)
- 1 tsp dried oregano, 1 tsp dried thyme, 1/2 tsp dried rosemary
- 1/4 tsp red pepper flakes (optional)
- 1 (28 oz) can crushed tomatoes
- 6 cups vegetable broth (or chicken broth)
- 2 cups chopped green cabbage or baby spinach (packed)
- 1 (15 oz) can cannellini beans, drained and rinsed
- 1 (15 oz) can red kidney beans, drained and rinsed
- 1 cup small pasta (ditalini, small shells, or elbow)
- 1/2 cup fresh basil leaves, chopped
- 1/2 cup grated Parmesan cheese, plus more for serving
- 1 to 1 1/2 tsp fine sea salt, 1/2 tsp black pepper, to taste
Do This
- 1. Warm olive oil in a large pot over medium heat. Sauté onion, carrot, and celery with a pinch of salt for 6 to 8 minutes until softened.
- 2. Add garlic, zucchini, oregano, thyme, rosemary, and red pepper flakes. Cook 2 to 3 minutes until fragrant.
- 3. Stir in crushed tomatoes and broth. Bring to a boil, then reduce to a gentle simmer and cook 15 minutes.
- 4. Add cabbage or spinach, cannellini beans, kidney beans, and pasta. Simmer 8 to 10 minutes, stirring often, until pasta is just tender.
- 5. Turn off heat. Stir in basil, Parmesan, salt, and pepper. If soup is too thick, add a bit more broth or water.
- 6. Taste and adjust seasoning with more salt, pepper, or a pinch of red pepper flakes.
- 7. Ladle into bowls and serve hot, topped with extra Parmesan, fresh basil, and a drizzle of olive oil if you like.
Why You’ll Love This Recipe
- Hearty, comforting, and packed with veggies, beans, and pasta for a complete one-pot meal.
- Flexible and forgiving: easy to swap in whatever vegetables or beans you have on hand.
- Meal-prep friendly: makes a generous batch that reheats beautifully for quick lunches or dinners.
- Simple pantry ingredients with fresh basil and Parmesan to make it taste like it came from a cozy Italian kitchen.
Grocery List
- Produce: 1 yellow onion, 2 carrots, 2 celery stalks, 4 garlic cloves, 2 medium zucchini, green cabbage or baby spinach, fresh basil, optional fresh thyme and rosemary, 1 lemon (optional for serving).
- Dairy: Parmesan cheese (wedge preferred so you can grate it and use the rind if you have one).
- Pantry: Extra-virgin olive oil, fine sea salt, black pepper, dried oregano, dried thyme, dried rosemary, red pepper flakes, 1 (28 oz) can crushed tomatoes, 1 (15 oz) can cannellini beans, 1 (15 oz) can red kidney beans, 6 cups vegetable or chicken broth, 1 cup small pasta (ditalini, small shells, elbow, or similar).
Full Ingredients
For the Rustic Minestrone
- 3 tablespoons extra-virgin olive oil
- 1 medium yellow onion, diced (about 1 1/2 cups)
- 2 medium carrots, diced (about 1 cup)
- 2 celery stalks, diced (about 3/4 cup)
- 4 garlic cloves, minced
- 2 medium zucchini, halved lengthwise and sliced into 1/4 inch half-moons (about 3 cups)
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme (or 2 teaspoons fresh thyme leaves, minced)
- 1/2 teaspoon dried rosemary, crushed between your fingers (or 1 teaspoon fresh rosemary, minced)
- 1/4 teaspoon red pepper flakes (optional, for gentle heat)
- 1 bay leaf (optional but nice)
- 1 (28 ounce) can crushed tomatoes
- 6 cups vegetable broth or low-sodium chicken broth
- 2 cups finely chopped green cabbage or packed baby spinach
- 1 (15 ounce) can cannellini beans, drained and rinsed
- 1 (15 ounce) can red kidney beans, drained and rinsed
- 1 cup small pasta such as ditalini, small shells, elbow, or orecchiette
- 1 teaspoon fine sea salt to start, plus more to taste (you will likely use 1 to 1 1/2 teaspoons total depending on broth)
- 1/2 teaspoon freshly ground black pepper, plus more to taste
Finishing & Serving
- 1/2 cup fresh basil leaves, roughly chopped or torn
- 1/2 cup freshly grated Parmesan cheese, plus extra for serving
- 1 small piece Parmesan rind (optional, adds great flavor)
- Extra-virgin olive oil, for drizzling on top (optional)
- Lemon wedges, for squeezing over bowls (optional, brightens the flavors)

Step-by-Step Instructions
Step 1: Prep all your vegetables and ingredients
Start by getting all your chopping done so cooking feels relaxed and easy. Dice the onion, carrots, and celery into small, even pieces so they cook at the same rate. Halve the zucchini lengthwise and slice into 1/4 inch half-moons. Mince the garlic. If you are using green cabbage, finely chop it; if using baby spinach, roughly chop or leave the leaves whole. Rinse and drain the cannellini and kidney beans. Roughly chop or tear the basil leaves. Grate the Parmesan cheese and, if you have a rind, set it aside to simmer in the soup later.
Measure out your dried herbs, red pepper flakes, salt, and pepper. Having everything ready before you turn on the stove makes the cooking process very smooth, especially in a one-pot recipe like this.
Step 2: Sauté the aromatics for a flavorful base
Place a large heavy-bottomed pot or Dutch oven (at least 5 1/2 quarts) over medium heat. Add the 3 tablespoons of olive oil. When the oil is shimmering but not smoking, add the diced onion, carrot, and celery along with a generous pinch of salt. Cook, stirring occasionally, for 6 to 8 minutes, until the vegetables soften and the onion turns translucent. You are building the flavor foundation here, so do not rush this step.
Add the minced garlic, sliced zucchini, dried oregano, dried thyme, dried rosemary, and red pepper flakes if using. Cook for another 2 to 3 minutes, stirring often, until the garlic is fragrant and the zucchini just begins to soften around the edges.
Step 3: Build the broth with tomatoes, herbs, and optional Parmesan rind
Pour in the crushed tomatoes and stir, scraping up any browned bits from the bottom of the pot. Add the bay leaf, the Parmesan rind if using, and the 6 cups of broth. Start with 1 teaspoon of salt and the 1/2 teaspoon of black pepper, remembering you can adjust later once everything has simmered.
Increase the heat to medium-high and bring the pot up to a gentle boil. Once it is bubbling, reduce the heat to low or medium-low to maintain a steady simmer. Partially cover the pot with a lid, leaving it slightly ajar, and let it simmer for 15 minutes. This melds the flavors and slightly thickens the broth.
Step 4: Add greens and beans to make it hearty
After the broth has simmered, add the chopped cabbage or baby spinach to the pot, along with the drained cannellini and kidney beans. Stir well to combine everything. If the soup seems too thick at this point, you can add up to 1 cup of additional broth or water to reach your preferred consistency; remember that the pasta will absorb some liquid as it cooks.
Let the soup simmer for another 5 minutes so the greens wilt and the beans warm through, soaking up some of the flavorful broth.
Step 5: Cook the pasta right in the pot
Add the 1 cup of small pasta directly to the simmering soup. Stir immediately to prevent the pasta from sticking together or to the bottom of the pot. Continue to simmer, stirring every couple of minutes, for 8 to 10 minutes, or until the pasta is just barely al dente. Cooking times can vary slightly depending on the shape you use, so begin checking a minute or two before the package suggests.
Keep an eye on the liquid level during this stage. If the soup becomes thicker than you like, stir in a splash or two more broth or water. Minestrone can be served quite brothy or more stew-like; it is up to you.
Step 6: Finish with basil, Parmesan, and final seasoning
Turn off the heat. Remove and discard the bay leaf and Parmesan rind if you used them. Stir in the chopped fresh basil and 1/2 cup of grated Parmesan cheese until they melt into the hot soup, adding a gentle richness and a fresh, fragrant finish.
Taste the broth and adjust the seasoning. Add more salt if it tastes flat, more black pepper for warmth, and a pinch of red pepper flakes if you would like extra heat. If the flavors taste a bit dull, a squeeze of fresh lemon juice brightens everything beautifully.
Step 7: Serve rustic-style with toppings
Ladle the hot minestrone into warm bowls. Finish each bowl with a small handful of extra grated Parmesan, a few fresh basil leaves, and a light drizzle of good olive oil. If you enjoy a little contrast, add a squeeze of lemon at the table. Serve with crusty bread for dipping if you like.
The soup will continue to thicken slightly as it stands. You can always thin it with a splash of hot broth or water when reheating or just before serving for a looser, brothier bowl.
Pro Tips
- Salt in layers: Add a pinch of salt at each stage (with aromatics, with broth, at the end). This builds a deeper, more balanced flavor than adding it all at once.
- Do not overcook the pasta: Stop cooking when the pasta is just al dente. It will soften a bit more as the soup sits and especially when reheated.
- Use the Parmesan rind: If you have one, simmer it with the broth. It quietly infuses the soup with a savory, almost silky richness.
- Control the thickness: For a more stew-like minestrone, let it simmer uncovered a few extra minutes. For a soupier version, add extra broth or water at the end.
- Make it your own: Minestrone is meant to be adaptable. Swap in other veggies (potato, green beans, kale) based on what is in your fridge.
Variations
- Gluten-free minestrone: Use gluten-free pasta, or replace the pasta with 3/4 cup uncooked white rice or quinoa. Add it about 15 minutes before serving and simmer until tender.
- Sausage minestrone: Brown 8 ounces of Italian sausage (casings removed) in the pot before cooking the onion mixture. Drain excess fat if needed, then continue the recipe as written for a heartier, meatier version.
- Pesto swirl minestrone: Stir 2 to 3 tablespoons of basil pesto into the pot at the very end, or dollop a spoonful into each bowl for extra herbal richness.
Storage & Make-Ahead
Let the soup cool to room temperature, then transfer it to airtight containers. Store in the refrigerator for up to 4 days. The pasta will continue to absorb liquid, so the soup will thicken as it sits; simply add a splash of water or broth when reheating to loosen it. Reheat gently on the stovetop over medium-low heat, stirring occasionally, until hot, or microwave individual portions until warmed through.
For freezing, it is best to cook and store the pasta separately to prevent it from becoming too soft. Freeze the soup (without pasta) in airtight containers for up to 3 months. Thaw overnight in the refrigerator, reheat on the stove, and add freshly cooked pasta directly to the hot soup before serving.
Nutrition (per serving)
Approximate values per serving (1/6 of the recipe): 310 calories; 11 g protein; 9 g fat; 45 g carbohydrates; 9 g dietary fiber; 9 g sugar; 540 mg sodium (will vary based on broth, salt added, and cheese). This estimate assumes vegetable broth and does not include additional toppings like extra olive oil or large amounts of extra Parmesan.

