Ukrainian borscht is a beet-based soup with cabbage, potatoes, carrots, and a tangy tomato-and-vinegar broth, usually finished with dill and sour cream. This approachable meat-free version cooks in one pot, uses easy-to-find ingredients, and reflects the many regional and family variations of the dish.
Ingredients
- 2 tablespoons (30 ml) sunflower oil or neutral vegetable oil
- 1 medium yellow onion, about 1 cup (150 g), finely diced
- 2 medium carrots, about 2 cups (180 g), peeled and coarsely grated
- 2 medium raw beets, about 2½ cups (350 g), peeled and coarsely grated
- 3 garlic cloves, about 1 tablespoon (9 g), minced
- 1 tablespoon (16 g) tomato paste
- 1 tablespoon (15 ml) red wine vinegar or apple cider vinegar
- 8 cups (1.9 L) vegetable broth, divided into 1 cup (240 ml) and 7 cups (1.66 L)
- 1½ pounds (680 g) waxy or all-purpose potatoes, peeled if desired and cut into ½-inch (1.3 cm) cubes
- 4 cups (280 g) thinly shredded green cabbage
- 1 can kidney beans, 15 ounces (425 g), drained and rinsed; about 1½ cups (255 g) beans
- 1 teaspoon (6 g) fine salt, plus more to taste
- ½ teaspoon (1 g) black pepper
- 2 bay leaves
- 2 tablespoons (6 g) finely chopped fresh dill, plus more to serve
- 1 tablespoon (15 ml) lemon juice, optional, for adjusting the finish
- Sour cream, for serving
Instructions
- Prepare the vegetables. Dice the onion, grate the carrots and peeled beets, mince the garlic, cube the potatoes, and shred the cabbage. Drain and rinse the beans. Keeping the vegetables in similarly sized pieces helps them cook evenly; grated beets soften much faster than beet chunks. This preparation takes about 25 minutes, depending on your knife and grater.
- Soften the onion and carrot. Set a large, heavy soup pot over medium heat and add the oil. When it shimmers, add the onion and carrots. Cook for 8 minutes, stirring every minute or two, until the onion is translucent and the carrots have softened. Lower the heat if the onion begins to brown; this soup benefits from a gentle, sweet vegetable base rather than browned bits.
- Cook the beets. Stir in the grated beets, garlic, tomato paste, and vinegar. Pour in 1 cup (240 ml) of the vegetable broth and mix well, scraping the bottom of the pot. Cover and cook for 12 minutes over medium-low heat, stirring once or twice. The beet mixture should become tender and glossy. If it sticks before softening, add a splash of water and reduce the heat.
- Simmer the potatoes. Add the remaining 7 cups (1.66 L) of broth, the potatoes, salt, pepper, and bay leaves. Bring the soup just to a boil, then reduce the heat so it simmers steadily. Cook uncovered for 12 minutes, stirring occasionally. A small, steady bubble is preferable to a hard boil, which can break up the potato edges and make the broth cloudy.
- Add the cabbage and beans. Stir in the shredded cabbage and drained beans. Simmer for 13 minutes, or until the potatoes are tender when pierced with a fork and the cabbage is soft but not completely collapsed. Taste a piece of potato as well as the broth before deciding whether it needs more salt; the beans and broth may already contribute seasoning.
- Finish and serve. Remove and discard the bay leaves. Stir in the chopped dill and taste the soup. Add the optional lemon juice if you want a brighter, more pronounced tang, or add a little more vinegar instead. Ladle into bowls and offer sour cream and extra dill at the table. The total cooking time is about 45 minutes.
Tips
- Protect your hands and work surface from beet stains. Use a large cutting board, grate the beets directly into a bowl, and rinse the grater promptly. Disposable gloves are useful if you would rather not have beet-colored fingertips. A box grater gives the beets a tender texture; a food processor with a grating disc is convenient for a larger batch.
- Choose a broth you like on its own. Vegetable broths vary in saltiness. If yours is salted, begin with less than the listed teaspoon, then adjust near the end. For a richer, more traditional-tasting variation, use beef or chicken broth, but check its seasoning before adding extra salt.
- Keep the acid in the recipe. Vinegar helps balance the earthiness of the beets and gives the soup its characteristic bright edge. Apple cider vinegar works well if red wine vinegar is unavailable. Add lemon juice only after tasting; too much acid can make the broth sharp instead of lively.
- Cook the vegetables gently. Keep the soup at a simmer after adding the broth. A rolling boil can cause potatoes to crumble and cabbage to lose its texture. If you prefer firmer cabbage, add it during the final 8 to 10 minutes rather than cooking it for the full 13.
Serving Suggestions
Serve borscht hot in deep bowls with a spoonful of sour cream, a pinch of fresh dill, and a slice of sturdy rye or sourdough bread. The bread is useful for catching the last of the broth and makes the soup a more substantial meal. For a larger table, set out chopped dill, sour cream, black pepper, and lemon wedges separately so each person can adjust their bowl.
This recipe is filling enough to serve as a main course, especially with the beans included. It also works as a first course before roasted vegetables, dumplings, or a simple grain dish. If serving it as part of a larger meal, use smaller portions and keep the garnish light so the other dishes have room to shine. Offer the sour cream on the side rather than stirring it into the pot; that keeps the broth vivid and lets guests choose how creamy they want each serving.
Variations
There is no single household version of Ukrainian borscht. Some cooks include meat, beans, or extra vegetables; others leave them out. For a meat-based soup, replace the vegetable broth with beef or chicken broth, or add cooked, shredded meat when you add the cabbage and beans. If starting with raw meat, cook it separately or make sure it reaches the USDA FSIS safe minimum internal temperature for its type before serving; this recipe avoids that extra step by using cooked beans.
For a more substantial vegetarian bowl, add another drained can of beans or serve with cooked white beans on the side. If you do not have fresh cabbage, use about 3 cups (450 g) of drained sauerkraut in its place, rinsing it first if it is very salty. Sauerkraut makes the soup tangier and softer, so reduce or skip the vinegar until you taste the finished broth. Fresh dill is a classic finishing herb, but parsley can substitute; it gives a milder, less distinctive herbal flavor. Sunflower oil is a familiar choice, while canola or another neutral oil works without noticeably changing the soup.
Storage and Reheating
Cool leftovers promptly and refrigerate them within 2 hours of cooking, preferably in shallow, covered containers. The soup keeps for 3 to 4 days in the refrigerator. The potatoes may absorb some broth as the soup sits, so stir in a little water or vegetable broth when reheating if it has thickened. Warm only the amount you plan to eat in a saucepan over medium heat, stirring occasionally until steaming throughout; leftovers should be reheated to 165°F (74°C). If using a microwave, cover the bowl loosely, stir partway through, and check the center for even heating.
Borscht can also be frozen for about 2 to 3 months for best quality. Leave some space in a freezer-safe container for expansion, and thaw it overnight in the refrigerator before reheating. Potatoes can become softer after freezing, but the soup remains suitable to eat once reheated thoroughly. Add fresh dill and sour cream after reheating rather than freezing them in the soup, since they taste and look better as fresh garnishes.
Frequently Asked Questions
Can I make this borscht ahead?
Yes. Make the soup up to 3 days ahead and refrigerate it promptly in a covered container. Reheat it gently on the stovetop, adding broth or water if the potatoes have absorbed liquid. Taste again before serving because the seasoning and acidity may seem different after chilling; add dill and sour cream just before eating.
Do I have to peel the beets and potatoes?
Peel the beets for the smoothest texture and cleanest flavor, especially if their skins are rough. You can leave thin-skinned potatoes unpeeled after scrubbing them well, though peeled potatoes give the soup a more uniform appearance. If using older potatoes with thick or damaged skins, peeling is the better choice.
What can I use instead of fresh beets?
Raw beets give this version its color and earthy flavor. Vacuum-packed cooked beets can work in a pinch: grate them and add them with the cabbage rather than braising them for 12 minutes, since they are already tender. Avoid pickled beets, which can make the broth overly sweet and acidic. The finished soup will be less deeply flavored than one made with raw beets.
Why does my borscht taste too earthy or too sour?
If it tastes too earthy, first check the salt, then add a little lemon juice or vinegar in small increments to brighten the broth. A spoonful of sour cream in the bowl also softens the beet flavor. If it is too sour, add more broth or a little water and taste again; do not try to fix it with a large amount of sugar, which can make the soup taste unbalanced.
Can I make this recipe without beans?
Yes. Omit the beans and keep the rest of the method the same. The soup will be lighter and less filling, so you can serve it with bread or add another potato if you want a heartier bowl. If you use a different canned bean, drain and rinse it first, then add it with the cabbage as directed.
Can I use red cabbage instead of green cabbage?
You can, but red cabbage may deepen or shift the soup’s color and can taste slightly stronger. Use the same quantity, shred it thinly, and check its tenderness after about 10 minutes. Green cabbage gives a more familiar, mild result, while red cabbage is a practical swap when that is what you have.
Related
- Ukrainian Lazy Cabbage Rolls with Rice and Ground Beef
- Ukrainian Cabbage Rolls (Holubtsi) with Tomato Sauce
- Ukrainian Food Recipes: Beet Borscht
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).