Easy Vegetable Soup Recipe
Most weeknights, the fridge is a drawer of odds and ends: a couple of carrots, a leek going soft, half a bag of spinach. This Vegetable Soup is what turns that into dinner, and it does it in one pan, with beans that fill you up rather than leaving you picking at a bowl of broth.
I keep coming back to it because it’s forgiving. You can swap what’s in the crisper, stretch it with more broth, and it still tastes like you meant to make it. The cannellini beans are the reason it holds you until morning instead of leaving you hungry an hour later.

This post contains affiliate links. As an Amazon Affiliate, if you purchase through those links, I earn a commission. Thank you!
Why You’ll Love This Recipe
- It comes together in one pan, so there’s a single pot to wash at the end of a long day.
- The cannellini beans make it a proper meal rather than a starter, which means it works as lunch you can carry to work.
- You cook the celery, carrots, and leeks slowly first, and that softening step is what gives the broth its sweetness without any meat stock.
- Spinach and peas go in at the very end, so they stay green and don’t turn to sludge.
- It freezes well, which makes a double batch worth the same ten minutes of chopping.
Ingredients You’ll Need
You’ll need all the ingredients shown in the photograph below.
Leeks. They give this soup a gentler, sweeter allium flavor than onion does. Slice them and rinse the slices in a bowl of water, because grit hides between the layers and you won’t see it until it’s in your spoon.
Cannellini beans. These are the structure. Rinse and drain the tin well, since the canning liquid is salty and cloudy, and it muddies the broth. If you want a thicker soup, mash a spoonful of the beans before they go in.
Fresh rosemary. One sprig is enough, and yes, rosemary belongs in vegetable soup. It’s the ingredient that lifts this above a plain pot of vegetables. Fresh gives you a cleaner, more resinous note than dried, and you’re cooking it in the oil at the start so it perfumes the whole base. Pull the woody stem before serving and leave the softened needles in.
Baby spinach and frozen peas. Both cook in about three minutes, so treat them as a finish, not a base vegetable. Frozen peas are as good as fresh here and save you shelling anything.
Parmesan. Grated over the top at the end. If you’re keeping this vegetarian for guests, check the label, since traditional Parmesan is made with animal rennet. To keep it vegan, leave the Parmesan off or use a plant-based version.

How to Make Vegetable Soup
A complete printable recipe and the measurements in both US customary and metric are available in the recipe card below.
Build the Base
Heat a tablespoon of olive oil in a large pan over medium heat. Add the minced garlic and the rosemary sprig and let them cook for about a minute, until the kitchen smells of both.
Add the celery, carrots, and leeks and cook them gently for about 10 minutes, stirring often, until they’ve softened. Don’t rush this part. Softened, sweet vegetables here are what a good broth is built on.


Simmer with the Beans
Add the drained cannellini beans and the vegetable broth. Bring it up to a boil, then drop the heat and let it simmer for 30 minutes. Stir now and then, and if it tightens up more than you want, loosen it with a splash more broth or water.
Finish with the Greens
Stir in the baby spinach and frozen peas and cook for about 3 minutes, just until the spinach wilts and the peas are hot and still bright green. Taste, then season with salt and pepper. Serve with grated Parmesan on top.


