Ukrainian Borscht: A Traditional Beet Soup Recipe

Updated November 4, 2026

Total time
2 hr 50 min
prep 30 min · cook 2 hr 20 min
Serves
6
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Ukrainian Borscht: A Traditional Beet Soup Recipe

Ukrainian borscht is a hearty beet soup made with tender beef, potatoes, cabbage, and a bright finish of vinegar and fresh dill. This version simmers the beef for a deeply flavored broth, then adds the vegetables in stages so they keep their color and texture; regional and family versions vary.

Ingredients

  • 1 lb (450 g) boneless beef chuck, cut into 1-inch (2.5 cm) cubes
  • 1 tbsp (15 ml) neutral cooking oil
  • 8 cups (1.9 L) water
  • 1 tsp (5 g) fine salt, plus more to taste
  • 1 bay leaf
  • ½ tsp (1 g) freshly ground black pepper
  • 3 medium raw beets, about 1 lb (450 g), peeled and coarsely grated
  • 1 medium yellow onion, about 5 oz (150 g), finely diced
  • 2 medium carrots, about 5 oz (150 g), peeled and coarsely grated
  • 2 tbsp (30 g) tomato paste
  • 1 tbsp (15 ml) apple cider or white vinegar
  • 1 tsp (4 g) granulated sugar, optional, to balance the beets and vinegar
  • 2 medium potatoes, about 10 oz (300 g), peeled and cut into ½-inch (1.25 cm) cubes
  • 3 cups (210 g) finely shredded green cabbage
  • 3 garlic cloves (9 g), finely chopped or pressed
  • ¼ cup (10 g) chopped fresh dill, divided
  • ½ cup (120 g) sour cream, for serving
  • 2 tbsp (8 g) chopped fresh parsley, optional, for serving

Instructions

  1. Prepare the ingredients. Peel and grate the beets and carrots, dice the onion and potatoes, shred the cabbage, and chop the garlic and dill. Keep the potatoes in a bowl of cold water if you are not using them right away; drain them before adding to the pot. Cutting the vegetables before cooking makes it easier to add each one at the right time.
  2. Brown the beef. Heat the oil in a large, heavy soup pot over medium-high heat. Pat the beef dry, then brown it in a single layer, working in batches if necessary, for about 6 to 8 minutes total. Turn the pieces so several sides color. Browning builds savory flavor, but the beef does not need to cook through at this stage. Transfer it to a plate if the pot is crowded.
  3. Make the beef broth. Return the beef and any juices to the pot. Add the water, salt, bay leaf, and black pepper. Bring to a gentle boil, skimming off any gray foam that gathers on top, then lower the heat. Cover loosely and simmer gently for about 90 minutes, until the beef is becoming fork-tender. Avoid a vigorous boil, which can make the broth cloudy and cause the meat to toughen. If the water level drops noticeably, add a little hot water.
  4. Check the beef. For whole-cut beef, the USDA FSIS safe minimum is 145°F (63°C) with a 3-minute rest; use a food thermometer to check a large piece, then let it rest for 3 minutes before shredding or cutting it smaller. The long simmer should make chuck tender beyond that minimum. Lift out the beef, remove the bay leaf, and cut or pull the meat into bite-size pieces. Leave the broth in the pot.
  5. Cook the beet mixture. While the beef rests, heat a skillet over medium heat. Add the onion and carrots and cook for 4 to 5 minutes, stirring, until softened. Stir in the grated beets, tomato paste, vinegar, and optional sugar. Cook for another 5 to 7 minutes, stirring regularly. The beets should soften slightly but do not need to become completely tender. Vinegar helps preserve their vivid color and gives the soup its characteristic sweet-sour balance.
  6. Simmer the potatoes and cabbage. Bring the broth back to a gentle simmer. Add the drained potatoes and cabbage and cook for about 10 minutes, until the potatoes are nearly tender and the cabbage has softened. Keep the heat low enough that the soup bubbles steadily without boiling hard.
  7. Finish the soup. Stir in the beet mixture and the cut-up beef. Simmer for another 15 minutes, or until the potatoes are tender and the flavors have come together. Stir in the garlic and half of the dill during the final 2 minutes. Taste the broth and adjust with more salt, pepper, or a small splash of vinegar. If it tastes too sharp, add a pinch of sugar; if it tastes flat, a little more salt or vinegar may help.
  8. Rest and serve. Turn off the heat and let the borscht stand for 5 minutes before ladling it into bowls. Top each portion with sour cream, the remaining dill, and parsley if using. The soup is ready to eat immediately, though its flavor often becomes more rounded after a night in the refrigerator.

Tips

  • Choose beets that are firm and fresh. Medium beets are easy to peel and grate and give the soup a clear beet flavor without overwhelming the other vegetables. Grate them with a box grater or use the grating disk of a food processor. Wear an apron or rinse your hands and board promptly, since beet juice can stain.
  • Keep the broth at a gentle simmer. A rolling boil can break up the beef and vegetables, while steady low bubbles give the chuck time to soften. If you see foam at the beginning, skim it away for a cleaner-tasting broth. Do not worry if the broth is not perfectly clear; the vegetables will make it hearty.
  • Adjust acidity at the end. Vinegar brightens the earthy beets, but beets differ in sweetness and vinegar brands vary in sharpness. Start with the listed tablespoon, then taste after the soup simmers. Add vinegar a teaspoon at a time rather than pouring in extra all at once.
  • Use a practical beet substitute when needed. Fresh beets are traditional in this style, but cooked vacuum-packed beets can work in a pinch. Drain and grate them, add them with the beef near the end, and simmer just long enough to heat through; they will have a softer texture and usually a less concentrated flavor. Avoid pickled beets, which can make the soup overly sweet and sour.

