30-Minute Vegetable Bean Soup
This vegetable bean soup takes less than half an hour and fills the kitchen with the kind of smell that makes everyone wander in and ask what’s for dinner. It’s built from pantry staples, so you can pull it off on a night when the fridge looks worryingly bare.

A bowl of it is brothy and deeply savory with tender cannellini beans, soft carrots and celery, and a tangle of wilted spinach. I love that it feels like a slow-simmered pot but comes together in the time it takes to set the table.
Why This Soup Stays in the Rotation
The canned beans do the heavy lifting here. They make the soup creamy without any dairy, and the starch from the beans thickens the broth just enough that it coats a spoon.
The vegetables stay distinct, not mushy, because they get a quick sauté and a short simmer. And the spinach wilts in at the very end, so it keeps its bright color and fresh bite.
It’s the soup I make when I want something that tastes like Sunday but cooks like Tuesday.
Ingredients

- 2 tbsp olive oil: for sautéing the vegetables.
- 1 medium onion, diced
- 2 medium carrots, peeled and diced
- 2 celery stalks, diced
- 4 cloves garlic, minced: added late so it doesn’t burn.
- 1 (14.5 oz) can diced tomatoes: with their juices.
- 2 (15 oz) cans cannellini beans, drained and rinsed: these give the soup body and creaminess.
- 4 cups vegetable broth: use a good-quality one for more flavor.
- 1 bay leaf
- 1 tsp dried thyme
- Salt and freshly ground black pepper
- 2 cups packed fresh spinach: or substitute kale (see variations).
Variations / Substitutions
- Swap the beans: kidney beans or chickpeas work just as well, resulting in a slightly different texture.
- Add protein: brown some crumbled Italian sausage or diced pancetta in the pot before the vegetables, then proceed.
- Use a different green: chopped kale holds up better to longer cooking, so add it along with the beans.
- Add a kick: a pinch of red pepper flakes with the garlic gives the broth gentle heat.
- Brighten it up: a squeeze of lemon juice or a splash of red wine vinegar stirred in at the end wakes up all the flavors.
If you’re into brothy bean dishes, you might also like my white bean and escarole soup.
How to Make Vegetable Bean Soup
Step 1: Sauté the Aromatics

Set a large pot or Dutch oven over medium heat and add the 2 tbsp olive oil. Once the oil shimmers, toss in the diced onion, carrots, and celery along with a pinch of salt. Cook, stirring occasionally, until the vegetables soften and the onion turns translucent, about 7 minutes. Stir in the minced garlic and cook for 1 minute more until fragrant.
You’ll know it’s ready when the kitchen smells sweet and savory, and the vegetables look glossy and have shrunk slightly in the pot.
Step 2: Simmer the Soup

Add the drained cannellini beans, the can of diced tomatoes with their juices, the 4 cups vegetable broth, the bay leaf, and the 1 tsp dried thyme. Give everything a good stir, turn the heat to high, and bring it to a boil. Once it’s bubbling, reduce the heat to low and let the soup simmer, uncovered, for 15 to 20 minutes. Stir a couple of times to make sure nothing sticks.
The broth will deepen to a rusty orange and the beans will soak up all those savory notes. After 15 minutes, taste the broth; it should be full and round, not thin. If it needs more salt, add it now.
Step 3: Wilt the Greens

Turn off the heat. Add the 2 cups fresh spinach to the pot and stir gently. The residual heat will wilt the leaves completely in about 2 minutes.
The spinach will shrink down and turn bright green. Give everything one more fold, then taste the broth again and adjust with salt and a generous grind of black pepper.
Step 4: Ladle and Serve

Ladle the soup into deep bowls. If you want, finish each serving with a drizzle of good olive oil, a crack of black pepper, or a shower of grated Parmesan cheese.
Serve it hot, with a hunk of bread on the side for sopping up every last drop. The steam will carry that herby, savory scent right to the table.
A Few Tips for the Best Broth
- A Parmesan rind simmered in the pot with the broth adds a savory depth you can’t get from salt alone. Fish it out before serving.
- Don’t rush the onion, carrot, and celery. Let them soften until they’re translucent and smell sweet, about 7 minutes, to build the base flavor.
- For a thicker, creamier soup, scoop out a cup of the beans and some broth, blend until smooth, and stir it back in before adding the spinach.
- If you replace the spinach with kale, add the chopped kale at the same time as the beans so it has the full simmer time to become tender.
Keeping Soup Fresh
- Refrigerate: store in an airtight container for up to 4 days.
- Reheating: warm gently on the stove over medium-low heat, adding a splash of broth if it thickened too much.
- Freeze: you can freeze the soup for up to 3 months. For best texture, leave out the spinach and stir in fresh greens when reheating.
What to Serve with Vegetable Bean Soup
A crusty loaf of sourdough is my go-to. Tear off chunks and dip them straight into the bowl while the soup is still steaming.
On the side, a crisp green salad with lemon vinaigrette cuts through the richness and rounds out the meal.
Frequently Asked Questions
Can I use dried beans instead of canned?
Yes, but it will take much longer. Soak them overnight, then simmer in water until tender before adding to the soup. The total time would stretch to over an hour.
How can I make this in a slow cooker?
Sauté the aromatics on the stove first, then transfer everything except the spinach to a slow cooker. Cook on low for 6 to 8 hours. Stir in the spinach at the end until it wilts.
Is this soup gluten-free?
Yes, it’s naturally gluten-free as long as your vegetable broth doesn’t contain hidden gluten. It’s also vegan.
How do I make the soup creamier without dairy?
Blend a portion of the soup (beans and vegetables) until smooth and stir it back in. It gives the broth a silky, creamy body without any cream.

Vegetable Bean Soup Recipe
Ingredients
Method
- Set a large pot over medium heat and add the olive oil. Cook the onion, carrots, and celery with a pinch of salt until softened, about 7 minutes. Add the garlic and cook 1 more minute.
- Stir in the beans, tomatoes with their juices, broth, bay leaf, and thyme. Bring to a boil, then reduce heat and simmer for 15 to 20 minutes.
- Turn off the heat. Stir in the spinach until completely wilted, about 2 minutes. Season with salt and pepper to taste.
- Ladle into bowls and serve hot, with an optional drizzle of olive oil and a hunk of bread.
