Hearty Vegetable Soup

This is my go-to “clean out the crisper” soup: a rich, tomato-kissed broth loaded with tender vegetables and beans, finished with a little acid and herbs for that slow-simmered taste in under an hour.

Elena Martinez

Elena Martinez

Elena Martinez is a former bakery manager turned full-time food writer and recipe developer. With over a decade of experience translating professional culinary techniques into approachable home cooking, she believes that a great meal doesn't require a culinary degree or expensive ingredients.

Skip to Recipe
Hearty Vegetable Soup

Ready to cook?

Skip the story, grab your apron, and let's get straight to the ingredients.

Jump to Recipe

There are nights when dinner needs to do three jobs at once: use up the vegetables you meant to cook days ago, taste like you planned ahead, and leave you with leftovers that actually get eaten. This hearty vegetable soup is that dinner. It is cozy and filling, but it stays bright and fresh because we build flavor in layers, not by overcooking everything into mush.

My bakery-manager brain loves a reliable formula, and soup is basically the most forgiving formula in the kitchen. If you can chop, stir, and taste as you go, you can make an excellent pot of vegetable soup. I will walk you through the why, so you can confidently swap in what you have.

A steaming bowl of hearty vegetable soup with carrots, celery, potatoes, beans, and herbs in a rich tomato broth, photographed on a rustic wooden table with a spoon nearby

What makes it hearty

Hearty is not just about adding more vegetables. It is about texture and balance. Here is what I aim for:

  • Aromatics first: onion, carrot, and celery create a savory base that makes everything taste more “soupy” in the best way.
  • One starchy vegetable: potatoes , sweet potatoes, winter squash, or even a handful of rice or pasta make the bowl feel substantial.
  • Protein and body: beans, lentils, or chickpeas give staying power and a creamy element without cream.
  • Umami: tomato paste, a little soy sauce, mushrooms, or Parmesan rind (optional) adds depth.
  • A finish: a squeeze of lemon or a splash of vinegar plus fresh herbs wakes up the whole pot.

The key technique

If you only take one tip from this page, make it this: take five extra minutes to brown your tomato paste and sauté your vegetables before you add broth.

When tomato paste hits hot oil, it browns and sweetens. When your onions, carrots, and celery sweat slowly, they give up flavorful sugars that form the backbone of the soup. That combination mimics the taste of a longer simmer, even when dinner has a deadline.

I also like to add garlic and dried herbs after the vegetables soften, but before the broth goes in. Dried herbs bloom in oil, which helps them taste fuller and less dusty.

Vegetables and swaps

Think of this soup as a flexible template. Use what you love and what needs saving.

Sturdy vegetables

  • Carrots, celery, onions: the classic base.
  • Potatoes or sweet potatoes: hearty, comforting, and forgiving.
  • Green beans: add them in the last 10 to 12 minutes so they stay bright (cut small if you want them tender sooner).
  • Zucchini: add late so it stays tender, not soggy.
  • Cabbage or kale: cabbage can go in earlier, kale is best near the end.
  • Cauliflower: cut into small florets so it turns tender in about 10 to 12 minutes.
  • Frozen peas or corn: stir in at the very end for sweetness.

Delicate vegetables

Spinach, chard, and tender greens should go in during the last 2 to 3 minutes. They will wilt beautifully without losing their color.

Leftover roasted vegetables

Roasted vegetables are a gift to soup. Chop them and stir them in during the last 10 minutes, just long enough to warm through. They already have caramelized edges, which makes the broth taste deeper right away.

Chopped onions, carrots, celery, potatoes, and green beans arranged on a wooden cutting board next to a Dutch oven on a kitchen counter

Beans, grains, and pasta

This is where soup becomes dinner. Pick one, or combine two in smaller amounts.

  • Beans: cannellini, kidney beans, chickpeas, or black beans all work. For a thicker broth, mash a half cup of beans and stir them back in.
  • Lentils: brown or green lentils hold their shape. Red lentils dissolve and make the soup naturally creamy.
  • Grains: barley, farro, or brown rice add chewiness and make it extra filling. If you want brothy leftovers, cook grains separately and add to each bowl.
  • Pasta: small shapes like ditalini or elbow are perfect, but cook them separately if you want leftovers that do not soak up all the broth.

Hearty Vegetable Soup Recipe

