Hearty vegetable soup with colorful vegetables in tomato broth

Hearty Vegetable Soup — Rich Broth, Tender Vegetables, One Pot

On a cold afternoon, a bowl of genuinely good vegetable soup does something that a thin, watery version never manages: it fills you up and keeps you warm. The difference between the two is almost entirely in the technique. This vegetable soup starts with a proper sauté of onion, celery, and carrot in olive oil, which builds a savory base before a single drop of broth goes in. From there, the tomato and herb-loaded broth deepens as the vegetables cook through, and by the time it’s done, the whole pot smells like something that has been going for much longer than 50 minutes.

This recipe uses seven vegetables, canned tomatoes, a straightforward herb blend, and vegetable broth. It makes six generous servings, keeps well in the fridge for five days, and freezes perfectly. The recipe is naturally vegan, gluten-free, and adaptable to whatever vegetables you have on hand. That combination makes it one of the most practical things you can cook on a Sunday afternoon.

Deep bowl of hearty vegetable soup with colorful vegetables in tomato broth

Why You’ll Love This Vegetable Soup

  • Rich broth, not watery. Sautéing the aromatics in olive oil before adding any liquid builds a savory foundation that carries through the entire pot. Soups that skip this step taste thin even with good ingredients.
  • Seven vegetables, zero complicated prep. Carrots, celery, onion, potato, green beans, corn, and zucchini all cut roughly the same size, go in at staggered times based on how long they take to cook, and come out perfectly tender without any of them turning to mush.
  • Naturally vegan and gluten-free. No substitutions needed. The base recipe is free of both animal products and gluten as written, which makes it one of the few weeknight recipes that works for almost every dietary restriction at the table.
  • Better the next day. The broth thickens slightly overnight as the potato starch releases, and the flavors meld into something noticeably deeper than the fresh-cooked version. It’s worth making a full pot specifically for leftovers.
  • Genuinely filling without being heavy. The combination of potato for starch, beans for texture, and a well-seasoned broth means this soup satisfies as a main course, not just a starter.
Overhead view of vegetable soup in white bowl showing colorful vegetables

Ingredients You’ll Need

Recipe Timing

DetailInfo
Servings6
DifficultyEasy
CourseMain Course, Soup
CuisineAmerican
Prep Time15 minutes
Cook Time35 minutes
Total Time50 minutes

Cut your vegetables to roughly the same size, around 2 cm (3/4 inch) pieces. Uniform cuts mean everything reaches tenderness at the same time. Larger chunks of potato alongside very thin carrot slices is a common reason some pieces are overcooked while others are still firm.

  • 3 tbsp olive oil — The cooking fat that starts the flavor base. Olive oil handles the sauté heat comfortably and contributes a mild fruitiness that works well with the tomato broth. Avocado oil is a neutral alternative.
  • 1 large yellow onion, diced — The foundation of the flavor base. Yellow onion sweetens as it softens and provides depth that white onion lacks at this level of simplicity.
  • 3 medium carrots, sliced into rounds (about 1.5 cups / 200g) — Carrots go in early because they take the longest to cook among the softer vegetables. Look for uniformly sized ones so you can cut consistent rounds without adjustment.
  • 3 stalks celery, sliced (about 1 cup / 110g) — Adds a slightly vegetal, savory note that disappears into the broth but would be noticeably absent without it.
  • 4 cloves garlic, minced — Added after the onion and carrot to prevent burning. Burnt garlic turns bitter and is impossible to correct after the broth goes in.
  • 2 medium Yukon Gold potatoes, peeled and diced (about 2 cups / 300g) — Yukon Golds hold their shape better than russet potatoes during long simmering. Russets break down and thicken the broth, which is fine if you want a slightly heartier texture but less defined potato pieces.
  • 1 can (400g / 14 oz) diced tomatoes with their juice — Provides the acidity, body, and color that define the broth. Don’t drain them; the tomato liquid is part of the flavor base.
  • 1.5 litres (6 cups) vegetable broth, low sodium — Low sodium gives you control over the final seasoning. Full-sodium broth can make the finished soup too salty, especially as it reduces slightly during simmering.
  • 1 cup (150g) fresh or frozen green beans, trimmed and cut into 3 cm pieces — Go in during the last 15 minutes since they cook faster than potato and carrot. Canned green beans are too soft for this recipe and turn mushy.
  • 1 cup (150g) frozen or fresh corn kernels — Adds sweetness and color. Frozen corn goes in straight from the bag; fresh corn off the cob works equally well.
  • 1 medium zucchini, diced (about 1.5 cups / 200g) — The quickest-cooking vegetable in the pot. It goes in during the last 8 to 10 minutes; any longer and it loses its texture completely and blends into the broth invisibly.
  • 1 tsp dried thyme — Earthy and slightly floral; pairs cleanly with tomato-based broths.
  • 1 tsp dried oregano — Adds a Mediterranean warmth that the thyme alone doesn’t provide.
  • 2 bay leaves — Impart a quiet herbal background note during simmering. Remove before serving; they are not edible.
  • 1/2 tsp smoked paprika — Adds depth and a very subtle smokiness that makes the broth taste more developed. Regular sweet paprika works if smoked isn’t available.
  • 1/2 tsp ground black pepper
  • 1 to 1.5 tsp fine salt, added to taste
  • Fresh flat-leaf parsley, roughly chopped, for garnish — Brightens the finished bowl visually and adds a fresh herbal note that cuts through the richness of the broth.
