Lu Song Soup (罗宋汤), the Chinese borscht, is a beloved Shanghai home classic — a rich, sweet-and-sour tomato soup loaded with tender beef, cabbage, carrots, potatoes, and onion. It evolved from Russian borscht after the Russian diaspora brought it to Shanghai in the early 20th century, and the Chinese version swaps beets for tomatoes to create its signature bright red broth. Here is the authentic Shanghainese recipe.
Lu song soup is the Shanghai adaptation of Russian borscht — a tomato-based beef and vegetable soup with cabbage, carrots, and potatoes. It is sweet, sour, and savory, served hot, and is a classic comfort food in Shanghai homes and restaurants.
The name 罗宋 is a phonetic rendering of “Russian” (罗宋 / luó sòng), and the dish arrived with the White Russian émigré community that settled in Shanghai after 1917. Shanghai in the 1920s and 1930s had a substantial Russian population, concentrated around the French Concession, and their soup — borscht — was served in the Western-style restaurants and cafés that lined the city’s busiest streets. Chinese cooks adapted it: beets, which were hard to source and unfamiliar in taste, were replaced with tomatoes and tomato paste, and a spoonful of sugar was added to suit Shanghai’s preference for sweet-savory balance. The result is a dish that is genuinely neither Russian nor Chinese but unmistakably Shanghai.
This recipe comes from a Shanghai home cook who taught me the crucial technique: brown the beef thoroughly first, then sweat the onions until translucent before adding tomatoes. The layered browning creates the deep, rich base that separates a great lu song soup from a watery one.

Why It Is Not Borscht
Purists note that 罗宋汤 contains no beets, and they are right — that is precisely what makes it a Chinese dish rather than a Russian one. Beets were expensive and unfamiliar in 1920s Shanghai, while tomatoes were already established in the city’s Cantonese-influenced kitchens. Swapping them changed the soup entirely: the color comes from tomato rather than beetroot, the flavor is brighter and more acidic, and the sugar that Shanghai cooks add pushes it toward sweet-and-sour. If you want the Russian original, use beets and skip the sugar; if you want the Shanghai classic, follow this recipe.
Build the Base in Layers
- Brown the beef first. Cubes of chuck or brisket seared in a hot pot until deeply colored. This is where the soup’s savoriness comes from — skipping it leaves the broth thin.
- Sweat the onions. In the same pot, using the rendered fat, until soft and translucent. Their sweetness underpins the whole soup.
- Add tomato and tomato paste. Cooked down until the raw tomato flavor disappears and the mixture darkens — five minutes minimum.
- Add the root vegetables, then the liquid. Carrot and potato go in before the stock so they can absorb flavor; cabbage goes in later so it does not disintegrate.
- Simmer 60–90 minutes, then finish with cabbage. The cabbage needs only 15 minutes, and it should still have some bite.
Ingredients and Where to Find Them
- Beef chuck or brisket — beef chuck, cubed; a well-marbled cut braises best
- Tomato paste — tomato paste gives the soup its deep red color and concentration
- Worcestershire sauce (optional) — Worcestershire sauce is a traditional Shanghai addition for umami
Also needed: onion, carrot, potato, cabbage, garlic, tomato (fresh or canned), sugar, salt, black pepper, bay leaf, and beef stock. Some cooks add a little flour-butter roux at the end to thicken it, which is a legacy of the Western kitchen it came from.
How to Make It
- Cut 500g (1.1 lb) beef chuck into 3cm cubes, pat dry, and brown well in 2 tablespoons oil; remove
- Add 1 large sliced onion and sweat 5 minutes until translucent; add 3 minced garlic cloves and cook 1 minute
- Add 4 chopped tomatoes and 2 tablespoons tomato paste; cook down 6 minutes until darkened and jammy
- Return the beef with 1.5 liters beef stock, 1 bay leaf, 1 teaspoon sugar, 1 teaspoon salt, and a splash of Worcestershire sauce
- Simmer gently 60 minutes, then add 2 diced carrots and 2 diced potatoes; cook another 20 minutes
- Add 300g (10.5 oz) shredded cabbage and simmer 15 minutes until tender but not soft
- Adjust salt, sugar, and black pepper to taste — it should be balanced between sweet and sour — and serve with crusty bread
Variations
- With a roux — whisk in a butter-flour roux at the end for the thicker, richer texture of old Shanghai Western restaurants
- With beets — the Russian original; add 2 diced beets and omit the sugar
- Vegetarian — skip the beef, use mushroom stock, and add extra tomato paste and a splash of soy for depth
- With sausage — smoked sausage in place of some beef is a popular homestyle shortcut
Frequently Asked Questions
What does 罗宋汤 mean?
罗宋 is a phonetic transliteration of “Russian.” The soup is Shanghai’s adaptation of Russian borscht, developed after Russian émigrés settled in the city in the 1920s and 1930s. The Chinese version uses tomatoes instead of beets.
Why is there no beet in Chinese borscht?
Because beets were hard to find and unfamiliar to local palates when the soup was adapted. Shanghai cooks substituted tomatoes and tomato paste, which were already common in the city’s kitchens, and added sugar to suit local taste. The swap is what makes the dish distinctly Shanghainese.
Can I make it in a slow cooker?
Yes, after the browning step. Do the beef browning, onion sweating, and tomato cooking in a pan first — those steps build the flavor and cannot be skipped — then transfer everything to the slow cooker with the stock and cook on low for 6 hours. Add the cabbage in the last 30 minutes.
How long does it keep?
4-5 days in the fridge — the flavor improves overnight. It also freezes well for 3 months. Reheat gently on the stove.
More Shanghai & Comfort Classics
Love Shanghai home cooking? Try my Shanghai Fried Noodles 上海炒面, the everyday Egg Fried Rice 蛋炒饭, or the braised Hong Shao Rou 红烧肉.
As an Amazon Associate, I earn from qualifying purchases. These are affiliate links at no extra cost to you.


