Why This Recipe Works
- Browning the meat and sautéing the aromatics before making the broth leads to deeper, richer flavor.
- Adding raw beets to the soup instead of roasting them first, as in some recipes, creates a more intense beet-y flavor and color.
- Ground toasted caraway seeds elevate the sour cream garnish from ordinary to interesting.
Some dishes are extravaganzas of meat, and some are unbridled celebrations of vegetables. And then there’s borscht, which is decisively both. That makes it one of the best winter meals in my home, where my wife, Kate, pretty much wants only vegetables, while I often crave at least a little meat (okay, sometimes a lot). Borscht is so chock-full of an exciting array of both that neither of us ever feels deprived.
The borscht I’m talking about here, to be clear, is the hot, sweet-sour Ukrainian style, which, according to Anya von Bremzen in her excellent Russian cookbook, Please to the Table, is so popular in Ukraine’s neighboring regions and around the world that it’s often misattributed to Russia.
Regardless of its origins, defining exactly what’s in the soup is tricky. While countless types of borscht can be found throughout Eastern Europe (and not all of them are red), this one is famous for that deep burgundy color—thanks mostly to beets, but often some tomato as well. Beyond that, cabbage, potatoes, onion, celery root (a.k.a. celeriac), and carrots are common, but plenty of other vegetables and fruits, from apples to bell peppers and beans, can find their way into the pot.
Selecting the Right Cuts of Stewing Meat
As for the meats, your options are equally varied. My recipe calls for beef short ribs, fresh pork belly, beef marrow bones, and ham hocks (plus some optional kielbasa), but you could use all sorts of long-cooking cuts, like brisket, pork ribs, beef chuck, and shanks. They’re all stewing meats that are rich in collagen, a tough connective tissue that breaks down into silky gelatin with heat and time, creating a rich, flavorful broth.
For a Deeper Flavor, Brown the Meat and Aromatics Before Simmering
Making borscht starts, then, with simmering those meats—most of which I brown first for a deeper flavor—to tenderize them and make that broth base for the soup. To enhance the flavor even more, it helps to add aromatics to the pot as well, like onion, celery, and carrot. A mix of herbs, including dill, parsley, and bay leaf, contributes more aromatic depth.
Several hours later, when the meat is tender and the broth is ready, I strain it, reserving the meat and marrow bones and throwing out all the aromatics—they’ll be cooked to death and flavorless by this time anyway. At this point, you can refrigerate the broth and meats overnight and finish the borscht the next day, or you can continue straight away.
To finish the soup, I sauté a new batch of diced aromatics—onion, celery, carrots, and garlic—in fat until they’re tender. You could use vegetable oil here, but you should end up with a generous amount of richly flavored rendered beef and pork fat on the surface of the broth. I skim that off and use some of it for sautéing, then add the broth back to the pot and bring it to a simmer.
I dice the meats, removing and discarding any bones, and add them to the pot. Make sure not to waste the beef marrow bones, either: Push the marrow out of each one, chop it up, and add it to the soup. That’s flavor right there.
Dicing the Vegetables
Next, I load the soup up with even more vegetables, including celery root, parsnips, cabbage, tomatoes, and beets, most of which I cut into dice. I suspect some people will wonder why I opt for dicing, when borscht is often made with shredded or julienned vegetables. My answer is…I like it that way. I find the soup more elegant when much of it is uniformly diced instead of shredded to bits. If you prefer it otherwise, you can run the vegetables through the shredding disk of a food processor.
Raw Beets vs Roasted Beets
A lot of recipes have you roast the beets before adding them, which I did early on in my testing; they take a while to cook, so it seemed like a good time-saver to roast them while the broth is simmering. But then a friend asked me why I didn’t just cut them up raw and add them to the pot with everything else, and I realized that not only did I not have a good answer, but it seemed like a worthy variable to test.
So I made a subsequent batch in which I peeled the raw beets, cut them up, and added them to the pot with everything else, and I was quickly won over by the results. First, when diced, they cook through as rapidly as all the other vegetables, so the time saved through roasting first wasn’t relevant—in retrospect, it’s extremely obvious that small cubes of beets will cook much faster than large whole ones. More importantly, the final soup made with un-roasted beets tasted, well, beetier, and had a much deeper purple color—clearly, you lose valuable beet juices and flavor with that initial roasting step.
I love beets and wanted a very beet-forward soup, so using raw beets immediately became my preferred method. If you’re not the biggest fan of beets, though, this may be a reason to opt for roasting them first.
Next, I add diced red potatoes, along with some kielbasa—optional, but it adds a great smoky flavor—then cook it just until the potatoes are done. At this point, the borscht should be so tightly packed full of solid ingredients that you’ll be able to stand a spoon up in it.
Balancing the Sweet-Sour Flavor
The last step is to balance the final sweet-sour flavor of the soup. Many recipes call for adding a touch of sugar to play up the soup’s sweetness, leading to a more intense sweet-sour effect later. I don’t do that, though, since I think the vegetables in the soup contribute all the sweetness I want on their own.
For the sourness, I experimented with fermenting my own beets, with the hope that I could add the resulting tart liquid to the pot. That ended up a failure, which I poured down the drain, so I turned to red wine vinegar instead. (This is probably for the best, since I’m guessing most people don’t want to have to start their borscht two months ahead of time just to get one ingredient ready.)
How much vinegar you add depends on both how sweet your soup is, with more sweetness requiring more sourness to balance it out, and also on personal preference—do you want just a lightly tart borscht, or one that has a real jolt of acid running through it? I leave it up to you.
No bowl of borscht is complete without some minced fresh dill and a big dollop of sour cream, which I gussy up with ground toasted caraway seeds, a flavor that plays so well with these ingredients.
At this point, if this soup doesn’t have something for everyone, I don’t know what does.
Hot Ukrainian Borscht Recipe (With Beets, Beef, Pork, and More)
An omnivore’s dream and a classic hearty wintertime soup.
For the Beef Broth:
2 1/4 pounds (1kg) bone-in beef short ribs (see note)
3/4 pound (340g) fresh pork belly (see note)
Kosher salt and freshly ground black pepper
2 tablespoons (30ml) vegetable oil
1 medium onion, roughly diced (8 ounces; 225g)
2 medium carrots, roughly diced (8 ounces; 225g)
2 celery ribs, roughly diced (4 ounces; 115g)
4 medium cloves garlic, crushed
1 tablespoon (15ml) tomato paste
1 1/4 pounds (575g) beef marrow bones
1 smoked ham hock (about 3/4 pound; 340g)
2 sprigs fresh dill
2 sprigs flat-leaf parsley
1 bay leaf
For the Borscht:
1 large onion, cut into small dice (12 ounces; 340g)
1 medium carrot, cut into small dice (4 ounces; 115g)
1 celery rib, cut into small dice (2 ounces; 55g)
4 medium cloves garlic, minced
1 small celery root (celeriac), peeled and cut into small dice (9 ounces; 255g)
1 medium parsnip, peeled and cut into small dice (6 ounces; 170g)
2 pounds red beets (900g; about 5 medium beets), peeled with a sharp vegetable peeler and cut into small dice
1/2 (12-ounce; 340g) head green or white cabbage, quartered, cored, and shredded
1 (28-ounce; 784g) can peeled whole tomatoes, drained and crushed by hand
4 medium red potatoes (1 pound; 450g), diced
1/4 pound kielbasa (4 ounces; 115g), diced (optional)
Red wine vinegar, to taste
1/2 cup (120ml) sour cream
1 teaspoon (5g) ground toasted caraway seeds (optional)
Minced fresh dill, for garnish
For the Beef Broth: Season short ribs and pork belly all over with salt and pepper. In a large, heavy-bottomed stockpot, heat oil over medium-high heat until shimmering. Working in batches to avoid crowding the pot, add beef and pork belly and cook, turning, until browned all over, about 5 minutes per side. Transfer meats to a rimmed baking sheet or platter and set aside. Add onion, carrot, celery, and garlic to pot and cook, stirring and scraping up any browned bits, until starting to brown, about 6 minutes.
Stir in tomato paste and cook for 2 minutes, lowering heat if necessary to prevent scorching. Add 4 quarts (3.75L) water, short ribs, pork belly, marrow bones, ham hock, dill, parsley, and bay leaf and bring to a simmer over medium-high heat. Lower heat to maintain a gentle simmer and cook until meats are tender, about 3 hours.
Strain meat broth, reserving all meats and bones; discard vegetables. You should have about 3 quarts (2.8L) broth. If you have less, add enough water to bring it up to 3 quarts. You can refrigerate broth and meats separately for up to 3 days before continuing with the recipe, or continue immediately.
For the Borscht: Pick bones from short ribs and ham hocks and push marrow from bones. Discard bones. Cut up all broth meats and marrow into small dice and set aside. (If marrow is hot, it won’t dice neatly; this is fine.) Skim rendered fat from surface of broth (if broth is cold, the fat will be a solid cap on top); reserve 1/4 cup (60ml) and discard the rest.
In a large, heavy-bottomed stockpot, heat the 1/4 cup reserved fat from broth over medium-high heat until shimmering. Add onion, carrot, celery, and garlic and cook, stirring, until softened, about 5 minutes. Add 3 quarts (2.8L) meat broth and bring to a simmer.
Add diced meats to broth, along with celery root, parsnip, beets, cabbage, and tomatoes, and cook until vegetables are tender, about 20 minutes.
Add potatoes and kielbasa, if using, and cook until potatoes are just tender, about 15 minutes. Season with salt and pepper. Add vinegar until soup hits the perfect balance of sweet and sour to your taste.
Stir toasted caraway, if using, into sour cream and season lightly with salt. Ladle hot borscht into bowls and top with dollops of caraway sour cream and fresh dill. Serve right away. Remaining soup can be refrigerated for up to 5 days and frozen for up to 3 months.
Large, heavy-bottomed stockpot
Feel free to use an equivalent amount of different stewing meats, such as fatty beef brisket, beef chuck, pork ribs, or pork shoulder.
- Borsch, All Spiced Up
- Vegetarian Borscht
- Polish Potato, Kielbasa, and Cabbage Soup (Kapusniak)