Vegetable Soup Recipe: Hearty and Made from Scratch

A proper vegetable soup is not just broth with vegetables floating in it. This version starts with a real sauté — onion, garlic, carrots, and celery cooked in olive oil until they soften and start to turn golden. That step alone is what separates a flat, watery pot from something genuinely worth eating.
The vegetables go in at different times, so everything finishes cooking at the right texture. Potatoes and carrots get a full simmer; zucchini and green beans go in at the end. The result is a bowl with actual body, color, and flavor.
Why You’ll Love This Vegetable Soup
- One pot, minimal cleanup: Everything cooks in a single Dutch oven or large heavy pot, start to finish.
- Flavor built from the base up: The sauté step is what most quick recipes skip. This one doesn’t.
- Flexible with what you have: Zucchini, green beans, spinach — swap in whatever vegetables are fresh or in your fridge.
- Freezes well in batches: Make a double portion, freeze half in individual containers, and you have a ready dinner for later in the week.
- Filling enough to stand alone: Potatoes, tomatoes, and a liter and a half of well-seasoned broth give it real body. This is a main dish, not a starter.
Ingredients You’ll Need
For the Soup Base
- 2 tbsp olive oil — for sautéing the aromatics; olive oil handles the heat better here than butter
- 1 medium yellow onion, finely diced — the flavor foundation; takes about 5 minutes to turn properly soft
- 4 cloves garlic, minced — added after the onion so it doesn’t scorch
- 3 medium carrots (about 250g), sliced into 5mm rounds — add natural sweetness and hold their shape through a full simmer
- 3 celery stalks (about 150g), sliced — pairs with the carrot and onion to build a classic aromatic base
- 2 medium potatoes (about 350g), cut into 2cm cubes — Yukon Gold or red-skin varieties hold shape better than russet
- 1 medium zucchini (about 200g), cut into half-moons — added late so it stays firm, not mushy
- 400g canned diced tomatoes — adds acidity and body to the broth without overpowering
- 150g green beans, trimmed and cut into 3cm pieces — also added late; they only need 10 minutes
- 1.5 liters vegetable broth — use a low-sodium version so you can control the final salt level
- 1 tsp dried thyme
- 1 tsp dried oregano
- 2 bay leaves
- 1 tsp salt, plus more to taste
- ½ tsp black pepper
- Fresh flat-leaf parsley, roughly chopped, for garnish
Recipe Timing
| Timing Element | Duration |
|---|---|
| Prep Time | 15 minutes |
| Cook Time | 35 minutes |
| Total Time | 50 minutes |
Servings: 6 | Difficulty: Easy | Cuisine: International | Course: Soup / Main

How to Make Vegetable Soup: Step by Step
Step 1: Sauté the onion
Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium heat. Add the diced onion and cook for 5 minutes, stirring occasionally, until it turns soft and fully translucent with no raw white center remaining.
Why this works: Cooking the onion until it is genuinely soft — not just warmed through — breaks down the harsh raw flavor and releases natural sugars. This is the flavor base everything else builds on.
Step 2: Add garlic
Add the minced garlic to the softened onion. Cook for 1 minute, stirring constantly, until the garlic is fragrant but not taking on any color.
Why this works: Garlic burns fast. Adding it after the onion softens means it cooks in residual heat and oil rather than in a hot, dry pan.

Step 3: Add carrots and celery
Add the sliced carrots and celery to the pot. Stir to coat them in the oil. Cook for 3 minutes, stirring once or twice, until the edges just start to soften. Season with ½ tsp salt and the black pepper now.
Why this works: Giving carrots and celery a short head start ensures they finish at the same time as the potatoes. Without it, you end up with undercooked carrots even after a full simmer.
Step 4: Add potatoes, tomatoes, broth, and herbs
Add the cubed potatoes and canned diced tomatoes (with all their liquid) to the pot. Pour in the vegetable broth. Add the thyme, oregano, and bay leaves. Stir everything together so the tomatoes are distributed evenly.
Step 5: Bring to a boil, then simmer
Raise the heat to medium-high and bring the soup to a full rolling boil. Reduce the heat to medium-low and simmer uncovered for 15 minutes, until a knife tip slides into a potato cube with slight resistance — not fully soft, but nearly there.

