This family borscht recipe is the real deal — a Ukrainian beetroot soup that’s deeply colored, warmly spiced, and honestly one of the most satisfying things you can make on a cold day.
Please note that this post has recently been updated with new photos, video, and more details.
Jump to: ℹ️ Overview | 🛒 Ingredients | 📷 How To Make | 📹 Watch The Video | 👩🍳 Recipe Tips | 🥗 Serving Suggestions | 📝Full Recipe Card | 🍽 More Hearty Soup Recipes
At A Glance
- ⏱ Ready In: 55 minutes
- 🍽 Serves: 6–8
- 🌱 Diet: Vegetarian, Vegan-friendly (with coconut yogurt), Gluten-Free, Dairy-Free
- 💪 Nutrition Highlights: High in fiber, plant-based protein from white beans, rich in vitamins from beets and cabbage
- 🥕 Main Ingredients: Fresh beets, cabbage, potato, cannellini beans, dill
- 🔥 Flavor Profile: Earthy, sweet-tangy, gently spiced with warm coriander and paprika, bright from apple cider vinegar
- 🧊 Meal-Prep Friendly: Keeps 5–6 days in the fridge; freezes up to 3 months. Tastes even better the next day.
- Best Served With: Toasted rye bread or sourdough, sour cream or coconut yogurt, fresh dill
This is my family’s borscht recipe — the version I grew up eating, updated with a few tweaks that I’ve landed on after making it countless times. We always had borscht on the stove in winter when I was a kid, and the smell of beets and dill together still feels like home.
The cannellini beans add body and protein without muddying that gorgeous deep red color. The soup is earthy and sweet from the beets, with a brightness that comes from apple cider vinegar and a warmth from paprika and ground coriander that you won’t find in every borscht recipe.
Grating the beets and carrot (rather than chopping) is what my grandma and mom have always done — it gives the soup a more even texture and helps everything absorb that beautiful color. The other thing I won’t skip: resting the finished soup with the lid on and a generous handful of fresh dill stirred through. It makes a real difference to the final flavor.
👩🍳You might also like these recipes: vinegret beet salad (also Ukrainian), potato and leek soup, roasted beets in vinaigrette, beetroot, avocado & edamame salad, Greek chickpea soup, or Ukrainian cabbage pie.
What You’ll Need
Here is what you’ll need for this borscht recipe. Find the full measurements in the recipe card below.
The base:
- Olive oil — for sautéing; any neutral cooking oil works here
- Onion — finely diced for a sweet, savory base
- Celery — adds depth to the broth without overpowering the beets
- Garlic — fresh and minced, not jarred if you can help it
Vegetables & beans
- Fresh beets (beetroot) — the star of the show; use fresh, not pre-cooked, for the best color and flavor. Grate them on the large holes of a box grater. Pre-cooked or pickled beets work in a pinch — but omit the vinegar if using those.
- Carrot — grated to match the beets; adds natural sweetness.
- White potato — cut into small, even cubes so they cook at the same rate; waxy varieties hold their shape better.
- White cabbage — slice it thin, like you would for coleslaw, and cut any long shreds in half. Don’t skip the cabbage — it adds texture and soaks up the broth beautifully.
- Cannellini beans — added at the end so they stay whole; navy, great northern, or Borlotti all work here. Leave them out if you prefer a bean-free version. I love the added fiber and protein.
The flavor builders:
- Tomato paste — adds richness and depth.
- Paprika — mild, sweet paprika works well here; smoked paprika gives a slightly different (also delicious) result.
- Ground coriander seed — a slightly unexpected addition that rounds out the earthiness of the beets.
- Sugar — just a teaspoon to balance the acidity.
- Apple cider vinegar — this is what keeps the soup bright red and adds that characteristic tang; white wine vinegar is a fine swap.
- Bay leaves — for background warmth; don’t forget to fish them out before serving.
- Vegetable stock — quality matters here; a good stock makes the whole soup taste better.
To serve:
- Fresh dill — non-negotiable in my opinion; stir a big handful in at the end and keep more for the bowls.
- Sour cream or coconut yogurt — traditional, creamy, and wonderful; this is what makes each bowl feel like a proper meal.
How To Make Borscht Soup
Find the full recipe and nutritional information below. Here are some handy step-by-step photos for how to make this vegetarian borscht recipe.
- Start by prepping everything before you turn on the stove: grate the beets and carrot, thinly slice the cabbage, dice the onion and celery, cut the potatoes into small even cubes, and drain and rinse your beans. Borscht is a soup that rewards mise en place.
- Heat olive oil in a large, heavy-bottomed pot or Dutch oven over medium-high heat. Add the diced onion and celery and sauté for 4–5 minutes until softened and lightly golden.
- Add the grated carrot, grated beets, minced garlic, and a teaspoon of salt. Stir to combine and cook for another 2–3 minutes. The mixture will turn a deep, stunning red at this point. Don’t skip this sautéing step.
- Add the cubed potatoes, sliced cabbage, tomato paste, paprika, ground coriander, sugar, apple cider vinegar, bay leaves, and black pepper. Pour in the vegetable stock and stir everything together well.
- Bring the soup to a boil, then reduce the heat to low, cover with a lid, and simmer for 20–25 minutes until the potatoes are completely tender.
- In the last 5 minutes of cooking, stir in the drained cannellini beans.
- Remove the bay leaves. Taste and adjust salt — depending on your stock, you may need an extra pinch.
- Turn off the heat, stir through a generous handful of fresh dill, replace the lid, and let the soup rest for 10 minutes. This step is important — don’t skip it.
- Ladle into bowls and serve with a big dollop of sour cream or coconut yogurt and extra dill. The soup is even better on day two.
Watch The Video
Recipe Tips
- Grate, don’t chop. Grating the beets and carrot gives the soup a more even texture and deeper color. Chopped beets work, but the result is different — chunkier and less vibrant.
- Use fresh beets. Pre-cooked beets are fine in a pinch, but fresh makes a noticeably better soup. If you use pre-cooked or pickled beets, skip the vinegar.
- Don’t skip the vinegar. It’s what keeps the soup that striking deep red and adds the characteristic tang that makes borscht taste like borscht. Without it, the color dulls, and the flavor falls flat.
- The resting step matters. Turning off the heat and letting the soup sit for 10 minutes with dill and the lid on is a step I’d never rush. The flavors settle, and the dill infuses without going murky green.
- Swap the beans or leave them out. Cannellini are my pick, but navy beans, great northern, or borlotti all work. For a very traditional borscht, skip the beans entirely.
- Make it vegan. Use coconut yogurt instead of sour cream for serving — it works beautifully.
- Storage: Keeps in the fridge for 5–6 days in an airtight container. Freezes well for up to 3 months. Reheat on the stove over medium heat. The flavor genuinely improves by day two.
- Make-ahead: This is one of the best make-ahead soups around — make a big pot on Sunday, and you’re set for lunches and dinners most of the week.
Serving Suggestions
Borscht is traditionally served with something to scoop up the broth — toasted rye bread or sourdough are both perfect. A dollop of sour cream (or dairy-free yogurt if keeping it vegan) is classic and really rounds out the richness of the soup. Spring onions and extra fresh dill on the side are both welcome.
If you’re serving it to guests, a small pot of sour cream at the table alongside a crusty loaf makes the whole thing feel like a proper event. Traditionally, borscht would be served alongside salo (cured lard) or thinly sliced speck, but since this is a vegetarian version, a simple, good-quality bread is all you really need.
💬 If you’ve tried this borscht recipe or any other recipe on the blog then don’t forget to rate the recipe and let me know how you got on in the comments below, I love hearing from you! You can also FOLLOW ME on Instagram, Facebook, Pinterest, YouTube, and or sign up to my Newsletter to see more of my delicious food.
Want to Save This Recipe?
Enter your email & I’ll send it to your inbox. Plus, get great new recipes from me every week!
By submitting this form, you consent to receive emails from Cooked & Loved
Video
Ingredients
- 2 tablespoons olive oil
- 1 large onion peeled and finely diced
- 1 large celery stick diced small
- 3 medium beets about 14 oz / 400 grams, peeled and grated on the large holes of a box grater
- 1 large carrot about 5 oz / 140 grams, peeled and grated
- 3 cloves garlic finely minced
- 1 teaspoon salt plus more to taste
- 3 medium white potatoes about 14 oz / 400 grams, peeled and cut into small cubes
- ⅓ medium white cabbage about 10 oz / 300 grams, thinly sliced
- 6 cups vegetable stock 1.5 liters
- 2 tablespoons tomato paste
- 1 teaspoon paprika
- 1 teaspoon ground coriander seed
- 1 teaspoon sugar
- 3 tablespoons apple cider vinegar or white wine vinegar
- 2 bay leaves
- ½ teaspoon ground black pepper
- 1 can cannellini beans 15 oz / 425 grams, drained and rinsed
To serve:
- Generous bunch of fresh dill roughly chopped
- Sour cream or coconut yogurt optional but traditional
Instructions
- Prep all your vegetables before you start cooking: grate the beets and carrot, thinly slice the cabbage, dice the onion and celery finely, and cut the potatoes into small, even cubes. Drain and rinse the cannellini beans.
- Heat the olive oil in a large, heavy-bottomed pot or Dutch oven over medium-high heat. Add the diced onion and celery and sauté for 4–5 minutes, stirring occasionally, until softened and lightly golden.
- Add the grated carrot, grated beets, minced garlic, and 1 teaspoon of salt. Stir to combine and cook for 2–3 more minutes until the beets begin to soften slightly. The mixture will turn a deep, beautiful red.
- Add the cubed potatoes, sliced cabbage, tomato paste, paprika, ground coriander, sugar, apple cider vinegar, bay leaves, and black pepper. Pour in the vegetable stock and stir everything together well.
- Increase the heat and bring the soup to a boil. Once boiling, reduce the heat to low, cover with a lid, and simmer for 20–25 minutes until the potatoes are completely tender.
- In the last 5 minutes, add the drained cannellini beans.
- Remove the bay leaves. Taste and adjust salt — depending on your stock, you may need an extra pinch or two.
- Turn off the heat completely. Add a generous handful of chopped fresh dill, replace the lid, and let the soup rest for 10 minutes. This step is important — it lets the dill infuse and the flavors settle.
- Ladle into bowls and serve with a dollop of sour cream or coconut yogurt and extra dill. The soup tastes even better the next day.
Hello,
Can you blend this recipe? Also is there a reason why the sodium is so high? Thank you in advance for the help.
Hi Kat, it’s not blended traditionally but you can absolutely do so. The flavour will still be the same, just less fibre. The nutrition calculator probably uses vegetable stock that’s quite in salt, hence it is skewing the sodium. Use low-sodium stock or homemade and you should be golden. You can also reduce added salt amount and season to taste at the end.
Want to try this, I’m super excited about it too! Thank you, just wish I could alter the serving size.
I made it for dinner and it was a super hit! So flavour ful and delicious ..
Thanks, Neepam 🙂
Fore some reason borscht turned me off as a child–cannot tell you why but think your recipe will help me get over this irrational feeling. Have a bunch of garden fresh, organic beets in the refrig as well as cabbage and carrots and onions–all home/local grown and organic. No dill but lots of fennel weed which often substitutes in my kitchen. Love the idea of other root veggies than potatoes. You mention parsnips but there is a big turnip also available as well as a good size kohlrabi both wondering how to be used. So thankx for this recipe and can’t wait to try it.
I think you can throw in any root vegetables you like, including kohlrabi which is part of the cabbage family anyway. It will work well!
My half Russian/ Ukraine husband said it was very close to his mother’s borscht. I used pomegranate molasses instead of vinegar which gave it a beautiful flavour. It will be our family favourite now. I’m half Polish so very special to both of us. Tradition!
Love the idea of the pomegranate molasses. I have some in my pantry, so I will have to try it next time. Glad you liked it.
I just made this – WOW, so delicious!!! I love how the flavours really come together. I can’t believe I have never made this before – it will now be part of my repertoire!! Thank you so much for the wonderful recipe!
Happy you enjoyed it! It’s a little secret gem of a soup.
I make this as well & store in jars in my coldroom. I use soup bones to make the broth or just buy it. The secret is using garden veggies like potatoes, peas, beans, shredded cabbage, shredded carrots etc. (even canned Heinz beans & tomato sauce). The secret to “Baba’s Borstch” is to use Ketchup rather than tomato paste…The DILL is a must & that freezes very well. Just pick, wash, dry on paper towels & chop finely & store in the freezer in small jars or ziplok bags & just use a fork & scrape off as much as you will need. Also great on new potatoes or in salads. This is my Romanian version of Borstch!! Yummu for the tummy!!!