Ingredients (serves 6)

  • 2 tbsp olive oil
  • 1 large yellow onion, diced (about 1/2-inch)
  • 2 medium carrots, diced (about 1/2-inch)
  • 2 celery ribs, diced (about 1/2-inch)
  • 1 tsp kosher salt, plus more to taste
  • 3 to 4 garlic cloves, minced
  • 2 tbsp tomato paste
  • 1 tsp dried oregano
  • 1/2 tsp dried thyme (or Italian seasoning)
  • 1/4 tsp red pepper flakes (optional)
  • 6 cups vegetable broth (or chicken broth), preferably low-sodium
  • 1 (14.5 oz) can diced tomatoes, with juices
  • 1 large potato (about 12 oz), peeled or unpeeled, diced (about 1/2-inch)
  • 2 cups chopped sturdy vegetables (green beans, zucchini, cabbage, cauliflower, or a mix)
  • 1 (15 oz) can beans (cannellini, kidney, or chickpeas), drained and rinsed
  • 2 cups chopped leafy greens (kale, spinach, or chard)
  • 1 to 2 tbsp lemon juice or red wine vinegar
  • Black pepper, to taste
  • Optional: 1 Parmesan rind (skip for vegan)
  • Optional garnish: chopped parsley, grated Parmesan, or a drizzle of olive oil

Instructions

  1. Sauté the base. In a large pot or Dutch oven, warm the olive oil over medium heat. Add onion, carrots, celery, and salt. Cook 8 to 10 minutes, stirring occasionally, until the vegetables soften and the onions look translucent.
  2. Bloom aromatics. Add garlic, tomato paste, oregano, thyme, and red pepper flakes. Cook 2 minutes, stirring constantly, until the tomato paste darkens slightly and smells sweet.
  3. Build the broth. Stir in the broth and diced tomatoes. Scrape the bottom of the pot to lift any browned bits. Add the potato and the Parmesan rind, if using.
  4. Simmer. Bring to a gentle boil, then reduce to a steady simmer. Cook 12 to 15 minutes, or until the potato is just tender.
  5. Add the rest of the vegetables. Add your chopped sturdy vegetables and simmer until tender-crisp, 8 to 12 minutes. (Green beans and small cauliflower florets often like the full 10 to 12.)
  6. Add beans and greens. Stir in the beans and greens. Simmer 2 to 4 minutes, just until the greens wilt and everything is hot.
  7. Finish and season. Remove the Parmesan rind. Stir in lemon juice or vinegar. Taste and adjust with more salt and black pepper. Serve hot with your favorite garnish.

Timing notes

Total time: about 45 to 55 minutes. If you chop slowly, no stress. This soup is patient.

Easy flavor boosts

Vegetable soup is friendly, but it can taste flat if it is missing one of these finishing touches. Pick one or two.

  • Acid at the end: lemon juice, red wine vinegar, or a tiny splash of pickle brine.
  • Something salty and savory: Parmesan, a spoon of pesto, a dash of soy sauce, or miso stirred in off heat.
  • Fresh herbs: parsley, basil, or dill.
  • Heat: chili flakes, hot sauce, or a pinch of smoked paprika.

If your soup tastes like it needs “something” but you cannot name it, try a pinch of salt first, then a squeeze of lemon. That combo fixes more pots of soup than any fancy ingredient.

Make it your way

Vegan

Use vegetable broth and skip the Parmesan rind. For extra depth, add 1 tsp soy sauce or 1 tbsp white miso stirred in at the end.

Gluten-free

Skip pasta or use a gluten-free pasta cooked separately. Double-check your broth label.

Higher protein

Add an extra can of beans, or swap half the beans for cooked lentils. You can also stir in shredded rotisserie chicken if that fits your weeknight reality.

Extra cozy and thick

Blend 2 cups of the soup (carefully) and stir it back in, or mash some of the potatoes and beans against the side of the pot.

A Dutch oven on the stove with vegetable soup gently simmering, visible potatoes, carrots, beans, and herbs in a tomato broth

Storage and reheating

Refrigerator

Cool quickly, then refrigerate within 2 hours. Store in an airtight container for up to 4 days. The flavor gets even better on day two.

Freezer

Freeze for up to 3 months. I like portioning into pint containers for easy lunches.

Freezer tip: If you plan to add pasta or grains, cook and store them separately. They keep absorbing broth as they sit, which can turn leftovers into more of a stew than a soup.

Reheating

Reheat gently on the stove over medium-low, adding a splash of water or broth if it has thickened. Finish with a fresh squeeze of lemon to bring it back to life.

Troubleshooting

My soup tastes bland

Add salt in small pinches, tasting each time. (Broth salt levels vary, so this is normal.) Then add acid (lemon or vinegar). If it still feels thin, stir in a spoonful of tomato paste, miso, or Parmesan.

My vegetables are too soft

Next time, stagger them. Start with potatoes and sturdier vegetables, then add quick-cooking vegetables and greens at the end. For this batch, lean into it and call it comfort soup. A drizzle of olive oil and fresh herbs helps.

My soup is too thick

Add broth or water until it is the texture you like, then re-season with salt and a little acid.

My soup is too acidic

Add a pinch of sugar or stir in a bit more broth. A small knob of butter also rounds things out if you are not keeping it vegan.

What to serve with it

This soup can absolutely be dinner on its own, but it loves a simple side.

A bowl of hearty vegetable soup served with a slice of crusty bread on a linen napkin, set on a cozy dinner table