Soups & Stews
This basic hot and sour soup recipe delivers the perfect harmony of tangy, spicy, and umami flavors in every bowl—a classic Chinese comfort food that's easier to make than you think.
The secret lies in balancing sour (vinegar), spicy (chili), and savory (soy sauce) elements while letting the vegetables absorb the aromatic broth. I've perfected this version to be rich yet light, with crisp-tender tofu and mushrooms that stay satisfyingly textured.
The foundation starts with a clear, savory broth built from chicken or vegetable stock, garlic, ginger, and a splash of Shaoxing wine for depth. As the soup simmers, the aromatics infuse the liquid, creating a base that's both fragrant and flavorful.
What sets this recipe apart is the careful layering of textures—crispy fried shallots for crunch, silky tofu for protein, and chewy mushrooms that soak up the tangy-spicy sauce.
By the time you're done, you'll have a restorative bowl that's deeply satisfying yet balanced—no single flavor overpowers the others. The vinegar adds bright acidity, the chili brings gentle heat, and the soy sauce rounds out the umami richness.
This soup adapts effortlessly to dietary needs, with vegan broth and tofu making it plant-based friendly while still delivering restaurant-quality depth.
The best part? It comes together in under 30 minutes, making it perfect for weeknight dinners or meal prep. Serve it piping hot with steamed rice to soak up every last drop of that complex, harmonious broth. Let's get cooking!
Ingredients for basic hot and sour soup
Pantry staples plus a few specialty finds—this soup packs umami punch in every bowl.
| Ingredient | Amount | Notes |
|---|---|---|
| Vegetable Stock 💧 | 4 cups | Low-sodium preferred |
| Firm Tofu 🍲 | 1 lb | Extra-firm, pressed and cubed |
| Dried Shiitake Mushrooms 🍄 | 4 whole | Rehydrated in hot water |
| Garlic Cloves 🧄 | 4 cloves | Minced for aromatic base |
| Fresh Ginger 🌿 | 1 tbsp | Finely grated, fresh preferred |
| Shaoxing Wine 🍷 | ½ cup | Or dry sherry substitute |
| Light Soy Sauce 🥢 | 2 tbsp | For umami depth |
| Rice Vinegar 🍋 | 2 tbsp | For bright tang |
| Chili Garlic Sauce 🌶️ | 1 tbsp | Adjust for spice preference |
| White Sugar 🍚 | 1 tbsp | Balances acidity |
| Green Onions 🧅 | 2 whole | Sliced for garnish |
| Shallots 🧅 | 2 whole | Thinly sliced, fried crispy |
| Vegetable Oil 🫒 | 2 tbsp | For frying shallots |
| Cornstarch 🌾 | 1 tbsp | Mixed with water for slurry |
The tofu and mushrooms are your flavor anchors. Extra-firm tofu holds up best to the tangy broth, so press it for 15 minutes before cubing—Trader Joe's sells pre-pressed blocks that save time. For mushrooms, dried shiitake has that deep, earthy flavor that's hard to beat, but fresh work too if you slice them thin. The garlic and ginger? Fresh is non-negotiable here—powdered just won't cut it. I grab mine at Asian markets where they're often sold pre-minced, but you can do it yourself with a microplane.
No Shaoxing wine? Dry sherry or even a splash of apple cider vinegar works in a pinch. The chili garlic sauce can be swapped for sriracha plus a pinch of garlic powder if you're out. For extra umami without soy, mushroom powder or a dash of fish sauce (if not vegetarian) elevates everything. The sugar might seem odd, but it's essential—balances the vinegar's acidity perfectly. Pro tip: Toast your cornstarch in a dry pan for 30 seconds before mixing with water for a smoother slurry.
This soup tastes even better the next day—reheats beautifully with just a splash of water. Keeps for 4-5 days in the fridge, or freeze portions for up to 3 months. I always double the batch because it disappears fast. Store the fried shallots separately—they stay crispy for up to a week if kept in an airtight container. Garnish with extra green onions and a drizzle of chili oil right before serving for maximum flavor impact.
Why You'll Love This Recipe
- Minimal Chopping Required: I swear by this—just dice the tofu, slice the mushrooms, and mince garlic while the stock heats. No julienne peeling or fancy knife work here, just the essentials.
- Umami Bomb: That combo of dried shiitakes and ginger? It’s what turns this from "soup" to "I’ll make it again." The mushrooms soak up the stock like sponges, and the ginger adds a slow-building warmth that lingers.
- Leftovers That Shine: Between us, this soup actually gets better the next day. The flavors meld, the tofu absorbs the broth, and reheating takes two minutes. Pack it for lunch or freeze portions—no one will guess it’s "basic."
- Budget-Friendly Powerhouse: Tofu, dried mushrooms, and vegetable stock? Check. Fresh ginger and garlic? Check. This feeds four for under $8 and still feels like a restaurant dish. Honestly, my wallet thanks me every time.
Step-by-step instructions for hot and sour soup
Here's how to build this vibrant, balanced soup with layers of umami, tang, and just the right kick.
Prepare the Mushrooms and Tofu
First, rehydrate the 4 whole dried shiitake mushrooms by soaking them in hot water for 20 minutes until pliable. While they soak, press the 1 lb firm tofu between two paper towels for 15 minutes to remove excess water, then cut into ½-inch cubes. This prep ensures your tofu stays firm and absorbs flavors beautifully.
Drain the mushrooms and slice them into ¼-inch pieces. Keep the soaking liquid—it's packed with mushroom essence that deepens your soup's umami. Discard the stems if they're tough. The mushrooms will add an earthy richness that balances the soup's bright, tangy elements.
Build the Aromatic Base
Heat 2 tablespoons vegetable oil in a large pot over medium heat. Add the 2 whole sliced shallots and fry until golden brown—about 3 minutes. This step creates crispy shallots that add texture and sweetness to contrast the soup's acidity.
Push the shallots to the side, then add 4 minced garlic cloves and 1 tablespoon finely grated fresh ginger. Sauté for 30 seconds until fragrant—you should smell that pungent, fresh aroma. Add the sliced mushrooms and cook for 2 minutes until they release their moisture and soften slightly. This aromatic trio forms the flavor foundation.
Simmer the Broth
Pour in the 4 cups vegetable stock and bring to a gentle boil. Add the ½ cup Shaoxing wine, 2 tablespoons light soy sauce, 2 tablespoons rice vinegar, and 1 tablespoon white sugar. Stir well and reduce heat to medium-low. Let it simmer uncovered for 10 minutes to meld the flavors.
The wine will mellow out, the vinegar will brighten, and the sugar will balance the acidity. Taste the broth now—it should be tangy, slightly sweet, and umami-rich. If it needs more depth, add another ½ tablespoon soy sauce. This is your flavor canvas before adding the final touches.
Finish with Spice and Thicken
Add the tofu cubes and 1 tablespoon chili garlic sauce to the simmering broth. Cook for 3 minutes—just enough to warm the tofu through without letting it absorb too much liquid. Meanwhile, mix 1 tablespoon cornstarch with 2 tablespoons cold water to make a slurry.
Slowly ladle the slurry into the pot while stirring constantly. The soup will thicken immediately into a glossy, silky consistency. If it's too thick, add 1-2 tablespoons hot water to reach your desired texture. The chili garlic sauce adds a fiery kick that cuts through the richness of the tofu and mushrooms.
Garnish and Serve
Remove from heat and let the soup rest for 2 minutes. Stir in 2 sliced green onions for freshness and color. Ladle into bowls, making sure each serving gets a crispy shallot and a piece of tofu. The contrast of textures—crispy shallots, tender mushrooms, and silky broth—makes every spoonful exciting.
Serve immediately with steamed rice to soak up the flavorful broth. The balance of tangy, spicy, and umami notes comes together perfectly when eaten fresh. For extra heat, add a dash of chili oil on top, or for more depth, a sprinkle of toasted sesame seeds.
Pro Tips For Making Basic Hot And Sour Soup
- SOAK MUSHROOMS TWICE: Dried shiitakes love a two-step soak—first in hot water (5 minutes), then cold (10 minutes). This breaks down the tough fibers without turning them into mush. I used to skip the cold soak and ended up with a soup that tasted like it had swallowed a rubber band.
- CUT TOFU IN HALF: Slice the firm tofu into ½-inch cubes, then cut each cube diagonally for more surface area. It cooks faster and absorbs the tangy broth better. I learned this the hard way when my tofu stayed bland and rubbery—now it’s tender every time.
- BLOOM GINGER FIRST: Slice the ginger thin, then fry it in oil for 30 seconds before adding garlic. This wakes up its flavor and stops it from turning bitter. After burning my first batch, I now treat ginger like the star it is—no more hiding it in the background.
- SIMMER LOW AND LONG: Once the broth is acidic (vinegar/black vinegar added), drop the heat to a bare simmer. High heat kills the sour notes and makes the tofu mealy. I used to rush it, and the soup lost its balance—now it’s rich and bright.
Make-ahead tips for this basic hot and sour soup
Prep Ahead
Start by prepping the tofu and mushrooms the night before. Press the 1 lb firm tofu for 15 minutes and cube it, storing it in the fridge. Rehydrate the 4 dried shiitake mushrooms in hot water for 20 minutes, then slice and store in an airtight container.
This saves 15 minutes of active prep time the next day. The mushrooms will keep their texture better when refrigerated overnight. 💫
Broth Base
Make the broth foundation in advance by simmering 4 cups vegetable stock, ½ cup Shaoxing wine, 2 tbsp soy sauce, 2 tbsp rice vinegar, and 1 tbsp sugar for 10 minutes.
Let it cool completely, then store in the fridge for up to 3 days. Reheat gently before adding your final ingredients. This step ensures your broth is flavorful and ready to go. ✨
Crispy Shallots
Fry the 2 sliced shallots in 2 tbsp vegetable oil until golden brown and set them aside on a paper towel-lined plate. These crispy shallots can be stored in an airtight container at room temperature for up to 5 days.
Their sweet, crunchy texture is essential for balancing the soup's tangy-spicy profile. Add them fresh when serving for maximum impact. 🌟
Freezer-Friendly
For long-term storage, freeze the fully assembled soup (without the crispy shallots) in airtight containers for up to 3 months. Thaw overnight in the fridge, then reheat on the stovetop over medium-low heat for 5-7 minutes, stirring occasionally.
Add a splash of water if needed to restore the silky texture. The flavors actually deepen after freezing! ❄️
Garnish Prep
Slice the 2 green onions and store them in a small container with a damp paper towel to keep them fresh. These can be prepped up to 3 days ahead of time. When ready to serve, simply stir them into the hot soup for a fresh, bright finish.
For extra flair, toast 1 tsp sesame seeds in a dry pan for 1 minute and store separately—they add a nutty aroma that complements the soup beautifully. 💡
Portion Control
Divide the soup into individual portions before storing to make reheating easier. Use quart-sized freezer bags or glass containers for best results. Label each portion with the date to track freshness.
When reheating, bring to a boil over medium heat for 3-4 minutes, then adjust seasoning if needed. This ensures every bowl tastes fresh and balanced. 🍲
Nutrition facts
Frequently asked questions
Can I make this soup vegan?
Replace the vegetable stock with a rich mushroom or seaweed broth, and use extra-firm tofu for protein. Skip the Shaoxing wine (or use apple cider vinegar) and ensure your chili garlic sauce is vegan. The umami from mushrooms and soy sauce will keep it deeply satisfying.
Why does my soup taste too sour?
Too much rice vinegar or chili garlic sauce can overpower the balance. Start by adding ½ tablespoon less vinegar and taste as you go. A pinch of sugar or a splash of soy sauce can also help round out the acidity. The key is gradual adjustments—build flavor layer by layer.
Can I use fresh mushrooms instead of dried?
Yes! Swap dried shiitake for 8 oz fresh shiitake or cremini mushrooms, sliced thin. They won’t add the same depth of umami as dried, but they’ll still contribute a meaty texture. For extra flavor, sauté them longer until they release their juices. Fresh mushrooms work best when cooked until tender-crisp.
How do I adjust the spice level?
For milder heat, reduce the chili garlic sauce to ½ tablespoon or swap it for ½ teaspoon red pepper flakes. For extra kick, add 1 teaspoon chili oil or a dash of sriracha at the end. Always taste as you go—you can always add more spice, but you can’t take it out!
What if my soup is too thin?
Stir in 1 extra tablespoon cornstarch slurry (mix 1 tsp cornstarch with 2 tsp water) and simmer for 1-2 minutes until thickened. If it’s still too runny, repeat with another ½ tablespoon slurry**. Avoid over-thickening—aim for a glossy, silky consistency that coats the back of a spoon.
