
Hot and sour soup is an authentic Chinese soup with a long history, built around a spicy and sour broth filled with mushrooms, tofu, and silky eggs that is warming, satisfying, and savory. I can assure you my recipe is not Western Chinese takeout or a watered down version, but a home style soup, like my egg drop soup that brings restaurant flavor into my own kitchen.
I love how this recipe comes together nicely because every ingredient I use has a clear role, from the mushrooms adding earthiness to the tofu bringing softness and the eggs creating a silky texture I love. If you have been following me for a while, you know I grew up eating bowls of soup like this with my family, so adding this restaurant style soup to my collection of authentic Chinese soup recipes was really important to me.
After years of cooking Chinese food for my family and guiding home cooks, this hot and sour soup has become one of my favorites because it is ready in just 30 minutes, if you soak your dried ingredients in advance. In this post, I walk you through each step and share simple ingredient swaps so it stays easy, flexible, and perfect for busy days at home.

Ingredients
Since my goal was to create a proper restaurant style hot and sour soup recipe, I use all the ingredients listed below, but the good news is that you can easily substitute them with my recommendations and still enjoy a comforting bowl of soup at home.

The soup base
Top key ingredients: vinegar and pepper
I use Chinkiang vinegar and white pepper to create the classic hot and sour balance that comes from a Northern Chinese style soup I ate growing up. These two ingredients define the character of the soup.
- Protein: I use pork tenderloin most often, but chicken breast works just as well.
- Aromatics: I cook ginger and green onions first to build a savory base.
- Seasonings: I rely on salt and cornstarch to season and lightly thicken the broth.
- Broth and soaking liquid: I use chicken stock along with lily flower soaking liquid.
- Tofu: I use firm tofu so it stays firm while cooking, but you can also use soft or medium tofu for its nice silky texture.
- Soy sauce and wine: I add light soy sauce and Shaoxing wine for savory flavor.
- Eggs: I pour in beaten eggs at the end to create silky ribbons. This gives the soup its signature texture.
- Finishing oils: I finish with toasted sesame oil, but I also recommend chili oil. Either one adds a final layer of flavor to the bowl.
Dried ingredients
My recipe uses a few dried ingredients listed below that may require a trip to an Asian market or an online order, and they are important for creating authentic flavor. I strongly recommend using them for the best result, but if you prefer to skip them, you still can, just keep in mind the soup will not have the same traditional taste.

Dried lily flowers: I use dried lily flowers because they add deep savory flavor with earthy and woody notes. I always save the soaking liquid and use it in the soup base.
Dried shiitake mushrooms: I rely on dried shiitake mushrooms for their smoky, concentrated flavor. The soaking liquid is full of umami and works as a natural vegan stock.
Wood ear mushrooms: I add wood ear mushrooms for their mild taste and crunchy texture.
How to make
1. Rehydrate the dried ingredients: Rinse the dried shiitake mushrooms, dried wood ear mushrooms, and dried lily flowers under running water. Place each ingredient in a separate bowl, cover with warm water, and soak for 30 minutes to 1 hour until tender.
The best way to rehydrate dried ingredients
When I plan to make my soup, I usually soak the dried ingredients in cold tap water a few hours ahead when I can. It takes longer to soak if using cold water, but the ingredients rehydrate without losing their fragrance. When I’m short on time, I use lukewarm water that is about skin temperature or a little hotter if I want to speed up things. But remember, do not use boiling water or very hot water for soaking, since it slightly cooks the ingredients and cause them to lose a lot of flavor.
2. Prepare the mushrooms: Slice the rehydrated shiitake mushrooms into thin strips. If your mushroom comes with the stem, remove and discard the stem because it’s very chewy.

3. Handle the lily flowers: Trim and discard the tough ends of the lily flowers, then cut them in half lengthwise. Reserve 2 cups of the soaking water for the soup.

4. Cut the wood ear mushrooms: Remove any tough ends from the wood ear mushrooms, then chop them into bite sized pieces.

