Soups & Stews
This Asian hot and sour soup recipe delivers the perfect balance of bold spices and tangy flavors with a crispy topping twist that elevates every bowl.
The secret lies in a rich broth—whether chicken, pork, or vegetarian—simmered with aromatic ginger, garlic, and star anise, then brightened with vinegar and chili oil for that signature kick. I’ve perfected this version to include a crispy fried shallot garnish that adds texture without overpowering the dish’s vibrant profile.
What sets this recipe apart is the crispy element: thinly sliced shallots fried until golden, then sprinkled on top just before serving. This adds a satisfying crunch that contrasts beautifully with the silky tofu, mushrooms, and bamboo shoots simmered in the broth.
The broth itself is built layer by layer—starting with a savory base, then balancing it with acidity and heat. It’s the kind of soup that warms you up while keeping your taste buds engaged.
The result is a dish that’s restaurant-quality at home, with deep umami flavors, a tangy bite, and just the right amount of heat. The crispy shallots not only add texture but also tie all the flavors together, making each spoonful a little celebration.
Whether you’re serving it as an appetizer or a light main course, this soup is designed to impress without being overly complicated.
For those who love customization, you can adjust the spice level by adding more chili oil or vinegar, or even swap in different vegetables like bell peppers or water chestnuts.
The crispy topping can also be made with crushed peanuts or fried garlic for a different twist. Let’s get started on this flavor-packed recipe!
Ingredients for asian hot and sour soup
Pantry staples meet bold Asian flavors in this crispy-topped hot and sour soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Chicken Broth 🥫 | 4 cups | Low-sodium preferred, homemade or quality store-bought |
| Firm Tofu 🍱 | 8 oz | Extra-firm, pressed and cubed |
| Shiitake Mushrooms 🍄 | 4 whole | Stemmed and sliced, fresh or dried |
| Bamboo Shoots 🌿 | 1 cup | Canned, drained and rinsed |
| Shallots 🧅 | 3 whole | Thinly sliced for frying |
| Garlic Cloves 🧄 | 4 cloves | Minced for depth of flavor |
| Fresh Ginger 🌿 | 1 tbsp | Finely grated, aromatic |
| Star Anise 🌶️ | 1 whole | For aromatic depth |
| Black Vinegar 🍶 | 2 tbsp | For signature tang |
| Chili Oil 🌶️ | 1 tbsp | Adjust for heat preference |
| Sesame Oil 🫒 | 1 tsp | For finishing aroma |
| Vegetable Oil 🫒 | ½ cup | For frying shallots |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
| White Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Green Onions 🧅 | 2 whole | Sliced for garnish |
The shallots are the star here—thinly sliced and fried until golden for that satisfying crunch. Trader Joe's has the best pre-sliced shallots if you're short on time, but slicing them yourself gives better control. For the tofu, extra-firm is non-negotiable—press it for 20 minutes to remove excess water. Shiitake mushrooms add earthy depth, but dried mushrooms work too (soak first). The broth is where the magic happens—homemade is ideal, but Swanson or Pacific Foods low-sodium versions cut corners without sacrificing flavor.
No star anise? Cinnamon stick or clove adds warmth in a pinch. Fresh ginger is best, but powdered works at half the amount. The chili oil can be swapped for sriracha or sambal oelek, but adjust the heat level carefully. For a vegetarian version, use vegetable broth and mushroom stems instead of chicken broth. The crispy topping can also be made with fried garlic or crushed peanuts if shallots aren't your thing—just keep the oil hot for that golden crunch.
Store leftover broth in the fridge for 4-5 days—it only gets better as flavors meld. The crispy shallots? Eat them fresh—they lose crunch after 10 minutes. For meal prep, fry extra shallots and store separately in an airtight container. The tofu and veggies reheat beautifully, so this soup actually tastes better the next day. Double the crispy topping if you're serving a crowd—trust me, it disappears fast.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe—just toss everything in one pot, and the broth does all the work. No chopping mountains of veggies, no last-minute scrambling for extra bowls. The tofu and mushrooms soften perfectly while the shallots caramelize right in the broth, and honestly? That’s half the battle won.
- Umami Bomb: The combo of shiitake mushrooms and bamboo shoots? Absolute flavor gold. Those mushrooms add this deep, earthy richness, while the bamboo shoots bring a crisp, almost sweet contrast. And the broth—oh, that tangy, slightly spicy kick from the vinegar and chili? It’s the kind of taste that makes you want to take a second bowl.
- Lunchbox Hero: This soup is my secret weapon for meal prep. Pack it warm or cold—it reheats beautifully—and it’s hearty enough to keep me full through meetings. (Yes, even on a Tuesday when I’m running late.) The tofu holds up, the veggies stay intact, and the broth stays flavorful. My go-to for busy weeks.
- Budget Win: I make this all the time because it’s cheap, filling, and never wastes ingredients. Chicken broth is versatile, tofu is a protein powerhouse, and mushrooms and bamboo shoots stretch further than you’d think. Leftovers? They’re even better the next day—if there are any left, that is. My wallet and I both approve.
Step-by-step instructions for Asian hot and sour soup
This soup delivers perfect spice balance with a crispy topping twist—let's build it step by step.
Prepare the Crispy Shallot Topping
Heat the 0.5 cup vegetable oil in a small skillet over medium heat until shimmering. Add the 3 whole shallots (thinly sliced) and fry for 4-5 minutes, stirring occasionally, until they turn deep golden brown and crisp. Remove with a slotted spoon and drain on paper towels—these will be your signature crunchy topping.
Here's the thing—don't rush this step. You want those shallots to develop that irresistible crunch. If they're not golden brown by 5 minutes, your heat might be too low. Transfer the cooked shallots to a small bowl and set aside, keeping them warm until serving.
Build the Flavor Base
In a large pot, combine the 4 cups chicken broth, 1 whole star anise, 1 tbsp fresh ginger, 4 cloves garlic cloves, 1 tsp salt, and 0.5 tsp white pepper. Bring to a boil over high heat, then immediately reduce to a simmer for 10 minutes to infuse the broth with aromatic flavors. The star anise will add subtle depth while the ginger and garlic create that classic Asian warmth.
While simmering, remove and discard the star anise. You'll know it's ready when the broth smells rich and fragrant—like a warm hug in a bowl. This foundational step ensures every spoonful packs maximum flavor without needing extra seasoning later.
Add Vegetables and Tofu
Add the 8 oz firm tofu (pressed and cubed), 4 whole shiitake mushrooms (sliced), and 1 cup bamboo shoots to the simmering broth. Cook for 8-10 minutes, stirring occasionally, until the tofu is heated through and the mushrooms have softened slightly. The tofu should be lightly golden around the edges but still hold its shape.
I press the tofu for 15 minutes before cubing—this removes excess water so it absorbs flavors better. If your tofu seems too soft after cooking, it might need pressing longer next time. The mushrooms should release their earthy aroma into the broth, creating that perfect umami backbone.
Balance the Heat and Tang
Remove the pot from heat and stir in the 2 tbsp black vinegar and 1 tbsp chili oil. The vinegar adds that signature tang while the chili oil brings the heat. Taste and adjust—you want a balance where the spice lingers but doesn't overwhelm. For extra depth, add 1 tsp sesame oil just before serving.
This is where the magic happens. The vinegar brightens everything, cutting through the richness of the tofu and mushrooms. The chili oil should make your lips tingle slightly—if it's too mild, add a pinch more. Stir gently to distribute the oils evenly without breaking the tofu.
Finish and Serve
Ladle the hot soup into bowls and immediately top with the crispy shallots and 2 whole green onions (sliced). The contrast between the warm soup, crispy shallots, and fresh green onions creates the perfect textural experience. Serve with extra chili oil on the side if you want to adjust heat per bowl.
Each bite should deliver that perfect balance: silky tofu, umami mushrooms, bright vinegar, and just enough heat to make your taste buds dance. The crispy shallots add a satisfying crunch that keeps every spoonful exciting. Enjoy immediately while the toppings are at their best!
Pro Tips For Making Asian Hot And Sour Soup
- SOAK SHIITAKES FIRST: Shiitake mushrooms absorb flavors like sponges, so give them a quick 10-minute soak in warm water before slicing. I used to skip this and ended up with dry, chewy mushrooms—now they stay tender and soak up the broth’s richness.
- CUT TOFU IN CHUNKS: Skip the cubes—slice firm tofu into 1-inch thick slabs instead. They hold their shape better in the simmering broth and get that perfect chewy texture without falling apart, especially when you’re adding them late.
- STIR IN SHALLOTS LAST: Add minced shallots just 2 minutes before serving, or they’ll turn to mush. I learned this the hard way when my soup ended up with a weird, slimy texture—now they stay bright and sharp, adding that fresh bite.
- USE COLD BROTH: Start with cold chicken broth instead of hot to prevent the tofu and mushrooms from overcooking while you’re prepping. It’s a simple trick that keeps everything tender, even if you’re multitasking like I usually am.
Regional styles of this asian hot and sour soup
Chinese Cantonese Style
The Cantonese version of hot and sour soup is all about balance—where the broth is lighter but packed with aromatic spices. I use less vinegar (1 tbsp instead of 2 tbsp) and swap black vinegar for rice vinegar to keep the tang subtle.
Add 1 tsp fermented black beans for umami depth, and garnish with crispy fried garlic instead of shallots. This version is lighter but still bold, perfect for hot summer days. 🌶️
Japanese Shouga Soup
In Japan, this soup becomes shouga soup, where the focus shifts to fresh ginger (shouga) for warmth. I replace star anise with ½ tsp ground white pepper and add 1 tbsp mirin for sweetness.
Serve with crispy tempura flakes on top instead of fried shallots. The broth is slightly sweeter, and the ginger shavings are a must—add them fresh at the table for extra zing. ✨
Thai-Inspired Tom Yum Twist
For a Thai-inspired version, I boost the heat with 1 tbsp fish sauce and 1 tsp lime juice instead of vinegar. Swap shiitake mushrooms for straw mushrooms and add ½ cup lemongrass (bruised) to the broth.
Top with crushed peanuts and fresh cilantro. The broth becomes brighter and more herbaceous, with a citrusy kick that’s totally addictive. 🌿
Korean Kimchi Hot Soup
This Korean adaptation turns the soup into a kimchi hot pot. I stir in ½ cup chopped kimchi (with its juice) when adding the tofu and mushrooms. Add 1 tsp gochujang for depth and top with sesame seeds and extra kimchi.
The broth becomes fermented and tangy, with a spicy, funky punch that’s irresistible. Serve with steamed rice for a hearty meal. 🍜
Vegetarian Mushroom Power
For a vegetarian version, I use vegetable broth and load up on mushrooms—shiitake, oyster, and enoki for texture. Add 1 cup corn kernels for sweetness and top with toasted sesame seeds and scallions.
The umami from the mushrooms makes this version deeply satisfying, even without meat. Perfect for veggie lovers or quick weeknight meals. 🌱
Spicy Sichuan Kick
If you love heat, the Sichuan version is a game-changer. I add 1 tsp Sichuan peppercorns (toasted and crushed) to the broth and stir in 1 tbsp doubanjiang (fermented chili bean paste) when balancing flavors.
Top with crispy chili oil and pickled mustard greens** for that signature Sichuan tang. The broth will have a numbing, fiery depth that’s unforgettable. 🔥
Nutrition facts
Frequently asked questions
Can I make this soup without tofu?
Swap the tofu for 8 oz chicken breast (cubed) or 8 oz firm white fish like cod or halibut. For a vegetarian option, use extra mushrooms (12 oz total) or water chestnuts (1 cup). The key is maintaining the soup's texture contrast—if using meat, cook it just until heated through (5-6 minutes) to keep it tender.
How can I adjust the spice level?
Start with the 1 tbsp chili oil—this gives a balanced heat. For more spice, add ½ tsp extra chili oil or 1 tsp sriracha per bowl. To reduce heat, omit the chili oil and use 1 tsp less vinegar (the acidity will still provide tang). Always taste before serving and adjust per bowl.
What's the best way to store leftovers?
Store the broth and cooked ingredients (without crispy shallots) in an airtight container for 3-4 days in the fridge. The crispy shallots should be eaten fresh—they lose their crunch after 10 minutes. To reheat, warm the soup over medium-low heat until steaming, then stir in fresh crispy shallots and green onions before serving.
Why is my soup too bland?
Most likely, your broth needs more depth. Boost umami by adding 1 tsp fish sauce (if not vegetarian) or 1 tsp soy sauce. For extra tang, increase vinegar to 3 tbsp. If using store-bought broth, simmer it with 1 extra star anise or cinnamon stick for 15 minutes to enhance flavor. Always taste as you go!
Can I make this soup in an Instant Pot?
Yes! Sauté the ginger, garlic, and star anise in the Instant Pot for 1 minute on sauté mode. Add broth and all other ingredients (except crispy topping) and cook on high pressure for 3 minutes**. Quick-release the pressure, then stir in vinegar and chili oil. The Instant Pot version cooks faster but may need slightly more vinegar for tang.
