Soups & Stews
This beet and cabbage borscht soup recipe delivers the vibrant ruby hues and earthy depth that make it a beloved Eastern European classic. The secret lies in properly roasting the beets until tender and caramelized, then building layers of flavor through careful sautéing of cabbage and onions.
I've perfected this method over years of testing to ensure the perfect balance between sweet, tangy, and savory notes.
The beauty of traditional borscht is its ability to adapt while maintaining authenticity. You'll start with a rich vegetable broth base that carries the deep flavors of roasted beets and tender cabbage.
Proper seasoning with vinegar or lemon juice creates that signature tang that brightens the earthy vegetables, while fresh dill adds a bright herbal finish. The soup's vibrant color comes from both the beets and the cabbage, creating that iconic ruby appearance.
What you'll end up with is a hearty, comforting soup that's perfect for chilly days or cozy gatherings. The texture is just right—tender vegetables in a velvety broth that's neither too thin nor too thick.
Each spoonful delivers layers of flavor: the natural sweetness of beets, the earthy cabbage, and that perfect touch of tang. This recipe is also remarkably flexible, with easy adaptations for vegetarian or vegan diets.
Serve it traditionally with a dollop of sour cream and fresh dill, or add boiled eggs for extra protein. The soup tastes even better the next day as flavors meld together. Ready to create this comforting classic? Let's get started with the ingredients and step-by-step instructions that follow.
Ingredients for beet and cabbage borscht soup
These vibrant ingredients create the iconic ruby hues and comforting earthiness of classic borscht.
| Ingredient | Amount | Notes |
|---|---|---|
| Medium Beets 🍠 | 4 whole | Roasted until tender, peeled |
| Green Cabbage 🥬 | 1 small head | Core removed, chopped |
| Yellow Onions 🧅 | 2 medium | Sliced thinly for sautéing |
| Fresh Parsnips 🥕 | 2 medium | Peeled, chopped into chunks |
| Russet Potatoes 🥔 | 2 medium | Peeled, cubed for broth |
| Carrots 🥕 | 3 medium | Peeled, chopped for broth |
| Vegetable Broth 💧 | 4 cups | Homemade or quality store-bought |
| White Vinegar 🍋 | 2 tbsp | White or apple cider vinegar |
| Fresh Dill 🌿 | ½ cup | Chopped, stems removed |
| Sour Cream 🧀 | ½ cup | For serving, optional |
| Olive Oil 🫒 | ½ cup | For roasting and sautéing |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Garlic Cloves 🧄 | 4 cloves | Minced for sautéing |
The beets are non-negotiable for that signature color. Look for small to medium beets at the grocery store—they're sweeter and more tender. Whole Foods or Trader Joe's usually have the best selection, but any store with a good produce section works. Roast them until they're fork-tender, not mushy—this is where the magic happens. The cabbage should be fresh and crisp; if it's wilted, skip it. For the broth base, I always use homemade vegetable broth, but Low Sodium Pacific Foods or Imagine brands are solid store-bought options if you're short on time.
No fresh dill? Dried dill at one-third the amount works in a pinch, but fresh is ideal for that bright finish. The sour cream is optional but adds that creamy tang—full-fat works best for serving. Short on parsnips? Swap for extra carrots or celery root—they'll add sweetness and body. The onions and garlic are your flavor anchors here, so don't skimp on sautéing them until they're soft and golden. The vinegar adds that signature tang, but if you prefer lemon, use 1 tbsp lemon juice instead—just add it at the end so it doesn't cook off.
This soup tastes even better the next day as flavors meld together. Store leftovers in the fridge for up to 5 days—the broth will absorb all those beautiful flavors. For freezing, portion into 2-cup containers and it keeps for 3 months. The sour cream and fresh dill should be added fresh when serving, not stored with the soup. Double the recipe if you're feeding a crowd—it's that good.
Why You'll Love This Recipe
- No Chopping Chaos: I swear by this recipe because the beets and potatoes take the hardest work—just peel, cube, and toss. The onions and cabbage barely need slicing, and honestly? That’s my kind of cooking when I’m already exhausted.
- Earthy Depth Bomb: The roasted beets and parsnips add this rich, almost caramelized sweetness that balances the sharp cabbage perfectly. It’s not just soup—it’s like a cozy hug in a bowl, especially when you stir in a spoonful of that tangy vinegar finish.
- Leftovers That Shine: This soup actually tastes better the next day. I make a big batch on Sundays, and by Wednesday, it’s become my lunch again—just reheat and add a dollop of sour cream. No sad, watery leftovers here.
- Budget-Friendly Powerhouse: Beets, cabbage, and potatoes? Those are the kind of ingredients that won’t break the bank. Between us, I’ve fed four people for under $10 with this recipe—and they’ve never complained about the cost, just the flavor.
Step-by-step instructions for beet and cabbage borscht soup
Here's how to create a rich, vibrant borscht with deep flavors and perfect texture.
Roast the Beets for Sweet, Tender Bases
Preheat your oven to 400°F and line a baking sheet with parchment paper. Wash the 4 whole medium beets thoroughly, then wrap each one individually in aluminum foil. Place them on the baking sheet and roast for 45-50 minutes until completely tender when pierced with a knife.
Once roasted, let the beets cool slightly before peeling. I like to run them under cold water first to make peeling easier—the skins should slip right off. Cut them into ½-inch cubes and set aside. Roasting beets this way intensifies their natural sweetness, which forms the soul of your borscht. Don't skip this step—boiling beets makes them watery and less flavorful.
Build the Flavor Base with Onions, Garlic and Parsnips
Heat 2 tablespoons of the ½ cup olive oil in a large pot over medium heat. Add the 2 medium yellow onions sliced thinly and cook for 5 minutes until soft and translucent. Stir in the 4 cloves garlic cloves minced and cook for another 30 seconds until fragrant.
Add the 2 medium fresh parsnips chopped into chunks and cook for 5 minutes until they begin to soften. This aromatic trio forms the flavor foundation of your soup. I press down gently with a wooden spoon during the first minute—this prevents the onions from burning while they release their sweetness. If the onions start to brown too quickly, reduce the heat slightly.
Simmer the Vegetable Broth with Potatoes and Carrots
Add the 2 medium russet potatoes cubed, 3 medium carrots chopped, 4 cups vegetable broth, and 2 tablespoons white vinegar to the pot. Bring to a boil, then reduce heat to medium-low and let it simmer uncovered for 15-20 minutes until the potatoes are fork-tender.
While simmering, stir occasionally to prevent a skin from forming. The vinegar adds brightness and helps balance the earthy flavors. You'll know it's ready when the potatoes can be easily pierced with a fork and the carrots are soft. This is where the soup comes together—don't rush this step, as proper simmering develops the flavors.
Combine All Ingredients for Rich, Hearty Borscht
Add the roasted beets and 1 small head green cabbage chopped to the pot. Stir well to combine and let the soup simmer for an additional 10 minutes until everything is heated through and the cabbage is tender. Taste and adjust seasoning with 1.5 teaspoons salt and ½ teaspoon black pepper as needed.
The beets should infuse the broth with their vibrant color and sweetness. If the soup seems too thick, add a splash of water or broth to reach your desired consistency. This is the moment where all the flavors meld together—take a moment to appreciate the rich, ruby hues and earthy aroma that fills your kitchen.
Finish with Fresh Dill and Serve Warm
Remove the pot from heat and stir in the ½ cup fresh dill chopped. Let the soup sit for 5 minutes to allow the flavors to meld. Ladle the borscht into bowls and serve with a dollop of ½ cup sour cream on top. The sour cream adds a creamy contrast to the earthy vegetables and tangy broth.
This vibrant, hearty borscht is perfect for chilly days. The combination of roasted beets, fresh cabbage, and aromatic herbs creates a soup that's both comforting and visually stunning. Serve with crusty bread to soak up every last drop of that flavorful broth. Enjoy immediately while it's warm and the flavors are at their peak!
Pro Tips For Making Beet And Cabbage Borscht Soup
- Peel Beets After Cooking: Raw beets stain like a toddler’s finger paint, so skip peeling them first—just scrub them clean and cook them whole. After boiling, the skins slip right off in seconds, and you won’t waste precious minutes scrubbing stubborn purple streaks from your cutting board.
- Sweat Onions Low and Slow: I used to rush this step, and my onions would either burn or taste raw. Instead, keep the heat at a steady simmer (not a sizzle) and let them cook for 8–10 minutes until they’re translucent and just starting to caramelize. That’s when the flavor actually develops—no need to rush.
- Chop Cabbage Uniformly: Big, uneven chunks of cabbage mean some will turn to mush while others stay crunchy. Aim for ½-inch slices—small enough to soften properly but big enough to hold shape. If you’re short on time, use a mandoline, but watch your fingers (yes, even if you’re impatient like me).
- Add Potatoes Last: Potatoes absorb flavor like a sponge, so toss them in only 10 minutes before the soup finishes. If you add them early, they’ll turn to glue, and your broth will taste like boiled spuds. Trust me, this is the thing that matters most for texture.
Creative variations of beet and cabbage borscht soup
Creamy Vegan Version
Swap the sour cream for ½ cup coconut yogurt or cashew cream made by blending 1 cup soaked cashews with ¼ cup water. Use 1 tbsp lemon juice instead of vinegar to brighten the broth without dairy.
The texture stays rich and velvety while keeping it plant-based. I've tested this version with Silk Unsweetened Coconut Yogurt and it works beautifully. 🌱
Spicy Ukrainian Style
Add 1 tbsp hot paprika and ½ tsp cayenne pepper when sautéing the onions. For extra heat, stir in 2 tbsp chopped fresh horseradish before serving. This variation comes from traditional Ukrainian borscht recipes where heat balances the earthy flavors.
I like to serve it with pickled garlic on the side for an extra tangy kick. 🌶️
Summer Light Version
Reduce the potatoes to 1 medium and add 1 zucchini chopped instead. Use 3 cups broth instead of 4 for a lighter consistency. Finish with extra ¼ cup fresh dill and a squeeze of lemon.
This version is perfect for warm weather when you want something refreshing yet still hearty. The zucchini adds a subtle sweetness that pairs beautifully with the beets. ✨
Winter Hearty Addition
Add 1 cup cooked sauerkraut (drained) and ½ cup chopped smoked sausage (like kielbasa) when combining all ingredients. The sauerkraut adds tangy depth while the sausage brings smoky richness.
This version is perfect for cold winter days when you crave extra warmth. I like to serve it with crusty rye bread for dipping. ❄️
Sweet Potato Swap
Replace the parsnips with 2 medium sweet potatoes peeled and cubed. The natural sweetness of sweet potatoes enhances the beets' flavor while adding a vibrant orange hue to the broth.
This variation works especially well when you want to add extra heartiness without changing the core technique. The sweet potatoes also help thicken the soup naturally. 🍠
Lemon Herb Finish
Instead of vinegar, use 1 tbsp lemon zest plus 2 tbsp fresh lemon juice at the end. Add an extra ¼ cup fresh parsley along with the dill for a bright, citrusy finish.
This variation works beautifully with a vegetarian broth and adds a refreshing twist to the classic recipe. The lemon zest infuses a subtle floral note that complements the earthy vegetables perfectly. 🍋
Nutrition facts
Frequently asked questions
Why does my borscht look more orange than ruby red?
Roasting beets properly is key! For that signature deep red color, roast them at 400°F for 45-50 minutes until fork-tender. If they're undercooked, they'll release less pigment. Also, adding beets later in the cooking process preserves their vibrant hue. For extra richness, try adding 1 tbsp beet juice from the roasting pan to the broth.
Can I make borscht without vinegar?
Yes! The vinegar adds tanginess, but you can substitute with 1 tbsp lemon juice or 1 tsp white wine vinegar for a milder flavor. For a completely vinegar-free version, try ½ tsp apple cider vinegar or omit it entirely and add extra fresh dill for brightness. The broth will still be flavorful, just less acidic.
How do I prevent my borscht from getting watery?
Simmer uncovered and stir occasionally to prevent a skin from forming. If it's too thin, mash ½ cup cooked potatoes directly in the pot or stir in 1 tbsp cornstarch mixed with 2 tbsp water. For extra body, add ½ cup cooked barley or 1 cup chopped beets during the final 10 minutes of cooking.
What's the best way to store leftover borscht?
Store in an airtight container in the fridge for up to 5 days—it actually tastes better the next day! For freezing, portion into 2-cup containers and freeze for up to 3 months. Always add sour cream and fresh dill fresh when reheating. The flavors meld beautifully overnight, making it even more comforting.
Can I make borscht ahead for a dinner party?
Prepare it completely (without sour cream) up to 2 days ahead and reheat gently on the stove. For a dinner party, serve it in a large pot with individual bowls of sour cream, fresh dill, and boiled eggs on the side. The interactive presentation lets guests customize their bowls. Pro tip: Keep the beets separate until serving to maintain their vibrant color.
