A traditional Ukrainian beet soup built on oxtail and beef shoulder, slowly stewed in a cast-iron pot over the fire until the meat is meltingly tender. Baked and raw beetroot, apple cider vinegar and a finishing garlic oil give it a deep red color and a balanced sweet-sharp-salty flavor.
Brown the oxtail and beef shoulder over hot coals, or sear them hard in the pot, until deeply browned on all sides. That color is where a lot of the soup's flavor comes from, so don't rush it.
Wrap 1½ of the finishing beetroot in foil and set it over the embers, or roast at 200°C / 400°F, turning every 10 minutes until soft all the way through, about 45 minutes. Keep the remaining ½ raw for later, and cool the baked beetroot until you can grate it.
Set the pot over medium-high heat with the sunflower oil, then add the grated beetroot, carrot, cabbage, sliced onion and a pinch of salt. Fry until softened but still slightly raw, so they hold their texture in the finished soup.
Stir in the tomato paste and cook it for 1 to 2 minutes until it darkens slightly, then add the apple cider vinegar, sugar and the browned meat. Pour in enough water or beef stock to just cover everything, bring to a gentle simmer, cover, and cook low and slow until the meat is meltingly tender and pulls apart easily, about 4 hours. Top up with liquid if the level drops below the ingredients.
While the pot simmers, crush or grate the garlic into the 2 tablespoons of sunflower oil and set it aside. Chop the parsley, dill and spring onion and crack the black pepper, so everything is ready to finish the soup.
When the meat is tender, stir in the grated baked beetroot for earthy sweetness and a subtle smokiness, then stir in the reserved raw grated beetroot, which brings the color back to a deep reddish-purple.
Taste and balance with salt, apple cider vinegar and sugar until it's evenly sweet, sharp and salty. Ladle into bowls and finish each with a dollop of sour cream, a drizzle of garlic oil and a scatter of chopped herbs, spring onion and black pepper.
Notes
1. Meat choice — Oxtail and beef shoulder are tough, gelatin-rich cuts that need the full slow simmer to turn tender. Any beef stewing cut works. For a lighter soup, use about 700 g bone-in chicken thighs and cut the cooking time to around an hour.2. Vegetarian version — Leave out the meat, swap the water for the same 2.5 L of vegetable stock, and add a little more cabbage and carrot. It's ready in about an hour once the vegetables go in.3. Keeping the color — Beets fade with long cooking. The reserved raw grated beetroot stirred in at the end is what keeps the soup a deep red, so don't skip it.4. Balancing the flavor — Borscht should land between sweet, sharp and salty. Adjust the sugar, salt and apple cider vinegar right at the end, tasting as you go, since the beets mellow as they cook.5. Cooking method — No open fire needed. Cook it on the stovetop, or use an Instant Pot (about 45 minutes on high pressure) or a slow cooker (low for 6 to 8 hours), then finish with the beetroot as written.6. Make ahead — Like most soups and stews, borscht tastes better the next day once the flavors settle. It's a good make-ahead dish.7. Storage — Cool and store airtight in the fridge for up to 4 days, or freeze for up to 6 months. Reheat gently and bring to a boil before serving.8. Serving — Traditionally served hot with sour cream, garlic oil and fresh dill, alongside dark rye or sourdough bread. For the classic touch, add a few thin slices of salted pork fat on the bread.