Save Pin My grandmother kept a worn notebook filled with recipes written in faded blue ink, but the one she never wrote down was her borscht. I watched her make it countless times, the kitchen filling with that unmistakable earthy-sweet smell of beets as she worked, and somehow I absorbed it through osmosis. Years later, when I finally made my own pot, the color was right, the taste was close, but something felt like it was missing until I learned to let it rest after cooking—that quiet fifteen minutes where all the flavors finally found each other.
I made this for a dinner party in late October when the first real cold snap hit, and my friend Sarah asked for seconds before finishing her first bowl—she's never asked me for a recipe since, but she's asked for this soup at least six times. That moment when she closed her eyes after tasting it taught me that food made with intention doesn't need to be fancy to matter.
Ingredients
- Beef chuck or brisket: These tough cuts are actually the secret—they break down into tender strands and infuse the broth with rich, savory depth that you can't fake.
- Beets: The star that makes borscht unmistakably itself; grating them raw lets them release their sweetness faster than cubing would.
- Carrots: They balance the earthiness with subtle sweetness and keep the whole soup from feeling too heavy.
- Potatoes: These soften the bold flavors and make the soup feel grounding and complete.
- Cabbage: Just a quarter head shredded fine; it's the ingredient most people forget until they taste borscht without it.
- Tomato paste, vinegar, and sugar: This trio creates the tangy-sweet backbone that defines borscht's personality—don't skip the vinegar or you'll lose the brightness.
- Sour cream: Dolloped on top just before eating; it cools each spoonful and adds a creamy counterpoint to the deep flavors.
Tired of Takeout? 🥡
Get 10 meals you can make faster than delivery arrives. Seriously.
One email. No spam. Unsubscribe anytime.
Instructions
- Start the broth:
- Place beef, water, bay leaves, peppercorns, and salt in your largest pot and bring to a boil. Once it boils, immediately lower the heat and let it bubble gently; if you skim off the gray foam that rises in the first few minutes, your final soup will be clearer and cleaner tasting. This takes about 45 minutes, and you can leave it mostly unattended.
- Build the flavor base:
- While the beef cooks, heat oil in a skillet over medium heat and add your chopped onion, letting it become soft and translucent—this usually takes about 3 minutes. Add your grated carrots and beets next, and sauté them together for 5 minutes, stirring occasionally; you'll notice the color of the oil shift to deep magenta, which is your signal things are coming together.
- Deepen with tomato and spice:
- Stir in the tomato paste, sugar, and vinegar, then let everything cook for another 7 to 8 minutes with occasional stirring. The beets will soften and the vinegar will mellow, creating a concentrated vegetable mixture that smells almost sweet. This step is where many people rush, but those extra minutes of sautéing make a real difference.
- Combine and add potatoes:
- Remove the cooked beef from the pot and set it aside on a cutting board. Strain the broth if it looks cloudy, then return it to the pot and bring it back to a simmer. Add your diced potatoes now and let them cook for about 10 minutes until they start to turn tender at the edges.
- Finish with the vegetables:
- Add the shredded cabbage and the entire sautéed beet mixture from your skillet to the simmering broth, stirring everything together. Let it simmer for another 10 minutes or so, until the potatoes are fully cooked and the cabbage has softened into the soup. The broth will have deepened from magenta to a rich burgundy by now.
- Return the beef and season:
- Shred or cube the cooked beef into bite-sized pieces and add it back to the pot along with your minced garlic. Taste as you go and adjust the salt and pepper; don't be shy here because the soup needs enough seasoning to stand up to the earthiness of the beets. Let it simmer for 5 more minutes so the garlic blooms and everything knows each other.
- The magic pause:
- Turn off the heat and let the pot sit undisturbed for 15 to 20 minutes—this is where borscht stops being just a collection of ingredients and becomes something whole. During this rest, all the flavors will deepen and marry together in a way that rushing won't allow.
Save Pin I learned that comfort food doesn't announce itself with complexity—it settles into you quietly and reminds you why you came home. Every time I make borscht now, someone tells me I should open a restaurant, and I smile because they don't understand that the magic isn't in the recipe; it's in the care that goes into letting it rest.
The Soul of Borscht
Ukrainian borscht exists in a liminal space between soup and stew, thick enough to feel substantial but brothy enough to warm you from the inside out. The beets are what make it instantly recognizable—that jewel-toned purple-red that looks almost too vibrant to taste as good as it does. What surprised me the first time I made it was how the sweetness of the beets, balanced against the tang of vinegar and the earthiness of the beef, created something that tastes nothing like any single ingredient you put in but feels completely inevitable once you taste it.
Serving and Pairing
Borscht demands to be served hot in a deep bowl with a generous spoonful of sour cream swirled in just before eating—the cream cools each bite and adds a richness that makes the soup feel almost luxurious. Dark rye bread is the traditional companion, torn into pieces and either dunked into the soup or eaten alongside, and if you can find pampushky (those pillowy Ukrainian garlic rolls), they're worth seeking out. I've also served it alongside simple grilled cheese sandwiches cut into triangles, and that combination somehow feels right for a quiet lunch or a casual dinner.
Making It Your Own
This recipe is forgiving enough that you can adapt it without losing its essential character. Some people add a splash of lemon juice at the end for brightness, others prefer to use beef broth instead of water for even deeper flavor, and a few cook a ham bone in the broth instead of beef chuck if that's what they have on hand. The vegetarian version skips the beef and uses vegetable broth instead, and while it tastes different, it's still genuinely good—the beets and vinegar do enough of the heavy lifting that you won't feel like you're missing much. The one rule I'd never break is the resting period; that's non-negotiable.
- A splash of apple cider vinegar can replace white vinegar if you want a slightly deeper taste.
- If you're making this ahead, store it in the refrigerator and reheat it gently on the stovetop, adding a splash of water if it's thickened too much.
- Leftover borscht freezes beautifully for up to three months, and it tastes just as good thawed and reheated as it did fresh.
Save Pin Borscht is the kind of soup that improves with time, which is rare and precious—make it a day ahead if you can, because the flavors will be even more integrated and delicious. There's something deeply satisfying about ladling a bowl that tastes like someone's been cooking it in your kitchen for hours, and knowing you set it up to do that is its own small victory.
Cooking Questions & Answers
- → What cuts of beef work best for this soup?
Chuck or brisket are ideal as they become tender and flavorful after slow simmering.
- → Can this dish be made vegetarian?
Yes, by omitting beef and using vegetable broth, you preserve the rich beet and vegetable flavors.
- → Why add vinegar to the cooking process?
Vinegar brightens the broth and helps enhance the earthy sweetness of the beets.
- → What is the purpose of sour cream topping?
The sour cream adds creaminess and a slight tang, balancing the rich, hearty flavors.
- → How long should the soup rest before serving?
Allowing it to rest for 15–20 minutes helps the flavors meld and intensify.
- → Are there suggested side dishes?
Traditional accompaniments include rye bread or Ukrainian garlic rolls known as pampushky.