Winter Minestrone Soup with Kale, White Beans, and Pesto
This winter minestrone soup is packed with tender cannellini beans, ribbons of kale, and a rich tomato broth that tastes like it simmered all afternoon. It’s the kind of meal that warms you from the inside out on a cold weeknight.

A spoonful of pesto stirred in at the end adds brightness and just the right kick of garlic and basil.
Why This Minestrone Works
I keep coming back to this minestrone because it’s built almost entirely on pantry staples, yet tastes like something from a slow-simmered Sunday pot.
The Parmesan rind adds a savory depth you can’t get from broth alone, and the pesto brightens everything without extra work.
It’s substantial enough for dinner on its own, but it also freezes beautifully for later.
Ingredients

- 2 tbsp extra-virgin olive oil: for sautéing the vegetables
- 1 medium onion, diced: yellow or white onion both work
- 2 carrots, diced: peeled if you prefer
- 2 celery stalks, diced: the inner stalks stay tender best
- 3 cloves garlic, minced: use fresh, not jarred
- 2 tbsp tomato paste: adds deep tomato backbone
- 1 (15-oz) can diced tomatoes: fire-roasted are great here
- 4 cups vegetable broth: or chicken broth
- 2 cups water: to balance the richness
- 1 Parmesan rind: (optional but recommended): leftover from a wedge of cheese
- 1 tsp dried oregano: or 1 tbsp fresh
- 1/2 tsp dried thyme: or 1 tsp fresh
- 1 bay leaf: remove before serving
- 1 tsp salt: plus more to taste
- 1/2 tsp black pepper: freshly ground if you can
- 1 (15-oz) can cannellini beans, rinsed and drained: or other white beans
- 1/2 cup ditalini pasta: or small shells, orzo
- 1 bunch lacinato kale: stems removed, leaves thinly sliced (about 4 cups)
- 1/4 cup pesto: store-bought or homemade, for serving
Variations / Substitutions
- Greens: Swap the kale for spinach, escarole, or Swiss chard. Spinach wilts in seconds, so add it at the very end off the heat.
- Protein: Stir in a cup of shredded rotisserie chicken or browned Italian sausage with the beans to make it even heartier.
- Dairy-free: Omit the Parmesan rind and top the finished soup with a spoonful of dairy-free pesto or a drizzle of good olive oil.
- Extra herbs: A handful of chopped fresh basil or parsley right before serving lifts the whole pot.
- For another warming soup, try our Creamy Tomato Basil Soup.
How to Make Winter Minestrone Soup
Step 1: Sauté the Aromatics

Heat the 2 tbsp olive oil in a large, heavy-bottomed pot or Dutch oven over medium heat. Add the diced onion, carrots, and celery and cook, stirring now and then, for about 5 minutes, until the onion turns translucent and the vegetables start to soften. Stir in the minced garlic and cook just until fragrant, about 30 seconds.
Right away you’ll smell that sweet, savory base. The carrots and celery should still have a little resistance, not be fully soft.
Step 2: Build the Flavor Base

Spoon the tomato paste directly into the pot and cook, stirring constantly, for about 1 minute. The paste will darken slightly and smell toasty. Then pour in the entire can of diced tomatoes with their juices, the 4 cups broth, the 2 cups water, the oregano, thyme, bay leaf, 1 tsp salt, and ½ tsp pepper. Tuck the Parmesan rind in, if using, and bring it all to a gentle boil.
The broth will turn a rich red-orange colour, and little bubbles should start breaking the surface around the edges. Letting the tomato paste bloom first builds a deeper, more rounded flavour.
Step 3: Simmer the Soup

Once the pot reaches a boil, lower the heat so the liquid is just simmering, not bubbling hard. Cover with a lid, leaving it slightly ajar, and simmer for 20 minutes. The carrots should be tender enough to pierce easily with a fork.
Your kitchen will fill with a warm, herby steam. Give it a stir once in a while and peek inside: the Parmesan rind may have softened and partly dissolved, which is exactly what you want.
Step 4: Add the Pasta and Beans

Add the rinsed cannellini beans and the ½ cup of pasta right into the simmering broth. Keep the soup at a low boil and cook, uncovered, for 8 to 10 minutes. Stir occasionally, and taste a piece of pasta to check for doneness. It should be al dente, still with a tiny bite.
The starches from the pasta will thicken the broth slightly, giving the soup a heartier body. If you’re planning leftovers, see the tip below about cooking pasta separately for the silkiest texture days later.
Step 5: Stir in the Kale