Vegetable soup ingredients arranged on white marble including carrots, potatoes

Equipment Needed

  • Large Dutch oven or heavy-bottomed stockpot (5 to 6 litre capacity) — A pot this size gives the vegetables room to sauté without steaming each other, and enough volume to hold the full broth without overflow during simmering. A thin-bottomed pot distributes heat unevenly and risks scorching the aromatics during the sauté phase.
  • Sharp chef’s knife and large cutting board — You’re cutting seven vegetables before cooking starts. A sharp knife makes prep significantly faster and safer than a dull one, and a board large enough to hold all your cut vegetables at once saves reorganizing mid-prep.
  • Wooden spoon or silicone spatula — For stirring the aromatics during the sauté without scratching the pot surface.
  • Ladle — For serving. A ladle with a 180ml (3/4 cup) capacity portions neatly without splashing.

Step-by-Step Directions

Step 1: Sauté the Aromatics

Pour the olive oil into your Dutch oven and set it over medium heat. Once the oil is warm and shimmers slightly when you tilt the pot, add the diced onion, sliced carrots, and sliced celery all at once. Stir everything together so each piece gets coated in oil. Cook for 6 to 7 minutes, stirring occasionally, until the onion has turned translucent and the carrots have softened slightly at the edges but are still firm in the center.

Chef's Note

Chef’s Note: This sauté step is where the flavor base of the soup is built. Don’t rush it by raising the heat to speed things up. High heat browns the onion too fast and gives the finished broth a bitter edge. Medium heat softens and sweetens the aromatics in a way that adds depth to every spoonful.

Step 2: Add Garlic and Spices

Add the minced garlic, dried thyme, dried oregano, and smoked paprika to the pot. Stir continuously for 60 seconds until the garlic is fragrant and the dried herbs are lightly toasted in the residual oil. The mixture will smell noticeably more complex at this point, which is the cue to move on.

Onions, carrots, and celery sautéing in olive oil in a Dutch oven

Step 3: Add Tomatoes, Broth, and Potatoes

Pour in the canned diced tomatoes with their juice and stir, scraping any bits that have stuck to the bottom of the pot. Add the vegetable broth, diced potatoes, and bay leaves. Increase the heat to medium-high and bring the pot to a steady boil, which takes about 5 to 7 minutes depending on your stovetop.

Chef's Note

Chef’s Note: Scraping the bottom of the pot when the liquid goes in is not just cleanup; it lifts the flavorful browned bits from the sauté phase into the broth. Those bits dissolve into the liquid and add savory depth that you can’t get any other way.

Step 4: Simmer the Base Vegetables

