Hot Ukrainian Borscht Recipe (With Beets, Beef, Pork, and More)

Photograph: Vicky Wasik

Why It 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.

Ukrainian borscht—hot, meaty, and beet-red—is a classic hearty wintertime soup, loaded with tender chunks of beef and pork, plus an amazing array of vegetables, from beets to cabbage and celery root. It's a filling, deeply satisfying bowl of soup, with a sweet-sour finish. This recipe makes a lot, but don't worry: It freezes well, and you'll want it all.

Recipe Facts



Active: 90 mins
Total: 5 hrs 15 mins
Serves: 10 to 12 servings
Makes: 1 gallon (3.75L)

Rate & Comment


For the Beef Broth:

  • 2 1/4 pounds (1kg) bone-in beef short ribs (see notes)

  • 3/4 pound (340g) fresh pork belly (see notes)

  • 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 (120mlsour cream

  • 1 teaspoon (5g) ground toasted caraway seeds (optional)

  • Minced fresh dill, for garnish


  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

Special equipment

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.

This Recipe Appears In

Nutrition Facts (per serving)
499 Calories
29g Fat
28g Carbs
32g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 10 to 12
Amount per serving
Calories 499
% Daily Value*
Total Fat 29g 38%
Saturated Fat 11g 57%
Cholesterol 112mg 37%
Sodium 500mg 22%
Total Carbohydrate 28g 10%
Dietary Fiber 5g 19%
Total Sugars 12g
Protein 32g
Vitamin C 34mg 168%
Calcium 97mg 7%
Iron 3mg 19%
Potassium 1160mg 25%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)