Homemade Ukrainian borscht with pork ribs
12 servings
120 minutes
Homemade Ukrainian borscht with pork ribs is a dish with a deep history rooted in folk traditions. This thick, hearty soup infused with the aromas of fresh vegetables highlights the richness of Ukrainian cuisine. Pork ribs give the broth a rich meaty flavor, while the combination of beets, cabbage, and carrots creates a unique balance of sweetness and slight acidity. Onions and garlic add spiciness, while tomato paste enhances richness. Borscht is served with sour cream, cracklings, and pampushky, complementing it with soft, airy notes. It’s not just a dish — it’s comfort, traditions, and the warmth of home. Borscht is perfect for family dinners, bringing everyone together to enjoy its deep flavor and aroma.

1
An hour before the main cooking process, we put water in a pot filled to 2/3 on the fire. First, we add meat (it's better to cut the meat into portions right away), second, a small peeled onion, and third, a small peeled carrot. We salt it — one teaspoon of salt for 4 liters of water; it's better to under-salt than over-salt! While we prepare the sauté, the meat will start boiling and cooking; we cover it with a lid leaving a small gap to prevent boiling over.
- Pork ribs: 500 g
- Onion: 3 pieces
- Carrot: 3 pieces
- Salt: to taste
2
To simplify the cooking process, while the meat is on the fire waiting, I prepare all the other ingredients for the borscht. I peel: 2 large onions, 2 large carrots, 1 beet, 2 potatoes (I'm not a fan of potatoes in borscht, but if you like, you can peel more, just make sure to put them in cold water after peeling, otherwise they will darken), 1 sweet pepper, and 1 head of garlic (to quickly peel garlic - cut off the tail at the base of the head so that all the cloves have their ends cut, place in a container or pot with a tight lid and shake well - after 20-30 seconds of personal earthquake, the garlic usually comes off).
- Onion: 3 pieces
- Carrot: 3 pieces
- Beet: 250 g
- Potato: 2 pieces
- Red sweet pepper: 1 piece
- Garlic: 1 head
3
Place the pan on the heat and make 7 out of 9 possible sections (you got the idea), while it heats up, cut the bacon into thin elongated pieces about 2-2.5 mm thick; length doesn't matter. Once the bacon is cut, pour a little oil into the pan and while it heats up, finely chop the garlic (not to a paste but smaller than a clove). When the oil is hot enough to avoid splattering from the pan, remove it from heat and after 15 seconds add all the bacon you cut (not in your mouth!). Return it to heat and render the fat from the bacon.
- Salo: 200 g
- Sunflower oil: 30 ml
- Garlic: 1 head
4
While the fat is melting (don't forget to stir it), we chop the onion; I love onion, so I cut it into quarter rings, 1 mm thick, but you can cut it into squares if you prefer. Once you finish crying from the onion, the fat should have turned into cracklings, small wrinkled golden-brown croutons. We take them out of the pan, leaving as much melted fat as possible in it. We set them aside for later.
- Onion: 3 pieces
5
Reduce the heat to 6 out of 9 and add the garlic. It cooks quickly and starts to brown; don't forget to stir for a magical 30-40 seconds until ready. Now quickly add the previously chopped onion and mix.
- Garlic: 1 head
6
I am grating carrots and beets, someone says that a lot of juice is lost when grating, and that's bad, I don't worry much and grate, from experience I can say it doesn't affect much, except for the size of the vegetable pieces. So, we grated/cut the carrots and beets (all this time we don't forget to stir the onions in the pan).
- Carrot: 3 pieces
- Beet: 250 g
7
When the onion becomes transparent and starts to turn golden, we add carrots and mix. The meat should already be boiling; we skim the foam from the water in the pot. We cut the potatoes into small/large/giant pieces, as you prefer (the larger the pieces, the longer it takes to cook the potatoes; I prefer a golden mean), and add the potatoes to the pot with the meat.
- Carrot: 3 pieces
- Potato: 2 pieces
- Pork ribs: 500 g
8
Onion and carrot are frying for 3-5 minutes, don't forget to stir them, and the carrot starts to soften, now add the beetroot. Stir and season with a pinch of salt and pepper to taste. Turn on the kettle — we will need boiling water, let it heat up.
- Beet: 250 g
- Salt: to taste
- Ground black pepper: to taste
9
Cut the red pepper into thin elongated slices and after frying the beet-onion-carrot mixture for 5-7 minutes, add it to them and mix (if there's not enough oil/fat, add a little to prevent burning).
- Red sweet pepper: 1 piece
10
We peel the tomatoes by making cross cuts on both sides, not deep, but enough to catch the insides, about 1.5–2 mm. We pour boiling water over them and set aside for 3–4 minutes. In the blender, we add tomato paste (ketchup can be used, depending on preference; I always add garlic ketchup instead of half the tomato paste). We also add chopped greens (dill and parsley). We take the tomatoes out of the boiling water and peel them; if we can't remove all the skin, it's okay, we add them to the rest in the blender (remember to stir the sauté).
- Tomatoes: 3 pieces
- Tomato paste: 200 g
- Green: 1 bunch
11
Turn on the blender; everything should be blended into a uniform paste. While the process is ongoing, carefully remove the whole onion and carrot from the broth; we don't need them there, you can throw them away. When the magical tomato paste is ready, pour it over the sauté (if it's thick, add some broth from the pot and mix), cover with a lid and let it simmer for 8-10 minutes. Don't forget to stir; otherwise, it will stick to the pan.
- Onion: 3 pieces
- Carrot: 3 pieces
- Tomato paste: 200 g
- Salt: to taste
12
Important, while the frying is simmering, we chop the cabbage. Here too — everyone has their preference, I like it finely chopped, so there are no logs floating in the borscht, but tastes are not to be disputed. After chopping the cabbage, set it aside to wait its turn.
- White cabbage: 500 g
13
Check the potatoes in the broth; if they break apart easily when pierced with a fork — they are ready. If they resist the fork — they are raw; usually by this point they are half-cooked, which is what we need. Turn off the frying and carefully transfer it to the pot with all the liquid. Top with pre-cut cabbage, mix and set to 4 out of 9, covering with a lid. Cook the borscht for another 15-20 minutes.
- White cabbage: 500 g
- Tomato paste: 200 g
14
We turn off, remove from heat, and let it steep for about an hour. Serve with sour cream, lard, garlic rolls, and, for those who like, with cracklings.
- Salo: 200 g
- Salt: to taste









