There is a certain hour in the late afternoon when the light goes amber and the kitchen feels like the warmest room in the world. That is when this creamy vegetarian soup belongs on the stove, a slow blubber of carrots and potatoes turning tender while garlic and thyme perfume the whole house. It costs maybe nine dollars to make, feeds six hungry people, and asks almost nothing of you but a little stirring.
Advertisements1
I first built this soup on a rainy Tuesday in a borrowed kitchen with a dented pot and a bag of farmers market carrots that were almost too pretty to chop. The trick, I learned, is blending only half the pot: you keep the rustic chunks for texture and let the rest go velvet-smooth, so every spoonful is both hearty and luxurious. No cream required, though a swirl at the end never hurt anyone.
Make it your own. Wander through your spice drawer, swap in whatever beans or greens you have, and don't measure too strictly. Soup is forgiving, and this one is especially so.
Why You'll Love This Recipe
About the Ingredients
3 tablespoons (45 ml) olive oil
Use a fruity extra-virgin for finishing and a cheaper one for sweating the vegetables. Avocado oil works if you want a neutral flavor.
1 large yellow onion, diced (about 1 1/2 cups / 210 g)
Sweet onions or shallots are lovely substitutes. Look for firm, papery skin with no soft spots when buying.
3 medium carrots, peeled and sliced (about 1 1/2 cups / 180 g)
Rainbow carrots add color; parsnips swap in beautifully for a sweeter, earthier note. Choose carrots that snap when you bend them.
3 celery stalks, sliced (about 1 cup / 100 g)
Fennel bulb is a gorgeous substitute if you want a subtle anise whisper. Buy celery with crisp, pale-green ribs, not limp ones.
4 garlic cloves, minced
Jarred garlic is fine in a pinch, but fresh cloves bloom sweeter. Add an extra clove if you love that punchy aroma.
2 medium Yukon Gold potatoes, cubed (about 2 cups / 300 g)
Russets work but break down more; Yukon Golds hold their shape and turn buttery. Skip potatoes with green patches.
2 (15 oz / 425 g) cans cannellini beans, drained and rinsed
Butter beans or chickpeas substitute well. Rinse canned beans well to wash away that tinny canning liquid.
6 cups (1.4 L) low-sodium vegetable broth
Better Than Bouillon vegetable base whisked into water is a great shortcut. Use homemade stock if you have it frozen.
1 teaspoon dried thyme
Fresh thyme is even better; use 1 tablespoon of leaves. Rosemary or oregano can stand in for a different mood.
1 teaspoon fine sea salt, plus more to taste
Kosher salt works cup for cup by volume if you prefer. Taste at the end and adjust, since broths vary in saltiness.
1/2 teaspoon freshly cracked black pepper
White pepper gives a softer heat if you want the soup to stay pale and pretty. Grind it fresh for the best aroma.
1/2 cup (120 ml) whole milk or unsweetened oat milk, plus more for thinning
Oat milk is the creamiest dairy-free option; coconut milk adds a tropical twist. Add it off the heat so it never curdles.
Tips & Tricks
Don't Boil After Adding Milk
Dairy and plant milks can split at a hard boil. Keep the soup at a gentle simmer, around 185 F (85 C), and stir it in at the very end.
Blend Only Half
Blending everything turns the soup into baby food. Ladle half into the blender, puree until silky, and stir it back so you keep some tender chunks.
Salt in Layers
Season the vegetables as they sweat, then taste again after blending. Broth brands vary wildly in sodium, so the final pinch is the one that matters.
Let It Rest Five Minutes
Off the heat, the flavors meld and the soup thickens slightly. This short pause makes a noticeable difference in body and depth.
Pro Tips
Step-by-Step Instructions
1. Sweat the aromatics
Warm the olive oil in a large Dutch oven over medium heat, 325 F (163 C), then add onion, carrots, and celery. Cook 8 minutes until the onions turn translucent and the edges just begin to glisten, stirring occasionally.
2. Bloom the garlic
Stir in the garlic, thyme, salt, and pepper and cook 60 seconds until fragrant and nutty. Do not let the garlic brown or it will turn bitter.
3. Add potatoes and broth
Pour in the broth and add the potatoes, then raise the heat to medium-high, 375 F (190 C), and bring to a lively simmer. Cook 15 minutes until a knife slides into a potato cube with no resistance.
4. Fold in the beans
Stir in the cannellini beans and simmer 5 more minutes at 350 F (177 C) until they are heated through and the broth has taken on a creamy sheen.
5. Blend half the pot
Ladle about half the soup into a blender, vent the lid, and puree 30 seconds until completely smooth. Return it to the pot and stir to combine for a velvety, half-chunky texture.
6. Finish with milk
Reduce the heat to low, 185 F (85 C), and stir in the milk until the soup turns pale and glossy. Taste and adjust salt, then simmer 2 minutes without boiling.
7. Serve warm
Ladle into bowls and top with cracked pepper, a drizzle of olive oil, or fresh herbs. Serve with crusty bread for dunking.
Delicious Variations
Smoky Red Pepper
Add 1 roasted red pepper and 1 teaspoon smoked paprika before blending for a deep, campfire-sweet bowl.
Green Goddess
Stir in 3 cups baby spinach and a handful of basil at the end, then blend for a vibrant green soup.
Curried Coconut
Swap the milk for coconut milk and add 2 teaspoons curry powder with the garlic for a warming, aromatic twist.
How to Store Creamy Vegetarian Soup
Refrigerator
Cool completely, then store in an airtight container up to 4 days. It thickens as it chills, so loosen with a splash of broth when reheating.
Freezer
Freeze in portions up to 3 months. Milk-based soups can separate slightly, so whisk vigorously after thawing or blend briefly to re-silken.
Reheating
Warm gently on the stovetop over medium-low, 200 F (93 C), stirring often. Avoid a rolling boil to keep the texture smooth and the dairy from splitting.
Frequently Asked Questions
Q: Can I make this creamy vegetarian soup vegan?
Yes, simply use unsweetened oat milk or coconut milk instead of dairy milk and skip any parmesan rind. The blended white beans already provide plenty of natural creaminess, so the soup stays rich and silky. Just add the plant milk off the heat to prevent curdling.
Q: How do I make the soup thicker without cream?
Blend more of the soup, or mash a cup of the beans with a fork and stir them back in. A tablespoon of cornstarch slurry simmered for 2 minutes also thickens it nicely. Potatoes naturally release starch as they cook, so letting it simmer a little longer helps too.
Q: Can I use dried beans instead of canned?
Absolutely, but you will need to soak and cook them first. Use about 1 1/2 cups dried cannellini beans, soak overnight, and simmer until tender before adding to the soup. Canned beans are the fast, weeknight-friendly shortcut.
Q: What vegetables can I add to this soup?
Cauliflower, zucchini, butternut squash, and kale all work beautifully. Add hardy vegetables like squash with the potatoes, and tender greens like kale or spinach in the last 5 minutes. Avoid overcooking delicate vegetables so they keep some bite.
Q: Why did my creamy soup curdle?
The milk was likely added to a boiling pot or heated too quickly. Add dairy or plant milk at the end over low heat, around 185 F (85 C), and never let it come to a rolling boil. If it does split, a quick blend often brings it back together.
Make a pot this week, ladle it into your favorite chipped bowl, and eat it on the porch while the evening cools around you. Then wander through your own kitchen and change it up, because the best soups are the ones you make your own. Wander wisely.
Creamy Vegetarian Soup
Creamy Vegetarian Soup is a silky, one-pot comfort bowl loaded with sweet carrots, potatoes, and white beans for a cozy meatless dinner.
🧂 Ingredients
- 3 tablespoons (45 ml) olive oil
- 1 large yellow onion, diced (about 1 1/2 cups / 210 g)
- 3 medium carrots, peeled and sliced (about 1 1/2 cups / 180 g)
- 3 celery stalks, sliced (about 1 cup / 100 g)
- 4 garlic cloves, minced
- 2 medium Yukon Gold potatoes, cubed (about 2 cups / 300 g)
- 2 (15 oz / 425 g) cans cannellini beans, drained and rinsed
- 6 cups (1.4 L) low-sodium vegetable broth
- 1 teaspoon dried thyme
- 1 teaspoon fine sea salt, plus more to taste
- 1/2 teaspoon freshly cracked black pepper
- 1/2 cup (120 ml) whole milk or unsweetened oat milk, plus more for thinning
📋 Instructions
- 1Sweat the aromatics — Warm the olive oil in a large Dutch oven over medium heat, 325 F (163 C), then add onion, carrots, and celery. Cook 8 minutes until the onions turn translucent and the edges just begin to glisten, stirring occasionally.
- 2Bloom the garlic — Stir in the garlic, thyme, salt, and pepper and cook 60 seconds until fragrant and nutty. Do not let the garlic brown or it will turn bitter.
- 3Add potatoes and broth — Pour in the broth and add the potatoes, then raise the heat to medium-high, 375 F (190 C), and bring to a lively simmer. Cook 15 minutes until a knife slides into a potato cube with no resistance.
- 4Fold in the beans — Stir in the cannellini beans and simmer 5 more minutes at 350 F (177 C) until they are heated through and the broth has taken on a creamy sheen.
- 5Blend half the pot — Ladle about half the soup into a blender, vent the lid, and puree 30 seconds until completely smooth. Return it to the pot and stir to combine for a velvety, half-chunky texture.
- 6Finish with milk — Reduce the heat to low, 185 F (85 C), and stir in the milk until the soup turns pale and glossy. Taste and adjust salt, then simmer 2 minutes without boiling.
- 7Serve warm — Ladle into bowls and top with cracked pepper, a drizzle of olive oil, or fresh herbs. Serve with crusty bread for dunking.