Serving Suggestions

Serve borscht hot in wide bowls with a spoonful of sour cream and plenty of chopped dill. The cool cream softens the soup’s tang, while fresh dill adds a fragrant finish. Rye bread, dark bread, or another sturdy loaf is useful for dipping into the broth. For a fuller meal, serve the soup with boiled potatoes, a simple cucumber salad, or small savory dumplings on the side.

Put sour cream and extra herbs on the table so everyone can adjust their bowl. Some people like a small squeeze of lemon or an additional splash of vinegar, while others prefer a milder finish. If serving the soup as part of a larger meal, modest portions work well because beef, potatoes, and cabbage make it substantial.

Variations

Make it without beef: Omit the meat and begin by sautéing the onion and carrots in the soup pot. Add water or vegetable broth, then simmer the potatoes, cabbage, and beet mixture as directed. Use a good vegetable broth for a more savory base; the result is lighter and has no beef-broth flavor. For a traditional meat-free variation, beans are also a common addition in some households. Add 1½ cups (about 250 g) cooked white beans with the beet mixture.

Use pork instead: Pork shoulder can replace the beef in the same weight, cut into cubes. Simmer until tender and check the thickest piece with a thermometer; whole cuts of pork must reach the USDA FSIS safe minimum of 145°F (63°C) with a 3-minute rest. The broth will taste a little sweeter and richer.

Make a quicker vegetable version: Use 4 cups (950 ml) prepared low-sodium beef or vegetable broth plus 4 cups (950 ml) water, and skip the long beef simmer. Add the potatoes and cabbage to the pot and cook until tender, then stir in the sautéed beet mixture. This takes less time but will not have the same depth as broth made by simmering beef.

Change the greens or garnish: A small amount of chopped beet greens can replace some of the cabbage, though the flavor will be earthier and the leaves cook faster. Add tender greens during the final 5 minutes. If fresh dill is unavailable, use 1 tbsp (about 2 g) dried dill in the pot; dried dill is more concentrated and lacks the lively finish of fresh, so fresh herbs are best for garnish.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking. Transfer the soup to shallow, covered containers so it cools promptly, and keep it refrigerated for 3 to 4 days. The beet color may deepen and the potatoes may soften as it sits, but the soup remains suitable for reheating during that period if it has been handled and chilled properly.

For longer storage, freeze cooled borscht in airtight, freezer-safe containers for up to 3 months. Leave a little room at the top for expansion. Thaw it overnight in the refrigerator for the most even reheating, or warm it from frozen over low heat with a splash of water, stirring as it loosens. Freeze without sour cream garnish; add fresh sour cream and dill when serving.

Reheat only the amount you plan to eat in a saucepan over medium-low heat, stirring occasionally until steaming throughout. Leftovers should reach 165°F (74°C), checked with a food thermometer. If reheating in a microwave, cover the bowl loosely, stir partway through, and check the temperature in more than one spot. Add a little water if the broth has thickened in storage.

Frequently Asked Questions

Can I make Ukrainian borscht ahead?
Yes. Make the soup a day ahead, cool it promptly, and refrigerate it in a covered container. The flavors meld as it rests, and you can reheat only what you need. Add sour cream and fresh dill at the table rather than stirring them into the whole pot, so the garnish stays fresh and the soup reheats evenly.

Why did my borscht lose its bright red color?
Beets can turn a deeper, browner red if they cook for a long time at a hard boil or if the soup has little acidity. A gentle simmer and the vinegar in this recipe help retain a vivid color. If the finished soup tastes dull, stir in a teaspoon of vinegar, taste, and repeat only if needed.

Can I use pre-cooked beets?
Yes, although raw beets give this recipe its most direct beet flavor and hold their texture better. Grate cooked, unseasoned beets and add them near the end with the beef, then simmer for about 5 minutes to warm them through. Since cooked beets are already soft, adding them earlier can make them break down into the broth.

What can I use instead of sour cream?
Plain unsweetened yogurt can be spooned on top, but it is thinner and more tangy than sour cream. For a dairy-free bowl, leave off the cream or use an unsweetened plant-based alternative. The soup is still flavorful without a creamy topping; add extra dill or a small splash of vinegar instead.

How do I keep the potatoes from becoming mushy?
Cut them into even pieces and add them after the beef has simmered, rather than cooking them in the pot for the full broth-making time. Start checking after about 10 minutes; they should be tender when pierced but still hold their shape. If making the soup ahead, avoid overcooking them because they soften further as the soup is reheated.

Is Ukrainian borscht always made with meat?
No. Recipes differ by region, season, and household, and meat-free versions are well established alongside beef or pork versions. Beans, mushrooms, or a flavorful vegetable broth can make a meatless pot satisfying. This recipe uses beef for a rich broth, but the vegetable version above is a straightforward alternative.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).