5. Marinate the pork: Combine the pork, Shaoxing wine, salt, and cornstarch in a bowl. Mix well by hand and marinate for 10 to 15 minutes.
6. Mix the vinegar base: In a small bowl, combine the Chinkiang vinegar and white pepper. Stir until the pepper is fully dissolved, then set aside.
7. Build the soup base: Add the chicken stock, reserved lily flower soaking water, ginger, and the white parts of the green onion to a pot and heat over medium high heat. Add the rehydrated wood ear mushrooms, shiitake mushrooms, lily flowers, and tofu, cook until the soup reaches a simmer, then add the soy sauce and reduce the heat to medium low.

8. Thicken the soup: In a small bowl, mix the cornstarch with 1 quarter cup of water until fully dissolved. Slowly swirl the slurry into the soup while stirring, then continue stirring until the soup thickens.

9. Cook the pork: Add the marinated pork to the soup, stirring several times to separate the strips and keep them from sticking together.

10. Add the eggs: Slowly drizzle in the beaten egg while stirring the soup in a circular motion using chopsticks or a fork. Let the egg sit for about 20 seconds to set, then stir lightly to separate the egg ribbons.

11. Finish the soup: Turn off the heat and add the vinegar and pepper mixture, then stir to combine. Season with salt to taste, garnish with the green parts of the green onion, drizzle with sesame oil, give the soup a final stir, and serve hot.

My cooking notes
When making this hot and sour soup, it is important to add the Chinkiang vinegar and white pepper at the very end of cooking. If they are added too early, the vinegar loses its clean sourness as it evaporates, and the white pepper can turn bitter from prolonged heat, which throws off the balance of the soup. Trust me, you don’t want that!
Other tips to consider:
- Use dried ingredients when possible: Dried lily flowers, dried shiitake mushrooms, and wood ear mushrooms add depth that fresh ingredients can not match.
- Slice everything same size: Cutting the mushrooms, tofu, and pork into similar sizes helps them cook at the same rate.
- Thicken the soup slowly: I swirl the cornstarch slurry in gradually while stirring. This prevents lumps and gives the soup a smooth glossy texture.

How to serve
At home, I serve this hot and sour soup the authentic way, straight from the pot and shared at the table alongside any Chinese rice recipes. When my family wants a fuller spread, I pair it with other main dishes such as Lion’s Head Meatballs or Braised Chicken with Mushroom, which keeps the meal comforting and very close to how we enjoy it in Chinese homes.
You can also customize this soup to suit your own palate by adjusting the sourness or heat and swapping proteins like chicken for pork or shrimp. If you enjoy mixing cuisines, it pairs nicely with Western style dishes like roasted vegetables or even a simple Chinese noodle recipe from my collection, making it easy to fit into your everyday meals while keeping the soup as the star.
Frequently asked questions
Why do you add pork after thickening?
Adding the pork after the soup thickens gives each strip a chance to cook at the same pace in the hot broth without overcooking. This step also keeps the meat suspended in the soup, so it stays tender, separate, and well distributed instead of sinking to the bottom or clumping together.
How do I keep the soup from turning cloudy?
When I add the eggs, I drizzle them slowly and make sure let them set before stirring in one direction, then stop once the ribbons form. This keeps the broth clear and gives the soup that classic restaurant look. If stirring too early when the eggs are still too runny, it will cloud the soup.
How thick should hot and sour soup be?
I like the broth thick enough to coat a spoon but still light and drinkable. Swirling in the cornstarch slurry a little at a time helps control the texture without over thickening.
Chinese Cooking Made Easy
Are you new to this website? This free email series is a great place to start. I’ll walk you through a few of my most popular recipes and show you how and why they work. You’ll quickly start to cook better Chinese food in your own kitchen.
Watch video