Recipe Notes and Expert Tips
- Use low-sodium broth if you have it. The beans and Parmesan both bring salt, so you’ll have more room to season at the end.
- Rinse the beans until the water runs clear. The starchy tin liquid clouds the broth and adds salt you didn’t measure.
- Wash the sliced leeks in a bowl of water. Grit sits between the layers, and rinsing the whole leek before you slice it doesn’t reach it.
- Keep the greens for the last three minutes. Spinach added early goes grey and slippery, and the peas turn dull. Added at the end, the spinach and peas stay bright green.
Recipe Variations
- Make it heartier with pasta or grains. A handful of small pasta or cooked rice stirred in near the end turns it into a fuller meal, though pasta will keep drinking the broth as it sits, so add more liquid if you’re saving leftovers. This changes the consistency, so treat it as a supported swap rather than the tested version.
- Swap the beans. Chickpeas or butter beans work in place of cannellini and shift the texture a little: chickpeas are firmer and butter beans creamier. Both are supported here since they behave much like the cannellini.
- Keep it vegan. The soup itself is already vegan, so it’s only the grated Parmesan on top you need to skip or swap for a plant-based cheese. This is tested, and it’s the single thing I do whenever I’m serving vegans.
How to Store Leftovers
Cool the soup, then keep it in an airtight container in the fridge. Refrigerate within two hours of cooking and eat it within three to four days. Reheat gently on the stovetop until it’s steaming, adding a splash of broth or water to loosen it, since the beans thicken it as it stands.
It also freezes well for up to three months. If you plan to freeze it, do that before you add the spinach, which goes soft after thawing, and stir fresh spinach in when you reheat.
What to Serve With Vegetable Soup
This is a soup that wants something to dip. I put out a warm loaf of homemade French bread for tearing and mopping the bowl, and that’s usually all it needs. When I want it to be more of a sit-down meal, I serve it alongside my baked potato, which turns a bowl of soup into a full plate without much extra effort.
FAQs
Yes. A single sprig of fresh rosemary, cooked in the oil at the start, gives the broth a warm, woodsy depth that keeps a vegetable soup from tasting flat. Use it whole so you can lift out the stem before serving, and stick to one sprig, since rosemary turns bitter if you overdo it.
Something to dip is the natural partner, so a warm loaf of crusty bread does most of the work. For something light, serve it alongside a baked potato or a simple green salad. The soup is filling enough on its own that you don’t need much more than that.
Yes, and it’s a good candidate for it. Make the full batch, then cool and refrigerate it. Storage timings are in the section above. The one thing worth doing differently for a make-ahead batch is leaving the spinach out until you reheat, so it stays bright rather than going soft in the pot.
More Homemade Soup Recipes for You to Try at Home
If this one earns a spot in your rotation, here are a few more soups from my kitchen worth putting on the stove next.
- My Easy Minestrone Soup gives you the same bean-and-vegetable comfort, built out with zucchini, two kinds of beans, and small pasta when you want something more substantial.
- On a night you want warmth and a little spice, Creamy Coconut Lentil Soup gets its body from curry powder, ginger, and coconut milk instead of beans.
- My Creamy Mushroom Soup is richer and smoother, finished with sour cream, for when you’re after something velvety rather than brothy.
- Roasting the tomatoes and garlic first gives my Roasted Tomato Soup a deep, sweet edge, and it’s a natural partner for the same crusty bread.

Equipment
- Silicone freezer trays if you plan to freeze portions
Ingredients
- 2 sticks celery sliced
- 3 carrots chopped
- 2 large leeks cleaned and sliced
- 2 cloves garlic minced
- 1 sprig fresh rosemary
- 1 tbsp olive oil
- 14 ounces tin cannellini beans rinsed and drained
- 4 cups vegetable broth
- 3 cups baby spinach
- 1 cup frozen peas
- Parmesan cheese grated

Video
Instructions
- Heat a tablespoon of olive oil in a large pan over medium heat. Add the garlic and rosemary and cook for about a minute, stirring occasionally, until fragrant. Add the celery, carrots, and leeks, and cook gently for about 10 minutes, stirring often, until the vegetables are softened.2 sticks celery, 3 carrots, 2 large leeks, 2 cloves garlic, 1 sprig fresh rosemary, 1 tbsp olive oil
- Add the cannellini beans and vegetable broth to the pan. Bring the soup to a boil, then reduce the heat and let it simmer for 30 minutes. Stir occasionally, adding more broth or water if needed to maintain the consistency.14 ounces tin cannellini beans, 4 cups vegetable broth
- Finally, add the spinach and frozen peas to the pot. Cook for about 3 minutes, just until the greens are tender and vibrant. Season the soup with salt and pepper to taste before serving. Serve with Parmesan cheese and enjoy!3 cups baby spinach, 1 cup frozen peas, Parmesan cheese

Add Preferred Source