Soups & Stews
This ball vegetable soup recipe transforms humble ingredients into a hearty, one-pot meal that feels like a warm embrace on chilly days. The secret lies in caramelized onion bases that deepen flavor while the veggie balls—made from boiled potatoes, carrots, and peas—hold their shape beautifully.
I developed this version after years of testing, ensuring every spoonful delivers that perfect balance of creamy broth and tender, flavorful bites.
The beauty of this recipe is its simplicity: just one pot, minimal prep, and ingredients you likely already have on hand. No fancy techniques required—just boil, shape, simmer, and savor. The caramelized onions form the soul of the soup, their rich sweetness complementing the mild vegetables and herb-infused broth.
It's the kind of dish that transforms a simple weeknight into a cozy gathering, whether you're feeding a family or meal prepping for the week.
What makes this soup truly special is how it adapts to your preferences. Swap the broth for vegan versions, add mushrooms for earthiness, or top with fresh herbs and crusty bread.
The veggie balls stay intact, creating satisfying texture in every bite—no mushy surprises here. This is comfort food at its finest: nourishing, flexible, and deeply satisfying.
Ready in about 45 minutes, this soup is perfect for busy evenings or lazy Sundays. The aroma alone will have everyone gathering around the table, and the leftovers reheat beautifully.
Here's how to make it—step by step—for a bowl of warmth that feels homemade, no matter how simple the ingredients.
Ingredients for ball vegetable soup
Transform humble pantry staples into a rich, comforting one-pot meal with these carefully chosen ingredients.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 4 large | Thinly sliced for caramelizing |
| Russet Potatoes 🥔 | 2 ½ lbs | Medium-sized, peeled and cubed |
| Carrots 🥕 | 3 medium | Peeled and cut into 1-inch pieces |
| Fresh Peas 🌽 | 1 ½ cups | Frozen or fresh, thawed if frozen |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred for flavor control |
| Heavy Cream 🥛 | 1 cup | Full-fat for richness (or coconut milk for vegan) |
| Butter 🧈 | 4 tbsp | Unsalted for flavor balance |
| Garlic Cloves 🧄 | 4 cloves | Minced for depth of flavor |
| Fresh Thyme 🌿 | 1 tbsp | Leaves only, finely chopped |
| Fresh Parsley 🌿 | ¼ cup | Chopped for garnish and brightness |
| Salt 🧂 | 1 ½ tsp | Kosher salt for even seasoning |
| Black Pepper 🌶️ | ½ tsp | Freshly ground for best flavor |
| Crusty Bread 🍞 | 1 loaf | For serving, optional garnish |
The onions are the foundation here—yellow onions caramelize beautifully for that deep sweetness. Grab the largest, firmest ones you can find; they'll hold up better during the slow cooking process. Whole Foods or Trader Joe's often carry the best quality, but any well-stocked grocery store will do. For the potatoes, Russet is ideal—they're starchy enough to hold their shape when boiled but creamy when cooked. If you can't find Russets, Yukon Golds work well too, though they'll break down slightly more. The carrots should be vibrant orange and firm; avoid any with soft spots or wilted tops. Fresh peas add a bright contrast, but frozen peas are perfectly fine and often more cost-effective.
No vegetable broth on hand? Low-sodium chicken broth works in a pinch, though the flavor will be slightly different. For a richer creaminess, full-fat coconut milk replaces the heavy cream beautifully—just be sure to stir well after adding to avoid separation. Fresh thyme and parsley elevate the dish, but dried thyme at half the amount will suffice if fresh isn't available. The butter should be unsalted to control the seasoning precisely; salted butter can make the soup taste unevenly seasoned. For the veggie balls, if you're concerned about them falling apart, add 1 tbsp of flour when forming them—they'll hold together better without altering the flavor significantly.
This soup tastes even better the next day as the flavors meld together. Store in an airtight container in the fridge for up to 5 days, or freeze for 3 months by portioning into individual containers. The veggie balls reheat beautifully—just warm gently on the stove with a splash of broth to restore their moisture. For serving, toasted crusty bread is ideal, but any bread works. If you're prepping ahead, make the veggie balls a day in advance and refrigerate them until ready to use—they'll keep their shape perfectly.
Why You'll Love This Recipe
- Potatoes Do the Work: I swear by the russet potatoes here—they soften just enough to hold their shape, turning into those perfect, hearty "balls" that make every spoonful satisfying. No fancy techniques, just chop, boil, and mash with a fork until you’ve got those rustic little pockets of flavor.
- Onion-Carrot Crunch Factor: Between us, the caramelized onions and shredded carrots are where this soup gets its magic. They’re sweet, slightly crisp at the edges, and melt into the broth like a warm hug—no fancy sauces or secret spices needed.
- Lunchbox or Leftovers: This soup is my secret weapon for busy mornings. I make a big batch on Sundays, and by Wednesday, I’m still pulling out jars of it for lunches—no reheating drama, just warm, comforting bites. (Yes, even on a Tuesday night.)
- Budget-Friendly Powerhouse: Honestly, this recipe is the definition of stretching ingredients. A few potatoes, some carrots, and a bag of peas go a long way, especially with broth stretching it further. It’s the kind of meal that makes me feel like I’m feeding a crowd without breaking the bank.
Step-by-step instructions for ball vegetable soup
This one-pot method delivers restaurant-quality depth with minimal cleanup.
Caramelize the Onions for Rich Flavor
Melt 2 tablespoons of the butter in a large Dutch oven over medium-low heat. Add the 4 large yellow onions and cook, stirring occasionally, for 25-30 minutes until deeply golden brown and sweet-smelling. This slow caramelization develops complex flavors that form the soup's foundation.
Here's the thing—don't rush this step. You'll know it's ready when the onions are transformed from pale yellow to rich amber, with a syrupy consistency. If they start to brown too quickly, reduce the heat slightly. This patience pays off in every spoonful of the finished soup.
Sauté Vegetables and Build the Base
Add the remaining 2 tablespoons of butter to the pot along with the 3 medium carrots cut into 1-inch pieces and the 4 cloves garlic cloves minced. Cook for 5-6 minutes until the carrots begin to soften and the garlic becomes fragrant. This quick sauté ensures the vegetables develop their own subtle sweetness.
Stir in the 2.5 lbs russet potatoes cubed and cook for another 2 minutes, tossing to coat everything in the caramelized onion mixture. This layering of flavors creates the soup's depth. The potatoes will soften fully during the simmering process, but this initial coating ensures they absorb all that rich onion flavor.
Simmer the Vegetables in Broth
Pour in the 6 cups vegetable broth and bring to a gentle boil. Once boiling, reduce heat to medium-low and add the 1.5 tsp salt, 0.5 tsp black pepper, and 1 tbsp fresh thyme. Cover and simmer for 20-25 minutes until the potatoes are fork-tender and the carrots are easily pierced with a knife.
I like to check for doneness by tasting a potato piece—it should be soft inside with just a hint of resistance. The soup should be developing a rich, aromatic steam at this point. This is where the vegetables transform from raw to perfectly cooked, absorbing all the flavors from the caramelized onions and thyme.
Finish with Cream and Fresh Herbs
Remove the pot from heat and stir in the 1.5 cups fresh peas and 1 cup heavy cream. The peas will heat through in just 2-3 minutes—don't let them overcook or they'll turn mushy. Return to low heat and simmer gently for 5 minutes to allow the cream to warm through and meld with the other flavors.
Finish with the 0.25 cup fresh parsley chopped, stirring gently to distribute those bright green flecks throughout. The parsley adds a fresh contrast to the rich, creamy soup. Taste and adjust seasoning if needed—sometimes the cream needs a touch more salt to balance its richness.
Serve with Crusty Bread
Ladle the soup into bowls and serve immediately with slices of the 1 loaf crusty bread on the side. The bread provides the perfect vehicle for soaking up every last drop of that creamy vegetable broth. I like to serve it with an extra sprinkle of freshly cracked black pepper on top for that final pop of flavor.
This soup tastes even better the next day as the flavors continue to meld, but the cream will separate slightly if stored overnight. If reheating, do so gently over low heat, stirring occasionally, and add a splash of water or broth if it thickens too much. The one-pot method makes this comforting dish both practical and impressive for any occasion.
Pro Tips For Making Ball Vegetable Soup
- SOAK THE POTATOES: Russets hold more moisture than you’d think—toss them in cold water for 10 minutes before chopping. I learned this the hard way when my first batch turned to mush mid-cook; pre-soaking tightens the starch and keeps those balls intact. Drain and pat dry afterward, or your soup will turn into glue.
- SWEAT THE ONIONS LOW: Don’t rush this step—cook onions over medium-low for 8–10 minutes until they’re translucent and just starting to caramelize. Too high heat burns them before they soften, and you’ll taste that bitterness in every spoonful. If they stick, add a splash of broth to deglaze; it’s not a mistake, it’s flavor insurance.
- PEEL CARROTS AFTER COOKING: Skip peeling raw carrots unless they’re dirty—peeling after cooking saves time and keeps their natural sweetness. Toss them in the pot whole, peel when cool, then chop. The skin softens beautifully and adds subtle earthiness; I only peel if I’m serving kids (or my picky partner).
- ADD PEAS LAST MINUTE: Fresh peas turn to mush in 5 minutes—wait until the very end to fold them in, even if the recipe says otherwise. If you’re using frozen, thaw them first in warm broth (not boiling water) to avoid splitting. Overcooked peas ruin the texture; undercooked ones are the only kind worth eating.
Flavor customization for ball vegetable soup
Creamy vs. Brothy
This soup shines in both creamy and brothy versions. For a richer texture, stick with the original 1 cup heavy cream—it adds luxurious mouthfeel while balancing the vegetables' earthiness.
If you prefer a lighter broth, reduce the cream to ½ cup and stir in ¼ cup Greek yogurt at the end for tangy brightness. The veggie balls stay intact either way, making it a versatile base for experimentation. 🥛
Spicy Kick Options
Add heat with ½ teaspoon smoked paprika during the caramelization step for subtle warmth, or finish with 1 teaspoon hot sauce (like Cholula) for a quick tangy burn. For smoky depth, swap ½ teaspoon chipotle powder into the broth—it pairs beautifully with the caramelized onions.
I love adding a pinch of cayenne to the veggie balls before shaping for an internal heat surprise. 🌶️
Herb Variations
Swap the thyme for rosemary (use 1 sprig instead of 1 tbsp) for piney aroma, or add 1 tsp dried tarragon to the broth for an anise-like twist. Fresh dill works too—chop 2 tbsp and stir in at the end for a bright, summery note.
For a Mediterranean touch, toss in 1 tbsp lemon zest with the parsley garnish. Each herb transforms the soup's character while keeping the veggie balls the star. 🌿
Global Twists
For an Asian-inspired version, add 1 tbsp ginger (minced) with the garlic and finish with 1 tsp soy sauce and ½ tsp sesame oil. A French bistro twist uses 1 tbsp Dijon mustard in the broth and tops with crème fraîche instead of cream.
For Mexican flair, stir in ½ cup diced tomatoes with the broth and garnish with cilantro and lime wedges. Each variation keeps the veggie balls intact while adding bold new flavors. 🗺️
Vegan Adaptations
Replace the heavy cream with 1 cup full-fat coconut milk (stir well to avoid separation) and use vegan butter for caramelizing. For extra richness, add 2 tbsp nutritional yeast to the broth—it adds a cheesy depth without animal products.
The veggie balls hold together perfectly with these swaps, making the soup fully plant-based while keeping its comforting texture. 🌱
Sweet-Savory Balance
Enhance the caramelized onions by adding 1 tbsp honey or maple syrup during the final 5 minutes of cooking. For a savory-sweet contrast, top with crispy fried shallots or toasted pumpkin seeds.
The natural sweetness of the onions pairs beautifully with these additions, creating a sophisticated flavor profile that surprises and delights. 🍯
Nutrition facts
Frequently asked questions
Why do the veggie balls hold their shape in this recipe?
This recipe uses boiled potatoes as the base for the veggie balls, which creates a sturdy texture when combined with carrots and peas. The key is to press them firmly when shaping and avoid overmixing the filling. The caramelized onion broth also helps them stay intact during simmering—no mushy surprises here!
Can I make this soup ahead of time?
This soup tastes even better the next day as flavors meld. Store in an airtight container for up to 5 days in the fridge or freeze for 3 months. When reheating, warm gently on the stove with a splash of broth to restore creaminess. The veggie balls reheat beautifully without falling apart.
What if I don't have fresh peas?
Frozen peas work perfectly—they're just as sweet and convenient. Thaw them first by soaking in warm water for 5 minutes or use them straight from frozen (they'll cook through during the final simmer). For variety, try green peas or sugar snap peas cut into small pieces. The texture stays delightfully tender.
How can I make this soup vegan?
Swap the heavy cream for 1 cup coconut milk (full-fat) and use vegan butter for caramelizing. Add 2 tbsp nutritional yeast to the broth for cheesy depth. The veggie balls stay intact—just press them firmly when shaping. The result is a rich, plant-based version with all the comfort of the original.
What's the secret to perfect caramelized onions?
Patience and medium-low heat are key! Cook the onions for 25-30 minutes, stirring occasionally, until deep golden brown. If they brown too quickly, reduce the heat. The slow process develops that sweet, complex flavor that makes this soup special. Don't rush—it's worth the wait!