Once the soup reaches a boil, reduce the heat to medium-low to maintain a steady, gentle simmer with small bubbles breaking the surface regularly but not a full rolling boil. Add the black pepper. Simmer uncovered for 12 to 15 minutes until the potato pieces are just barely fork-tender, meaning a fork slides in with slight resistance but doesn’t crumble the piece.

Step 5: Add the Remaining Vegetables

Add the green beans and corn to the pot. Stir once to submerge them in the broth and continue simmering for 5 minutes. Then add the diced zucchini, stir again, and cook for another 8 to 10 minutes until the zucchini is tender but still holds its shape when you press a piece against the side of the pot with a spoon.

Chef's Note

Chef’s Note: Staggering the vegetables by cooking time is the difference between a soup where everything is pleasantly tender and one where the zucchini has dissolved into the broth while the green beans are still firm. Zucchini is the most time-sensitive vegetable in this recipe; 10 minutes is the maximum before it turns soft and loses its color.

Vegetable soup simmering in Dutch oven with colorful vegetables in red broth

Step 6: Season and Finish

Taste the broth and add salt in small increments, stirring and tasting between each addition. The right amount will depend on how salty your vegetable broth was. Remove and discard the bay leaves. If the soup tastes slightly flat even after salt, add a small squeeze of fresh lemon juice (about 1 teaspoon); it lifts the tomato flavor without making the soup taste sour.

Step 7: Serve and Garnish

Ladle the soup into bowls and scatter fresh chopped parsley generously over each one. Serve immediately with crusty bread, warm flatbread, or crackers alongside.

Common Mistakes and Troubleshooting

ProblemCauseSolution
Broth tastes thin and flatAromatics weren’t properly sautéed, or broth was added before the garlic and herbs were toastedAlways cook the aromatics until soft before adding liquid. Toast the dried herbs in the oil for a full 60 seconds before the broth goes in.
Zucchini is mushy and invisible in the finished soupAdded too early or cooked too longZucchini goes in last and simmers for no more than 10 minutes. If you forget and add it early, reduce the total cooking time for that stage.
Potatoes are still firm after the recommended simmer timePotatoes were cut too large, or the simmer was too gentleCut potato pieces to no more than 2 cm. Maintain a steady simmer with visible bubbles, not just the occasional one.
Soup tastes too acidicToo much canned tomato relative to broth, or tomatoes were very high in acidityAdd 1/4 teaspoon of sugar or a small scrape of carrot grated directly into the broth. Both neutralize excess acidity without making the soup taste sweet.
Soup is too watery after sitting overnightStarchy vegetables haven’t had time to release their starchThe soup thickens naturally after refrigeration as potato starch dissolves into the broth. Reheat gently and it will reach a thicker, more satisfying consistency.

Variations and Substitutions

Add Legumes for More Protein: Stir in one drained can (400g) of cannellini beans or chickpeas along with the green beans in Step 5. Either adds protein and a creamy texture that makes the soup more substantial as a standalone meal. Chickpeas hold their shape better during longer simmering.

Leafy Greens Version: Add two large handfuls of chopped kale or baby spinach during the last 3 minutes of cooking. Kale needs a full 5 minutes to soften; spinach wilts in about 90 seconds. Both add color and nutrition without changing the broth flavor.

Spicy Version: Add 1/4 teaspoon of red pepper flakes along with the dried herbs in Step 2, and increase to 1/2 teaspoon if you want genuine heat. A swirl of chili oil into individual bowls at serving works well if you have guests with different heat preferences.

Tomato-Free Version: Skip the canned tomatoes and add an extra 400ml of vegetable broth in their place. The broth will be a clearer, lighter color with a more delicate flavor. Increase the herbs slightly to compensate for the reduced depth the tomatoes would have provided.

Pasta or Grain Version: Add 1/2 cup (85g) of small pasta such as ditalini or orzo, or 1/2 cup (90g) of cooked farro or barley, during the last 10 minutes of simmering. Pasta absorbs broth as it sits, so add an extra cup of broth if you plan to store leftovers with pasta already in the pot.

