Soups · Published August 28, 2026

Ukrainian Homemade Borscht Soup with Sour Cream

5 from 1 rating

Classic Ukrainian borscht made with beef on the bone, beets, cabbage, potatoes, and a proper vegetable sauté that keeps the broth that deep crimson red. Served with sour cream and fresh parsley.

Prep time 25 min
Cook time 2 hrs
Total time 2 hrs 25 min
Servings 6
Cuisine Ukrainian
Jump to Recipe

Ukrainian borscht is not just a soup – it is a category of cooking unto itself, and every family has a version they consider the correct one. This one uses beef short ribs for the broth, a proper beet and tomato sauté (the zazharka) added at the end, and garlic stirred in raw just before serving. It is hearty, deeply colored, and genuinely satisfying in a way that only soups built over several hours can be. The broth takes time. The vegetables take attention. And the result is something that tastes better on day two than it did when you first made it, which is either a design feature or a happy accident depending on who you ask.

The single most important technique in borscht is how you handle the beets. Beets cooked directly in the soup for too long turn brown and gray, and the soup loses the vivid red color that makes it recognizable. The correct approach is to cook the beets separately in a skillet with oil, tomato paste, a small splash of vinegar, and a pinch of sugar. The acid from the vinegar and tomatoes locks in the color and the gentle frying concentrates the beet flavor before it ever touches the broth. This sauté gets added to the pot near the end of cooking, not the beginning, and the soup is taken off the heat shortly after. This is the step that makes the difference between a bowl of brownish vegetable soup and a bowl of genuine borscht.

The broth starts from cold water and raw beef on the bone. Bring it to a boil and skim the foam that rises to the surface in the first few minutes – this is not optional if you want a clean, clear broth. After skimming, the heat goes down to a patient simmer for an hour and a half. The resulting broth is the backbone of the whole dish.

Garlic goes in raw at the very end. This is the Ukrainian way: two or three cloves crushed or finely minced, stirred in off the heat. It gives the soup a sharp, fresh punch that cooked garlic could never provide. Let the soup rest for ten minutes after the garlic goes in before serving.

If you enjoy Ukrainian recipes, our Ukrainian Syrnyky are a natural companion – cottage cheese pancakes that make a lovely side or a light dessert after a bowl of borscht. For another European soup that takes a similarly patient approach to building a proper broth, our Classic Italian Minestrone is worth having in rotation.

Ingredients for Ukrainian Homemade Borscht Soup with Sour Cream

  • For the broth:
  • 800g (1.75 lb) beef short ribs or beef chuck on the bone
  • 2 liters (8 cups) cold water
  • 2 bay leaves
  • 1 teaspoon salt
  • For the vegetable sauté (zazharka):
  • 3 tablespoons sunflower oil (or other neutral oil)
  • 1 large onion, finely diced
  • 2 medium carrots (about 200g / 7 oz), peeled and grated or cut into thin strips
  • 2 medium beets (about 400g / 14 oz), peeled and grated or cut into thin matchsticks
  • 3 tablespoons tomato paste
  • 1 tablespoon white vinegar or apple cider vinegar
  • 1 teaspoon sugar
  • Salt to taste
  • For the soup:
  • 300g (10 oz) white cabbage, thinly shredded
  • 3 medium potatoes (about 400g / 14 oz), peeled and cut into 2 cm (0.8 inch) cubes
  • 3-4 garlic cloves, finely minced or pressed
  • Salt and black pepper, to taste
  • For serving:
  • Sour cream
  • Fresh parsley or dill
  • Dark rye bread

How to Make Ukrainian Homemade Borscht Soup with Sour Cream

  1. 1

    Place the beef in a large pot and cover with the cold water. Bring to a boil over high heat (100°C / 212°F). As soon as it boils, a gray foam will rise to the surface - skim it off thoroughly with a ladle or spoon. This step is important for a clear broth and should take about 3-5 minutes.

  2. 2

    Add the bay leaves and 1 teaspoon of salt. Reduce the heat to a low simmer (about 90°C / 195°F), cover partially, and cook for 1 hour 30 minutes until the beef is fully tender and falling from the bone.

  3. 3

    While the broth simmers, make the zazharka. Heat the sunflower oil in a large skillet over medium heat (about 175°C / 350°F). Add the onion and cook for 5-7 minutes until softened. Add the carrots and cook for another 3-4 minutes.

  4. 4

    Add the grated beets to the skillet. Stir in the tomato paste, vinegar, and sugar. Season lightly with salt. Cook over medium-low heat for 12-15 minutes, stirring occasionally, until the beets are soft and the mixture looks thick and jammy. The vinegar is what keeps the beets bright red - do not skip it.

  5. 5

    Remove the beef from the broth. Pull the meat from the bones, discard the bones and bay leaves, and return the shredded meat to the pot. Bring the broth back to a steady simmer.

  6. 6

    Add the shredded cabbage to the broth and cook for 8 minutes. Add the potato cubes and continue simmering for another 12-15 minutes until the potatoes are just tender.

  7. 7

    Stir the beet zazharka into the pot. Mix well, bring back to a gentle simmer (about 90°C / 195°F), and cook for 5 more minutes. Taste and adjust salt and pepper.

  8. 8

    Remove the pot from the heat. Stir in the raw minced garlic. Let the borscht rest uncovered for 10 minutes before serving - this allows the garlic to mellow slightly and the flavors to settle.

  9. 9

    Ladle into deep bowls. Top each serving with a generous spoonful of sour cream and fresh parsley or dill. Serve with dark rye bread.