Authentic Hot and Sour Soup (酸辣汤)
Ingredients
Rehydrate (*Footnote 1)
- 4 dried shiitake mushrooms
- 1/4 cup dried woodear mushrooms
- 1 handful dried lily flowers
Pork (*Footnote 2)
- 1/2 lb pork loin (or chicken breast) , cut into thin strips
- 1/2 tablespoon Shaoxing wine
- 1/4 teaspoon salt
- 1/2 tablespoon cornstarch
Soup
- 2 teaspoons minced ginger
- 2 green onions , sliced, white and green parts divided
- 2 tablespoons Chinkiang vinegar
- 1 teaspoon white pepper powder (or 1/2 teaspoon white pepper powder for a less spicy dish)
- 4 cups chicken stock (*Footnote 3)
- 2 cups lily flower soaking liquid
- 1/2 block firm tofu (8 oz / 227 g) , diced
- 1 tablespoon light soy sauce (or soy sauce)
- 3 tablespoons cornstarch
- 2 eggs , beaten
- 1 teaspoon salt , or to taste
- 1 teaspoon toasted sesame oil (or chili oil) (*Footnote 4)
Instructions
- Rehydrate dried ingredients: Gently rinse dried shiitake mushrooms, dried wood ear mushrooms, and lily flowers with tap water. Soak each of them with 2 cups warm water (*Footnote 5) in three big bowls. Rehydrate for 30 minutes to 1 hour, until tender. Slice mushrooms into strips. Snip off the tough ends of lily flowers and discard. Halve the lily flowers lengthwise. Remove tough ends of wood ear mushrooms, then chop into bite-sized pieces. Reserve 2 cups of the marinating water from lily flower.
- Marinate pork: Combine pork, Shaoxing wine, salt and cornstarch in a bowl. Mix well by hand. Marinate for 10 to 15 minutes.
- Mix sauce: Add Chinkiang vinegar and white pepper into a small bowl. Mix well until the white pepper is completely dissolved.
- Make soup: Add chicken stock, lily flower soaking water, ginger, and green onion white part into a pot and heat over medium-high heat. Add rehydrated wood ear mushrooms, shiitake mushrooms, lily flowers, and tofu to the pot. Cook until bringing to a simmer. Add soy sauce and turn to medium-low heat.
- Thicken the soup: Mix the cornstarch with 1/4 cup of water in a bowl until cornstarch is fully dissolved. Slowly swirl the cornstarch slurry into the soup. Stir to thicken the soup.
- Cook the pork: Add the pork from step one into the soup, stirring several times to prevent the pork strips from sticking together.
- Make egg ribbons: Slowly swirl in the beaten egg, using a pair of chopsticks or a fork against the bowl so the egg slowly drizzle into the soup to form ribbons. The egg should be scattered and not clotted. Let the eggs sit for 20 seconds to set, then gently stir to break up the eggs.
- Season the soup: Turn off the heat. Add the vinegar and pepper mixture and stir to mix well. Add salt and taste the soup to adjust flavor. Garnish with green onion green part and drizzle with sesame oil. Give it a final stir. Serve hot.
Notes
- If you do not have these dry ingredients, you can use half a pound of fresh mushrooms instead. If not using dry ingredients, use 6 cups chicken stock instead of 4 cups stock + 2 cups soaking liquid.
- For a vegetarian hot and sour soup, check out this recipe.
- Alternatively, you can also use 4 cups water plus 1 teaspoon chicken bouillon to replace the chicken stock. In this case, reduce the salt since chicken bouillon is quite salty.
- If you use less white pepper, you can use some chili oil instead of sesame oil. There are different ways to add spiciness to hot and sour soup, and some restaurants use chili oil for another layer of flavor.
- Do not use boiling water, since it slightly “cook” the dried ingredients which cause them to lose flavor. Ideally, you should use cold water to hydrate the ingredients for 1 to 2 hours if time allows. But warm water speed up this process without causing the ingredients to lose too much flavor.
Nutrition
Did you make this recipe?
I’d love to hear how it turned out for you! Please take a moment to leave a 5-star rating ⭐️ and share your thoughts in the comments further down the page. It really helps others discover the recipe too.
Vivian W.
This is very close to the way I’ve made this soup for years. I do use pork but I use beef stock instead of chicken stock. Either way, delish! It’s got my mouth watering and craving this soup. I haven’t made it in a while so will do so when the weather cools down a bit.
Angela Mittmann
Can you tell us the minimal time the pork/chicken should cook for? The directions indicate that by the time the egg swirls in, the meat will be cooked.
Maggie Zhu
The pork / chicken will be cooked very fast, 1 to 2 minutes (assuming the soup is on a low simmer), depending on how thick you cut them. Usually the meat will be cooked by the time that the eggs are set.
You can cook the meat for 1 minute before adding the eggs. Because the eggs will take a minute to set, the meat will be fully cooked by then.
Angela Mittmann
Thanks. Important to update the recipe, especially for novice cooks to know not to undercook these meats.
Sarah Paty
Do you have any additional recipes (must be healthy like this one) that also use these dry ingredients (mushrooms and lily flowers)? I don’t want them to go to waste. I can always make this recipe again to continue using the dry ingredients, but I want to change things up and diversify the things that I eat so I don’t get sick of eating the same thing too often.
Maggie Zhu
I do have a few recipes that use dried lily flowers and the mushrooms:
Moo shu vegetables: https://omnivorescookbook.com/moo-shu-vegetables
Buddha’s delight: https://omnivorescookbook.com/recipes/buddhas-delight
Northern Chinese style noodle sauce: https://omnivorescookbook.com/chinese-gravy-noodles
Mushroom salad: https://omnivorescookbook.com/wood-ear-mushroom-salad
Lotus root stir fry: https://omnivorescookbook.com/lotus-root-stir-fry/
Hannah K
I am stunned by how great this came out! I added fresh baby bok choy and bamboo shoots, left out the pork and lily (I’m pregnant so can’t risk toxic ingredients), and subbed a few cups water with bone broth for added protein and flavor since I lacked the lily water. The ingredients came to about 45$ at the asian market, the batch I made was a bit big so will last me around 5 meals, and I have enough for 3 more batches (many ingredients will last 6+!) So altogether this is one of the most delicious and inexpensive meals I’ve ever made and I’m so so impressed and pleased, thank you very much for sharing!
Michael
Just made this recipe. It’s neither hot nor sour. I added a lot more vinegar and pepper and it’s ok now. The colour is very white though yours looks red. What item in the ingredients gives the red colour?
David
I added a tablespoon of dark soy sauce, otherwise did the recipe as written. (I like the color and richer taste.) The soup turned out terrific! My wide, who doesn’t do spicey at all, liked it. (I did sprinkle a little more white pepper into my bowl.)
Nanny Wonka
OMG….spot on and I thank you! Perfecto!
bekka
This is my go to for this soup
Martin
The best Hot and Sour I have ever had. The. Black vinegar is key!
Rich B
I really liked this recipe a lot! Felt it needed a few tablespoons of ketchup, and also used leftover cubed smoked sausage and added some frozen peas.
Ruthanne
We love this at our house! I added seafood and it was delicious!
Pat de Garmo
Excellent recipe. I used Duck broth, made from bones from your slow cooked Peking duck. The soup is easy to make and so good. I also used left over Turkey.
Richard
Great recipe. Made it over and over and it always perfect. Use shrimp instead of pork and add tomato and bamboo shoots.
B. Cheng
P.S.
My boyfriend thought the soup was “exceptionally good.”
B Cheng
This recipe truly tastes authentic with the two key flavors, white pepper and Chinkiang/Chinese black vinegar. It has the texture and mouth feel I want with the added wood ear mushrooms and lily buds. From your meat marinade, I finally have learned how to tenderize pork like a Chinese restaurant now. Thank you so much!
Martin
You are so right about the black vinegar!
Richard
Love this recipe.Made it many times and just love it.
shiraz ladha
excellent recipe,instuction are clear and easy to follow. Love your site.thanks
Kathy Holley
The soup was better than any I have gotten in a restaurant. Easy and delicious!
Judy Der
I made it tonight! Fantastic ! My family said it was better than our fave Chinese restaurant version! I couldn’t find Woodear mushrooms and I sautéed fresh Shitake mushrooms. Excellent!
Sara
Delicious!! Made this for my boyfriend when he was feeling under the weather and it was so tasty and easy. Will definitely be making this recipe again!