Root Vegetable Version: Replace the zucchini with diced parsnip or sweet potato. Both take longer than zucchini, so add them alongside the regular potatoes rather than at the end. Parsnip adds a mild sweetness; sweet potato makes the broth richer and slightly thicker.

Serving Suggestions

  • Serve with a thick slice of crusty sourdough or whole wheat bread for dipping. The bread absorbs the tomato broth well and turns the soup from a light meal into a complete dinner.
  • A side of warm flatbread or pita works especially well for scooping up the vegetables and broth together, which suits the thicker, chunkier texture of this soup.
  • Offer a small bowl of freshly grated parmesan for people to stir into their own bowls. Even a tablespoon melts into the hot broth and adds a salty, savory richness without changing the soup’s vegan base for those who want it.
  • Pair with a simple cucumber and tomato salad dressed with olive oil and lemon. The cool, crisp salad contrasts the warm soup cleanly.
  • Serve as a starter before a grain-based main like lentil pilaf or a baked rice dish. The soup is light enough to open a meal without overloading the appetite.
Bowl of hearty vegetable soup beside crusty sourdough bread slice

Tips for the Best Results

Don’t skip the sauté. The 6 to 7 minutes spent softening the onion, carrot, and celery in olive oil before any liquid goes in is the step that determines the flavor depth of the entire pot. Soups that skip straight to simmering all ingredients together taste noticeably flatter, even with identical ingredients.

Cut everything the same size. Aim for 2 cm pieces across all vegetables. This isn’t about aesthetics; it’s about even cooking. When pieces vary significantly in size, the smaller ones overcook while the larger ones are still firm, and no amount of adjusting the timing fixes that after the fact.

Season at the end, not the beginning. Broth reduces slightly as the soup simmers, concentrating the salt already in it. Seasoning before simmering often leads to oversalting by the time the soup is done. Taste after the vegetables are fully cooked and add salt from that point.

Use low-sodium broth. This gives you genuine control over how salty the finished soup is. Full-sodium broth, combined with the natural salt in canned tomatoes, can make the soup taste overseasoned before you’ve added any salt yourself.

Simmer uncovered. Leaving the lid off during the simmer allows a small amount of liquid to evaporate and the broth to concentrate slightly in flavor. A covered pot traps steam and keeps the broth thinner and lighter. The difference over 35 minutes is noticeable.

Storage Tips

Refrigerator

Cool the soup to room temperature before transferring it to an airtight container. It keeps well in the fridge for up to 5 days. The flavor genuinely improves between day one and day two as the herbs and tomato meld into the broth more completely. The soup thickens overnight from potato starch; add a splash of water or broth when reheating if you want to return it to its original consistency.

Freezer

Vegetable soup freezes very well for up to 4 months. Leave out the zucchini if you plan to freeze the soup immediately after cooking, because zucchini turns watery and loses its texture after freezing and thawing. Everything else freezes cleanly. Cool completely, portion into freezer-safe containers or zip-lock bags (laying bags flat saves space), and freeze. Thaw overnight in the fridge before reheating.

Reheating

Reheat on the stovetop over medium heat, stirring occasionally, until steaming throughout, about 5 to 7 minutes. Add a splash of water or vegetable broth if the soup has thickened significantly during storage. Microwave reheating works well for individual portions: 2 to 3 minutes at full power in a microwave-safe bowl, stirring once at the halfway mark to distribute the heat evenly.

Make-Ahead Note: This soup is an excellent Sunday meal-prep recipe. A full batch yields six servings that refrigerate for a full week and can serve as lunch or dinner on five different days with no additional cooking. The broth-to-vegetable ratio is intentionally generous to hold up through multiple reheatings without drying out.

Nutrition Information

Per serving, based on 6 servings. Values are approximate.

NutrientAmount
Calories185 kcal
Protein5g
Carbohydrates28g
Fiber6g
Sugar8g
Total Fat7g
Saturated Fat1g
Cholesterol0mg
Sodium540mg
Potassium720mg
Calcium75mg
Iron2.5mg
Vitamin C28mg

Nutrition values are approximate and may vary based on brands and portion sizes.

Why This Recipe Works