Step 6: Add zucchini and green beans
Add the zucchini and green beans to the pot. Continue simmering for 10 minutes, until the green beans are tender but still have a slight bite and the zucchini is cooked through without falling apart.
⚠️ Food Safety: If you are using homemade broth that included any poultry or meat in its preparation, ensure the broth was refrigerated within 2 hours of cooking and bring the soup to a full rolling boil before reducing heat.
Why this works: Zucchini and green beans overcook in minutes. Adding them at this stage means they finish cooking just as the potatoes reach their final texture, so nothing is mushy.
Step 7: Taste, season, and remove bay leaves
Remove the two bay leaves. Taste the broth. The tomatoes add natural acidity, which can make the soup taste slightly flat until you add a little more salt. Adjust until the broth tastes full and rounded.
Step 8: Garnish and serve
Ladle the soup into bowls. Top each serving with a generous handful of chopped fresh parsley. Serve immediately.

Common Mistakes to Avoid
Skipping the sauté step
Adding raw vegetables directly to cold broth produces a thin, watery soup that tastes like boiled vegetables rather than something built with intention. The 8-minute sauté at the start is the most important part of this recipe. It is worth the extra pan time.
Adding all the vegetables at the same time
Potatoes need a 15-minute full simmer. Zucchini needs 10 minutes. Put both in at the same time and you get one of two outcomes: raw potato or mush. Follow the staggered timing the recipe specifies.
Under-seasoning
Vegetable broth is naturally milder than chicken or beef broth. Taste the soup after the 15-minute simmer and season again. It will almost always need more salt than you expect at that stage.
Using russet potatoes
Russet potatoes have a high starch content and break down quickly in soup. They turn the broth thick and cloudy in a way that is hard to recover from. Stick with Yukon Gold or red-skin potatoes for clean, firm pieces.
Variations and Substitutions
Add legumes or grains for more substance
A can of drained and rinsed cannellini beans or chickpeas can go in at Step 6 alongside the zucchini. Small pasta shapes (ditalini, orzo) can also be added at that stage — just reduce the final simmer by 2 minutes so the pasta doesn’t absorb too much broth.
Swap vegetables by season
In winter, replace the zucchini with 200g of diced butternut squash and add it at Step 4 with the potatoes — it needs the full simmer. In summer, a cup of corn kernels and halved cherry tomatoes can go in at Step 6. The method stays the same regardless of what you use.
Make it creamy without cream
After Step 7, use an immersion blender to partially blend roughly a third of the soup directly in the pot. Stir it back into the remaining chunky broth. This thickens naturally using the starches already in the potatoes and carrots.
What to Serve With Vegetable Soup
Crusty bread or naan: The broth needs something to soak it up. A thick slice of sourdough or warm naan does it.
Grilled cheese sandwich: Turns the bowl into a proper lunch. The contrast in texture — crunchy and warm bread against the broth — works well.
Simple green salad: If you are serving the soup as a weeknight main, a crisp side salad keeps the meal balanced without adding much effort.
Lemon-dressed chickpeas: Served on the side or on top, they add protein and a bit of texture the soup alone doesn’t have.
Plain steamed rice: For a heartier meal, ladle the soup over a small scoop of rice in the bowl. The rice absorbs the broth as you eat.

