Ukrainian borscht with pork is a beet soup with cabbage and potatoes. My version uses bone-in pork shoulder or pork ribs to create a rich, long-simmered stock which imparts deep flavor to the vegetables. It's hearty, comforting, and delicious!

Borscht, the most iconic of all Ukrainian recipes, is surprisingly easy to make, with very little active prep. The pork needs to tenderize, so the stock takes a bit of time to simmer (as all good soups made with love do), but it's passive so you can go do whatever you want while it bubbles away on the stove.
My great aunt made vegetarian borscht for family celebrations, but I add pork to mine for a richer broth and to make it more filling, and it's not an overly meaty soup by any means. The vegetables still shine, and like cold borscht, the beets are the star of the show here, giving it sweetness and that distinctive red color.
I love sharing the recipes that I grew up eating in my Ukrainian family. Holubtsi (Ukrainian Cabbage Rolls) and Varenyky (Ukrainian dumplings) were my childhood favorites at grandma's house!
Jump to:
Borscht ingredients
There are as many versions of this classic soup as there are Ukrainian grandmothers. Ingredients can vary by region and season, but you'll generally always find beets, cabbage, and potatoes.
- Beets: Borscht's main ingredient is red beets! The beets give the soup a gorgeous color and an earthy, sweet flavor. We'll use them to make the broth and add them into the soup as well.
- Bone-in pork shoulder or pork ribs: I usually make mine with bone-in pork shoulder. Choosing pork shoulder when making borscht stock means you'll end up with more meat in the soup since it only has one bone in it. This makes it a bit more filling and I like that it stretches it to more servings, I also use it to make pork stew. The most important thing is that the meat must have a bone in it, because the bone adds an immense amount of flavor and thickens the soup slightly.
- Cabbage: What would borscht be without cabbage? It's hearty and takes on the color released by the beets. Choose a green cabbage that is firm and heavy for its size.
- Potatoes: I like Yukon Gold potatoes for this soup recipe because they hold their shape. (If you have some russet potatoes, save them to make my Ukrainian potato pancakes!)
- Onions, carrots, and tomato paste: These will be some of the aromatics in the stock, they'll be cooked down into a sofrito using technique common in Ukrainian cooking called zazharka or smazhennya.
- Sunflower oil: Sunflowers are the symbol of Ukraine, and using sunflower oil imparts authentic flavor. You can find it at Trader Joe's and online. If you must substitute, try a neutral oil like grapeseed or canola.
- Kidney beans: Beans are an optional ingredient. You can substitute other kinds of canned beans in the soup like cannelini beans or lima beans.
- Apple cider vinegar: Vinegar in does two things—it helps the beets hold their color, and it brightens up the largely earthy flavors of the soup. You can adjust the amount to your taste.
- Bay leaves and kosher salt: To season the stock.
- Sour cream and fresh dill: For serving.
How to make borscht soup with pork
Step 1: Make the borscht soup stock
Peel the onion, but do not chop. Scrub ยฝ pound of the beets and roughly chop. Do not peel them.
Add the beef or pork, onion, chopped beets, one large or two small bay leaves, 1 tablespoon of apple cider vinegar and 1 tablespoon of kosher salt to a large soup pot or Dutch oven.
Cover with 10 cups of cold water and bring to a boil. Reduce to a simmer, cover, and cook for about 2 hours or until the meat is falling off the bone. Check it occasionally and skim off any scum that rises to the top.
Step 2: Cook the beets
While the stock simmers, cook the remaining beets. Scrub them clean, but don't peel or trim them.
Place the beets in a large sauce pan with enough water to cover. Bring to a boil and cook until they are easily pierced with a knife, about 40 minutes. Drain and set aside to cool.
Step 3: Sweat the carrots and onions for the "zazharka"
Meanwhile, dice the onions finely, and grate the carrots on the large holes of a box grater.
Add 2 tablespoons of sunflower oil to a skillet over medium-high heat. When the oil starts to shimmer, add the carrots and onions and cook until they are soft and translucent to make the zazharka—the Ukrainian version of mirepoix.
Add the tomato paste to the skillet and stir for about 2 minutes until it is fully incorporated and fragrant. Set the carrot and onion mixture aside while the stock and beets continue to cook.
Step 4: Peel and grate the beets
Once the beets are cool enough to handle, peel them with a paring knife, then grate them on the large holes of a box grater and set aside.
Want to save this recipe?
You'll join hundreds of readers on my email list!
Step 5: Strain the borscht stock
After about 2 hours, the pork should be falling off the bone, if not cook 30 minutes longer and check again. Once the meat is tender, remove it from the pot and set aside.
Strain by pouring the stock into a colander over a sauce pan that is large enough to hold all the liquid.
Return the strained stock to the Dutch oven or soup pot and bring back to a simmer. Discard the onion and beets left behind in the colander.
Step 6: Add the cabbage and potatoes to the soup
Use a good chef's knife and shred the cabbage into long, thin slices. Peel the potatoes and cut into a ยฝ-inch dice.
Add the potatoes, cabbage, and carrot/onion mixture to the broth and simmer for 10-15 minutes.
Step 7: Add beets, pork and beans
While the potatoes and cabbage are simmering, shred the meat and discard the bone(s). Add the grated beets, pork, kidney beans, and the remaining cider vinegar and simmer for another 10 minutes, until the potatoes are fork tender.
Taste and add more salt or vinegar if desired. Remove from heat and let stand for a few minutes to allow the gorgeous pink color to deepen.
Expert tips
- Vinegar is important: The cider vinegar helps the beets and the broth hold their beautiful pink color. You can add more or a little less vinegar according to your taste. If you don't have apple cider vinegar, plain white vinegar will also work.
- The color of borscht will deepen the longer the soup rests: Once you take it off the heat, let it sit for 5-10 minutes, then stir. It will be even more pink the next day!
- I like to cook the beets before grating them: This gives the borscht a sweeter flavor and a deeper color. If you prefer a crisper texture, you can cut peeled raw beets into matchsticks and add them at the same time as the potatoes.
- Try adding more vegetables: If you'd like to add more veggies and sweetness, throw in some diced red bell peppers!
- Make ahead and reheating: Make up to 2 days ahead. To reheat, place over medium-low heat in a covered saucepan until warmed through. Don't bring it to a boil again, or you risk losing some of the color.
How to serve borscht
Serve as the first course of a complete Ukrainian or Eastern European meal, or on its own as a hearty main course, topped with sour cream and fresh dill. (If you're like me, that would be LOTS of fresh dill.) Try the delicious Ukrainian garlic bread called Pampushky on the side, to soak up all that gorgeous broth.
FAQ
Yes! Borscht is one of my favorite soups to freeze. Chill it in the refrigerator overnight in an airtight freezer-proof container, then freeze for up to two months.
No, do not use canned beets in borscht. You can substitute the vacuum packed cooked beets you find in the produce department, but they are much more expensive. Boiling, peeling, and grating the beets is easy and quick, and it's worth the effort!
More soup recipes
Debra's Details: Easy to make, perfectly balanced, authentic Ukrainian flavor!
- Easy prep, then just simmer on the stovetop.
- Using beets in both the stock and in the soup means you get the deepest color and the best beet flavor!
- Cider vinegar mimics the tang of traditional Ukrainian fermented beet or tomato kvas, adding brightness, and it balances the sweetness.
- Thin shreds of cabbage add great texture.
- Make ahead and freeze it for a hearty winter meal at your fingertips.
If you enjoy this recipe, please leave me a 5-star rating ⭐️⭐️⭐️⭐️⭐️ in the recipe card! It really helps others find my content and helps my business grow! Sign up for my newsletter for recipes delivered to your inbox and follow me on Instagram and Pinterest! Thank you!
Recipe
Ukrainian Borscht Soup with Pork
Equipment
- 6 quart Dutch oven or large stock pot
- silicone spatula or wooden spoon
Ingredients
- 2 pounds bone-in pork shoulder (or pork ribs)
- 1½ pounds red beets
- 10 cups cold water
- 1 bay leaf
- 2 onions (divided)
- 1 carrot
- 2 tablespoons sunflower oil (or grapeseed oil, or canola oil)
- 1 tablespoon tomato paste
- 1 large potato
- 12-16 ounces green cabbage
- 1 15-ounce can kidney beans (drained and rinsed)
- 6 tablespoons apple cider vinegar (divided, see note)
- 1 tablespoon kosher salt (plus more to taste)
- sour cream and fresh dill for serving
Instructions
- Peel one onion, but do not chop. Scrub ½ pound of the beets, trim off any root or stem, and roughly chop. Do not peel them.
- Add the pork, onion, chopped beets, the bay leaf, 1 tablespoon of apple cider vinegar and 1 tablespoon of kosher salt to a large soup pot or Dutch oven.
- Add 10 cups of cold water and bring to a boil. Reduce to a simmer, cover, and cook for about 2 hours or until the meat is falling off the bone. Check it occasionally and skim off any scum that rises to the top.
- While the stock simmers, cook the remaining beets. Scrub them clean. Don't peel or trim them. Place the beets in a large sauce pan with enough water to cover them. Bring to a boil and cook until they are easily pierced with a knife, about 40 minutes. Drain and set aside to cool.
- Meanwhile, dice the onions finely, and grate the carrots on the large holes of a box grater.
- Add 2 tablespoons of sunflower oil to a skillet over medium-high heat. When the oil starts to shimmer, add the carrots and onions and cook until they are soft and translucent.
- Add the tomato paste to the skillet and stir for about 2 minutes until it is fully incorporated and fragrant. Season with a pinch of salt. Set the carrot and onion mixture aside while the stock and beets continue to cook.
- Once the beets are cool enough to handle, peel them with a paring knife, then grate them on the large holes of a box grater and set aside.
- After about 2 hours, the pork should be falling off the bone, if not cook 30 minutes longer and check again. Once the meat is tender, remove it from the pot and set aside.
- Strain the stock by pouring it into a colander over a sauce pan that is large enough to hold all the liquid. Return the strained stock to the pot and bring back to a simmer. Discard the onion and beets left behind in the colander.
- Slice the cabbage into long, thin slices. Peel the potatoes and cut into a ½-inch dice.
- Add the potatoes, cabbage and carrot/onion mixture to the broth and simmer for 10-15 minutes.
- While the potatoes and cabbage are simmering, shred the meat and discard the bone(s).
- Add the grated beets, pork, rinsed kidney beans, and the remaining 5 tablespoons of cider vinegar and simmer for another 10 minutes, until the potatoes are fork tender.
- Taste and add more salt or vinegar if desired. Remove from heat and let stand for a few minutes to allow the gorgeous pink color to deepen.
- Serve topped with a dollop of sour cream and some fresh dill.
Want to save this recipe?
You'll join hundreds of readers on my email list!
Notes
- Vinegar is important: The cider vinegar helps the beets and the broth hold their beautiful pink color. You can add more or a little less vinegar according to your taste. If you don't have apple cider vinegar, plain white vinegar will also work.
- The color of borscht will deepen the longer the soup rests: Once you take it off the heat, let it sit for 5-10 minutes, then stir. It will be even more pink the next day!
- Cooking the beets adds a sweeter flavor and deeper color: If you prefer a crisper texture, cut peeled raw beets into matchsticks and add them at the same time as the potatoes.
- Make ahead and storage: Make up to 2 days ahead, store in an airtight container in the refrigerator. Leftovers will keep an additional 3 days.
- To reheat: Place over medium-low heat in a covered saucepan until warmed through. Don't bring it to a boil again, or you risk losing some of the color.
- To freeze: Place in an airtight freezer-safe container for up to two months.
- Recipe adapted from multiple sources including Mamushka by Olia Hercules and the Veselka Cookbook.
Nutrition
Nutrition information is automatically calculated as an estimate. Calorie accuracy is not guaranteed.
Leave a Reply