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.

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

Why this recipe works

Hearty is not just about adding more vegetables. It is about texture and balance.

  • 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: 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 onions, carrots, and celery sweat slowly, they give up flavorful sugars that form the backbone of the soup. Together, it mimics the taste of a longer simmer, even when dinner has a deadline.

Adding garlic and dried herbs after the vegetables soften, but before the broth goes in, helps too. Dried herbs bloom in oil, which helps them taste fuller and less dusty.

Ingredient notes

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

Sturdy vegetables: carrots, celery, onions (the classic base); potatoes or sweet potatoes (hearty and forgiving); green beans (add 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 so they wilt without losing their color.

Leftover roasted vegetables: chop and stir in during the last 10 minutes, just long enough to warm through. Their caramelized edges make the broth taste deeper right away.

Beans, grains, and pasta: beans like 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, while red lentils dissolve and make the soup naturally creamy. Grains like barley, farro, or brown rice add chewiness; if you want brothy leftovers, cook grains separately and add to each bowl. Pasta: small shapes like ditalini or elbow are perfect, but cook separately if you want leftovers that do not soak up all the broth.

Equipment you will need

  • Large pot or Dutch oven (for sautéing and simmering)
  • Cutting board and knife (for dicing vegetables)
  • Wooden spoon or heatproof spatula (for stirring and scraping up browned bits)
  • Can opener (for diced tomatoes and canned beans)
  • Ladle (for serving)

Pro tips

  • Brown the tomato paste. Let it cook in the hot oil for about 2 minutes, stirring constantly, until it darkens slightly and smells sweet.
  • Bloom dried herbs in oil. Add dried oregano and thyme after the vegetables soften but before adding broth, so the herbs taste fuller and less dusty.
  • Stagger additions. Add potatoes first, then sturdy vegetables, then beans and greens at the end so everything keeps its texture.
  • Finish with acid. A squeeze of lemon juice or splash of vinegar at the end wakes up the whole pot.
  • Fix “flat” soup. If it tastes like it needs “something,” try a pinch of salt first, then a squeeze of lemon.

Substitutes that work

  • Broth: use vegetable broth or chicken broth (preferably low-sodium).
  • Starchy base: swap the potato for sweet potatoes or winter squash, or use a handful of rice or pasta.
  • Beans: use cannellini, kidney beans, or chickpeas; black beans also work.
  • Greens: use kale, spinach, or chard; add tender greens in the last 2 to 3 minutes.
  • Finish: use lemon juice or red wine vinegar (or a tiny splash of pickle brine).
  • Umami boosters: tomato paste, Parmesan rind (optional), a dash of soy sauce, or miso stirred in off heat.

Variations

  • 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

Serving ideas

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

  • Crusty bread or garlic toast
  • Grilled cheese or a melty quesadilla
  • Simple green salad with a sharp vinaigrette
  • Roasted broccoli or Brussels sprouts if you want extra vegetables

Optional garnishes: chopped parsley, grated Parmesan, or a drizzle of olive oil.

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

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. Portioning into pint containers makes 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.

Common mistakes

  • Skipping the sauté and tomato paste browning: taking five extra minutes to sauté the vegetables and brown the tomato paste builds deeper flavor and a more “slow-simmered” taste.
  • Overcooking quick vegetables and greens: add sturdy vegetables after the potatoes, then add greens at the end so they stay vibrant.
  • Adding pasta or grains directly to the pot for leftovers: they keep absorbing broth and can turn leftovers into stew; cook and store separately if you want it brothy.
  • Not finishing with salt and acid: if the soup tastes flat, adjust salt first, then add lemon juice or vinegar at the end.

FAQ

How do I keep the vegetables from turning to mush?

Stagger them: start with potatoes and sturdier vegetables, then add quick-cooking vegetables and greens at the end. Spinach, chard, and other tender greens only need the last 2 to 3 minutes.

How can I make the broth thicker without adding cream?

Mash a half cup of beans and stir them back in, mash some potatoes against the side of the pot, or blend 2 cups of the soup (carefully) and stir it back in.

My soup tastes bland. What should I do?

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

Why does the recipe suggest cooking grains or pasta separately?

For brothy leftovers. Grains and pasta keep absorbing broth as they sit, which can thicken the soup a lot by day two.

My soup is too thick. How do I fix it?

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. How do I fix it?

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.

The recipe

Hearty Vegetable Soup

A flexible, hearty vegetable soup built on sautéed aromatics and browned tomato paste, then simmered with potatoes, sturdy vegetables, beans, and greens. Finished with lemon juice or vinegar and served with your favorite garnish.

Prep
15 minutes
Cook
35 to 40 minutes
Total
45 to 55 minutes
Yield
Serves 6

Ingredients

  • 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.

Notes

  • Total time: about 45 to 55 minutes. If you chop slowly, no stress. This soup is patient.
  • Make-ahead note: The flavor gets even better on day two.
  • For a thicker broth: mash a half cup of beans and stir them back in.
  • For brothy leftovers: if adding pasta or grains, cook and store them separately so they do not soak up all the broth.
  • Reheating: warm gently and add a splash of water or broth if thickened; finish with a fresh squeeze of lemon.

Nutrition

  • Calories: ~220
  • Fat: ~6 g
  • Carbs: ~35 g
  • Protein: ~9 g
  • Fiber: ~8 g
  • Sugar: ~7 g
  • Sodium: ~700 mg

Nutrition values are approximate and will vary with broth, bean choice, and exact vegetables used.