Storage, Reheating and Make-Ahead
Fridge: Let the soup cool to room temperature before transferring to an airtight container. It keeps for up to 4 days. The flavor deepens on day two, making leftovers genuinely good.
Freezer: Freeze in individual portions in airtight freezer-safe containers for up to 3 months. If you plan to freeze it, cook the soup only through Step 5 and leave out the zucchini and green beans. Add those fresh when you reheat. Thaw overnight in the refrigerator before warming. According to USDA food safety guidelines, soup should be cooled quickly before freezing and reheated to a minimum internal temperature of 74°C (165°F).
Reheat: Warm over medium-low heat on the stovetop, stirring occasionally, until the soup reaches a steady simmer. If it has thickened during storage, add a splash of broth or water to loosen it.
Make-Ahead: The soup base can be made through Step 5 up to 2 days in advance and stored in the fridge. When you are ready to serve, reheat it to a simmer and complete Steps 6 and 7 fresh.
Nutrition Information
Calculated per serving (recipe makes 6 servings):
| Nutrient | Per Serving |
|---|---|
| Calories | 165 kcal |
| Protein | 4 g |
| Total Carbohydrates | 27 g |
| Dietary Fiber | 5 g |
| Total Sugars | 7 g |
| Total Fat | 5 g |
| Saturated Fat | 0.8 g |
| Sodium | 520 mg |
| Cholesterol | 0 mg |
| Potassium | 680 mg |
| Vitamin C | 22 mg |
| Calcium | 65 mg |
| Iron | 2.1 mg |
“Nutritional values are estimates only and may vary based on specific ingredients, brands, and portion sizes used. For precise dietary needs, consult a registered dietitian.”
For a broader look at the nutritional benefits of the vegetables in this recipe, Healthline’s guide on common vegetable nutrients is a useful reference.
Frequently Asked Questions
What vegetables work best in vegetable soup?
Carrots, celery, onion, garlic, potatoes, and tomatoes give you the most reliable base. From there, add whatever is seasonal: zucchini, green beans, spinach, corn, or butternut squash. Avoid high-water vegetables like cucumber — they dilute the broth rather than adding to it.
Can I make vegetable soup ahead of time?
Yes. It keeps well for up to 4 days in the fridge and tastes better the next day. If making it more than a day ahead, hold off on the zucchini and green beans until you reheat it so they stay firm.
Can you freeze homemade vegetable soup?
You can, for up to 3 months. For best results, freeze the soup before adding zucchini and green beans, then add those fresh when you reheat. Label your containers with the date so nothing gets lost in the back of the freezer.
How do I make vegetable soup more flavorful?
The sauté step at the start is the biggest factor. Beyond that, use a decent-quality broth instead of water, season the vegetables at two stages (during cooking and at the end), and squeeze a little fresh lemon juice into the finished bowl. That last step lifts the entire thing.
Can I use water instead of vegetable broth?
You can, but the soup will taste noticeably thinner. If you use water, add an extra half-teaspoon of salt, a bouillon cube, and optionally a Parmesan rind to the pot during simmering to add depth.
How do I thicken vegetable soup without flour?
Use an immersion blender to partially blend about a third of the soup directly in the pot, then stir it back in. The potatoes and carrots already in the soup provide enough starch to thicken the broth naturally.
Can I add protein to vegetable soup?
Yes. A can of drained chickpeas or cannellini beans added at Step 6 is the simplest option and keeps the recipe fully plant-based. Cooked shredded chicken can also be stirred in during the final 5 minutes if you want a non-vegetarian version.
Conclusion
The vegetable soup recipe in this article is worth making because it actually tastes like something. Not because of unusual ingredients or special technique, but because the base is built properly. Sauté the aromatics until they are genuinely soft, stagger the vegetables so nothing overcooks, and season the broth in two stages. If the soup ever tastes flat, it almost always needs a pinch more salt rather than anything complicated. Make a double batch on a Sunday. The second half freezes without any quality loss, and having it ready in the freezer is more useful than most things you could spend an hour cooking.
Vegetable Soup Recipe Card

Vegetable Soup
Ingredients
Method
- Heat the olive oil in a large Dutch oven over medium heat. Add the diced onion and cook for 5 minutes, stirring occasionally, until soft and translucent.
- Add the minced garlic and cook for 1 minute, stirring constantly, until fragrant but not browned.
- Add the carrots and celery. Cook for 3 minutes, stirring once or twice, until edges begin to soften. Season with ½ tsp salt and the black pepper.
- Add the cubed potatoes, canned diced tomatoes with their liquid, and vegetable broth. Add thyme, oregano, and bay leaves. Stir to combine.
- Raise heat to medium-high and bring to a full boil. Reduce to medium-low and simmer uncovered for 15 minutes, until potatoes are nearly tender when pierced with a knife.
- Add zucchini and green beans. Simmer for 10 minutes, until green beans are tender with a slight bite and zucchini is cooked through but firm.
- Remove bay leaves. Taste and adjust salt as needed. Ladle into bowls, garnish with fresh parsley, and serve immediately.