The flavor gap between a mediocre vegetable soup and a genuinely satisfying one almost always comes down to the sauté step and the vegetable staging. Both are built into this recipe with specific reasoning.

Sautéing the onion, carrot, and celery in olive oil before any liquid is added causes the natural sugars in those vegetables to caramelize slightly and the cell walls to soften in a way that makes them contribute more flavor to the broth than they would if dropped in raw. This is the same principle behind any good broth-based soup: the liquid carries the flavor of what was cooked in it, not just what’s floating in it.

Staggering the vegetables by cooking time keeps each one at the right texture when the soup is served. Potatoes need 15 minutes of simmering to become fork-tender. Green beans and corn need about 13 minutes. Zucchini needs 8 to 10. Adding all three at the same time would leave you with zucchini that has completely dissolved while the potatoes are still firm. The staggered approach is the only way to get every vegetable to the right texture simultaneously without sacrificing any of them.

Canned diced tomatoes do two things beyond contributing tomato flavor: they add acidity, which brightens the broth and keeps it from tasting flat, and they add body through their natural pectin, which helps the broth feel more substantial than a clear broth would. This is why the juice from the can goes in along with the tomatoes, not down the drain.

Across multiple test batches with different broth volumes and vegetable combinations, the ratio here consistently produced a broth that was rich enough to feel satisfying but light enough to avoid being heavy. The smoked paprika addition was tested against the version without it; the difference in broth depth was noticeable enough to include it as a standard ingredient rather than an optional one.

Frequently Asked Questions

Can I make vegetable soup ahead of time?

Yes, and it actually improves with time. The soup keeps in the fridge for up to 5 days, and the flavors are noticeably more developed on day two and three than they are fresh from the pot. Make a full batch on Sunday and it covers most of the week’s lunches or easy dinners. If you plan to freeze it, leave out the zucchini before freezing and add it fresh when reheating.

Why does my vegetable soup taste bland?

Three things cause bland soup most often. First, the aromatics weren’t sautéed long enough before the broth went in. Second, the dried herbs weren’t toasted in the oil, which releases their flavor before they dilute into the liquid. Third, the soup wasn’t seasoned at the end after the broth reduced. Taste after the full simmer and add salt in small increments. A teaspoon of lemon juice also lifts flat-tasting broths quickly.

Can I use fresh tomatoes instead of canned?

Yes. Use about 4 medium ripe tomatoes, roughly chopped, in place of the canned diced tomatoes. You won’t have the juice from a can, so add an extra 100ml of vegetable broth to compensate. Fresh tomatoes are less consistent in acidity and sweetness than canned, so taste the broth after the tomatoes have simmered for a few minutes and adjust seasoning accordingly.

How do I know when the vegetables are done?

Pierce a potato chunk and a carrot round with a fork. Both should slide through with no resistance, but the pieces shouldn’t crumble or fall apart when you lift them. Zucchini is done when it has softened enough to press easily with the back of a spoon but still holds its shape as a distinct cube. If the potato is tender but the zucchini still looks firm, it needs another 2 minutes.

Can I add meat to this vegetable soup?

Yes. Diced chicken breast or thigh can be added after the aromatics are sautéed: brown the chicken pieces in the same pot before the vegetables go in, then remove and set aside while you sauté the aromatics and build the broth. Return the chicken to the pot when you add the potatoes, and it will finish cooking during the simmer. Ground beef or lamb can be browned at the very start of Step 1 and left in the pot throughout.

Is this vegetable soup gluten-free?

Yes, the soup as written is naturally gluten-free. All the core ingredients, including the vegetables, canned tomatoes, olive oil, herbs, and vegetable broth, contain no gluten. The one variable is the vegetable broth: some brands add gluten-containing thickeners or flavorings. Check your specific broth label if you are managing celiac disease or a serious gluten sensitivity.

Can I make this in a slow cooker?

Yes. Sauté the aromatics and garlic in a skillet first for maximum flavor, then transfer everything to the slow cooker. Add the broth, canned tomatoes, potatoes, herbs, and bay leaves. Cook on HIGH for 4 to 5 hours or LOW for 7 to 8 hours. Add the green beans, corn, and zucchini during the last 45 minutes on HIGH or the last 90 minutes on LOW to prevent them from overcooking.