Fish out the bay leaf and any remaining solid Parmesan rind with a spoon and discard them. Add the sliced kale in handfuls, stirring as it wilts down. Cook for 2 to 3 minutes, just until the leaves turn tender and bright green.
The kale will look like too much at first, but it shrinks quickly in the hot broth. Leaving it bright green means it keeps its gentle, earthy flavor without turning mushy.
Step 6: Serve with a Swirl of Pesto

Ladle the soup into deep bowls. Spoon a little pesto onto the centre of each serving, then swirl it in with the back of the spoon so it ribbons through the broth. Finish with a crack of black pepper and serve right away.
The pesto hits the hot soup and releases an herby, garlicky aroma that makes each bowl feel fresh and complete.
Tips for the Best Minestrone
- Save Parmesan rinds in the freezer: Stash them in a zip-top bag after you finish a wedge. Toss one into any soup or stew for an instant umami boost.
- For better leftovers, cook the pasta separately: Pasta absorbs broth as it sits. If you’ll have leftovers, boil the pasta on its own and spoon some into each bowl when serving. This keeps the broth brothy.
- Use the right pot: A heavy-bottomed Dutch oven or soup pot distributes heat evenly and keeps the tomato paste from scorching on the bottom.
- Don’t toss the kale stems too quickly: While the thick stems are tough when whole, you can chop them finely and sauté them with the aromatics so nothing goes to waste.
Make a double batch and freeze half for later.
| Servings | Diced Tomatoes | Broth | Cannellini Beans | Pasta |
|---|---|---|---|---|
| 4 | 1 (15-oz) can | 4 cups | 1 (15-oz) can | ½ cup |
| 8 | 2 (15-oz) cans | 8 cups | 2 (15-oz) cans | 1 cup |
Storing Leftover Minestrone
Refrigerate: Store leftovers in an airtight container in the fridge for up to 4 days. The flavors continue to meld overnight, so it’s even better the next day.
Reheating: Warm gently on the stovetop over medium heat, adding a splash of broth or water if the soup has thickened. If you cook the pasta right in the soup, it will soak up liquid as it sits; see the tip above for the best leftover texture.
What to Serve With Winter Minestrone
Crusty sourdough bread for dunking is a must. A simple arugula salad dressed with lemon and olive oil brings a peppery, bright contrast that cuts through the richness of the pesto and Parmesan. A glass of medium-bodied red wine like Chianti or Montepulciano has just enough acidity to stand up to the hearty broth.
Frequently Asked Questions
Can I use a different type of pasta?
Yes, any small shape works. Orzo, small shells, broken spaghetti, or even cheese tortellini are all good swaps.
How can I make this soup vegan?
Skip the Parmesan rind and use a good-quality vegetable broth. Top with a vegan pesto or a drizzle of extra-virgin olive oil.
Can I use dried beans instead of canned?
Absolutely, but you’ll need to soak and cook them first. Use about ½ cup of dried beans, soak them overnight, then simmer until tender before starting the soup.
My soup is too thick after sitting, what should I do?
That’s normal, the pasta and beans continue to absorb liquid. Just stir in a splash of broth or water when you reheat it.

Winter Minestrone Soup Recipe
Ingredients
Method
- Heat the olive oil in a large heavy pot over medium heat. Add the onion, carrots, and celery and cook, stirring occasionally, until softened, about 5 minutes. Stir in the garlic and cook 30 seconds.
- Add the tomato paste and cook, stirring, for 1 minute until it darkens. Pour in the diced tomatoes, broth, water, oregano, thyme, bay leaf, salt, and pepper. Add the Parmesan rind (if using) and bring to a gentle boil.
- Reduce the heat to a simmer, cover partially, and cook for 20 minutes, until the carrots are tender.
- Stir in the beans and pasta. Cook at a low boil, uncovered, until the pasta is al dente, 8 to 10 minutes.
- Remove the bay leaf and Parmesan rind. Add the kale in handfuls and stir until wilted, 2 to 3 minutes.
- Ladle into bowls, swirl in a spoonful of pesto, and serve right away.