Nutrition (per serving)

Calories 380
Fat 18g
Carbs 28.1g
Protein 25g

Where the calories come from

  • Carbs 28.1g · 30%
  • Protein 25g · 27%
  • Fat 18g · 43%

Nutrition Disclosure

Tips & FAQ

Why did my borscht turn brown instead of staying red?
The beets lost their color because they were cooked too long or added too early without acid. The vinegar in the zazharka is specifically there to protect the beet's pigment (betacyanin) during cooking. Two other things help: adding the beet sauté near the end of cooking rather than the beginning, and not simmering the finished soup for too long after the zazharka goes in. If your borscht has already turned brownish, a small splash of fresh lemon juice or vinegar stirred in just before serving can bring some of the red back.
Can I make borscht without meat for a vegetarian version?
Yes. Skip the beef entirely and use 2 liters of good vegetable broth instead. Add 400g (14 oz) of canned kidney beans or white beans along with the potatoes for protein and body. The zazharka method stays exactly the same - this is where most of the soup's flavor lives, so do not simplify it. Vegetarian borscht is lighter but still very satisfying, and it comes together much faster since there is no broth to build from scratch.
Is borscht better the next day?
Yes, genuinely. The broth continues to develop overnight in the refrigerator as all the flavors meld together. The beet color also intensifies and the soup thickens slightly as the potato starch absorbs more liquid. Reheat gently over medium-low heat (about 75-80°C / 165-175°F) - do not boil it again or the beet color will dull. Keep the sour cream and fresh herbs separate and add them fresh to each reheated bowl.
What cut of beef works best?
Beef short ribs are ideal because the bone adds gelatin and depth to the broth while the meat becomes very tender during the long simmer. Beef chuck on the bone, marrow bones with a piece of stewing beef alongside, or beef oxtail all work well for the same reason - the collagen from connective tissue and bone makes the broth silky in a way that boneless cuts cannot. Avoid lean cuts like sirloin or round: they produce a thin, less flavorful broth and the meat turns dry after an hour and a half of cooking.
Can I use pre-cooked or pickled beets?
Pre-cooked vacuum-packed beets can work in a pinch, but they are softer and less flavorful than raw beets cooked in the zazharka, and they bleed more into the broth rather than concentrating their flavor first. If using pre-cooked beets, reduce the sauté time to 5-6 minutes since they do not need to soften. Pickled beets will add unwanted sweetness and a sharp vinegar flavor that throws the balance of the soup off - avoid them for this recipe.

More Soups

Homemade meatball soup with potatoes and fresh dill, served with crusty bread

Soups · 1 hr 5 min

5 from 1 rating

Homemade Meatball Soup with Potatoes and Fresh Dill

A hearty, clear-broth meatball soup with tender beef meatballs, potato chunks, carrots, and a generous handful of fresh dill. Simple, comforting, and ready in just over an hour.

Spanish Salmorejo cold tomato soup, topped with diced jamón serrano and crumbled hard-boiled egg

Soups · 2 hrs 20 min

5 from 1 rating

Spanish Salmorejo Cold Tomato Soup

Salmorejo is a thick, silky Spanish cold tomato soup from Córdoba made with just ripe tomatoes, bread, garlic, and olive oil, then topped with jamón serrano and hard-boiled egg. No cooking required.

Taiwanese braised beef noodle soup with large tender beef chunks in a dark soy broth, thick wheat noodles, and sliced green onions

Soups · 2 hrs 50 min

5 from 1 rating

Taiwanese Braised Beef Noodle Soup

Taiwanese braised beef noodle soup with tender beef shank, thick wheat noodles, and a rich, fragrant dark soy broth spiced with star anise, cinnamon, and doubanjiang. A proper bowl worth the time it takes.

Related searches

Ukrainian borscht borscht recipe homemade borscht Ukrainian soup beet soup borscht with beef classic borscht traditional borscht borscht with sour cream how to make borscht