Two bowls of hearty vegetable soup garnished with fresh herbs

Conclusion

Vegetable soup earns its place in the weekly rotation because it asks very little from you and delivers a lot back. One pot, seven vegetables, 50 minutes, and six servings that hold up for the rest of the week. The technique here is straightforward, but each step has a reason: the sauté builds the base, the staged vegetable additions keep the textures right, and the seasoning at the end ensures the broth lands where it should.

Once you’ve made this version, you’ll understand why so many people keep a pot of vegetable soup going regularly. It’s the kind of recipe that adapts to whatever’s in your fridge and still comes out tasting considered.

If you loved this recipe, save it to your soup recipes Pinterest board so you can find it easily later! For more recipes and daily food inspiration, follow TheCookingVibes on Pinterest.

Hearty vegetable soup with colorful vegetables in tomato broth

Hearty Vegetable Soup

A thick, broth-rich vegetable soup built on a sautéed aromatic base with seven vegetables simmered in a seasoned tomato and herb broth. Naturally vegan and gluten-free.
Prep Time 15 minutes
Cook Time 35 minutes
Total Time 50 minutes
Servings: 6 servings
Course: Main Course, Soup
Cuisine: American
Calories: 185

Ingredients
  

  • 3 tbsp olive oil
  • 1 large yellow onion diced
  • 3 medium carrots sliced into rounds (about 1.5 cups / 200g)
  • 3 stalks celery sliced (about 1 cup / 110g)
  • 4 cloves garlic minced
  • 1 tsp dried thyme
  • 1 tsp dried oregano
  • 1/2 tsp smoked paprika
  • 1 can diced tomatoes with juice (400g / 14 oz)
  • 1.5 litres low-sodium vegetable broth (6 cups)
  • 2 medium Yukon Gold potatoes peeled and diced (about 2 cups / 300g)
  • 2 bay leaves
  • 1 cup fresh or frozen green beans trimmed and cut into 3 cm pieces (150g)
  • 1 cup frozen or fresh corn kernels (150g)
  • 1 medium zucchini diced (about 1.5 cups / 200g)
  • 1/2 tsp ground black pepper
  • 1 to 1.5 tsp fine salt to taste
  • Fresh flat-leaf parsley roughly chopped, for garnish

Equipment

  • Large Dutch oven
  • Wooden spoon
  • Sharp knife
  • Cutting board
  • Measuring cups and spoons
  • Ladle

Method
 

  1. Heat olive oil in a large Dutch oven over medium heat. Add diced onion, carrot rounds, and sliced celery. Cook for 6 to 7 minutes, stirring occasionally until softened.
  2. Add minced garlic, dried thyme, oregano, and smoked paprika. Stir continuously for 60 seconds until fragrant.
  3. Pour in the canned tomatoes with their juice and stir, scraping the bottom of the pot. Add the vegetable broth, diced potatoes, and bay leaves. Raise heat to bring to a boil.
  4. Reduce heat to medium-low to maintain a steady gentle simmer. Add black pepper. Simmer uncovered for 12 to 15 minutes until potatoes are just fork-tender.
  5. Add green beans and corn. Simmer for 5 minutes. Add diced zucchini and simmer for a further 8 to 10 minutes until all vegetables are tender but hold their shape.
  6. Remove bay leaves. Taste the broth and add salt in small increments until seasoning is balanced. Add a small squeeze of lemon juice if the broth tastes flat.
  7. Ladle into bowls and garnish generously with fresh chopped parsley. Serve immediately.

Notes

Cut all vegetables to roughly 2 cm pieces for even cooking. Uneven cuts result in some vegetables being overcooked while others are still firm.
Zucchini goes in last and should not simmer for more than 10 minutes or it will lose its texture and color.
For freezing, leave the zucchini out and add it fresh when reheating the thawed soup.
Season only after full simmering since the broth concentrates slightly as it cooks.

Similar Posts