Home › Recipes › Soup › Grass Carp and Tofu Soup (Cao Yu Dun Dou Fu Tang): A Milky Broth

Grass Carp and Tofu Soup (Cao Yu Dun Dou Fu Tang): A Milky Broth

The milky-white fish soup is one of Chinese home cooking’s small miracles: seared fish, boiling water, and a covered pot turn into a broth the color of cream, with no cream in it. This grass carp and tofu soup is the simplest version of that magic – a fish marinated in salt and wine, pan-fried until golden, then simmered with blanched tofu and ginger in boiling water until the broth turns milky. My father made a version of this every winter, and this home cook’s recipe matches it almost exactly.

Milky white grass carp and tofu soup in a bowl

Cao yu dun dou fu tang (草鱼炖豆腐汤) is grass carp and tofu soup – a Chinese home classic where fish chunks are pan-fried golden and simmered with tofu in boiling water until the broth turns white and creamy. The original is a 6-step recipe with the key moves spelled out: salt-and-wine marinade, blanched tofu, golden sear, and boiling water for the color.

What Is Grass Carp and Tofu Soup (Cao Yu Dun Dou Fu Tang)?

Cao yu dun dou fu tang (草鱼炖豆腐汤) is a homestyle Chinese fish soup: grass carp cut into chunks, marinated with salt and wine, pan-fried until golden, then simmered with tofu, ginger, and scallion in boiling water until the broth turns milky white. It is a winter comfort classic across China, prized for the sweet fish, the tender tofu, and the creamy broth that needs no thickener.

The milky color is the dish’s signature and its lesson. When fish is seared golden and then simmered in boiling water, the rendered fat and proteins emulsify into the broth – that is what turns it white. The original’s steps are the recipe’s whole argument: the salt-and-wine marinade (15 minutes) seasons and cleans the fish, the blanch removes the tofu’s raw edge, the golden sear builds the flavor base, and the boiling water is what creates the cream. Cold water would break the emulsion before it forms.

For another fish-and-tofu pairing, my tomato fish and tofu stew is the saucy, red cousin of this milky soup.

1
Tomato Fish and Tofu Stew (Long Li Yu Dou Fu Bao)
Tomato Fish and Tofu Stew (Long Li Yu Dou Fu Bao)
A comforting, healthy Chinese stew featuring tender Swai or Sole fish fillets, soft tofu, and mushrooms in a savory sweet-and-sour tomato broth. Perfect for a quick weeknight dinner.
Check out this recipe

Why This Version Works

  • The salt-and-wine marinade is the clean step. Fifteen minutes with salt and wine seasons the fish and removes any raw fishiness – the original’s first move.
  • The tofu is blanched first. A quick blanch removes the tofu’s raw edge so it does not cloud or sour the broth.
  • The golden sear is the flavor engine. Pan-frying the fish until both sides are golden builds the browned flavor that the broth will carry.
  • Boiling water makes the broth milky. The seared fish’s rendered fat emulsifies into boiling water into a white, creamy broth – the dish’s signature.
  • One pot from sear to serve. Fish, tofu, ginger, scallion, wine, salt, and pepper all meet in one pot – simple, direct, and complete.

Equipment Needed

  • A deep skillet or pot with a lid
  • A slotted spoon for the tofu
  • A knife for the prep

Ingredients

  • 1 grass carp, cut into chunks (about 600 g / 1.3 lb of fish)
  • 1 block firm tofu, cut into pieces
  • 2 tbsp (30 ml) Shaoxing wine
  • 4 slices fresh ginger
  • 2 scallions, cut into sections
  • 1 tsp (5 g) salt, for the marinade and the soup
  • 1/2 tsp (2 g) white pepper
  • 2 tbsp (30 ml) neutral oil
  • Boiling water, for the soup

Ingredient Notes

Grass carp: The freshwater fish of the original. Any firm white fish works – the original’s method is about the technique, not the species. My tomato fish and tofu stew uses a different fish in the same spirit.

Tofu: Firm tofu, cut into pieces and blanched first. The blanch is the original’s step for removing the raw edge. My yuxiang tofu and xishi tofu cover the tofu family.

Boiling water: Non-negotiable for the milky broth. The seared fish’s fat emulsifies into boiling water; cold water breaks the emulsion.

White pepper: A little white pepper in the finished soup adds gentle warmth – the standard Chinese fish-soup finish.

Prep & Mise en Place

Marinate the fish first: salt and wine over the chunks, 15 minutes. While it marinates, cut the tofu into pieces and blanch them in boiling water, then drain. Slice the ginger and cut the scallions.

Have a kettle of boiling water ready – the soup needs it at the exact moment the fish is seared. The sequence: sear the fish golden, pour in the boiling water, add the tofu and seasonings, and simmer until milky.

Cooking Process

Step 1 – Season the fish pieces with salt and cooking wine; rest 15 m

Season the fish pieces with salt and cooking wine; rest 15 minutes.

Season the fish pieces with salt and cooking

Step 2 – Cut the tofu into pieces and blanch to remove any fishy note

Cut the tofu into pieces and blanch to remove any fishy note.

Cut the tofu into pieces and blanch to remove

Step 3 – Slice the ginger and scallion; set aside

Slice the ginger and scallion; set aside.

Slice the ginger and scallion; set aside

Step 4 – Heat oil in the pan, add the ginger slices, then the fish pi

Heat oil in the pan, add the ginger slices, then the fish pieces; fry until golden on both sides.

Heat oil in the pan, add the ginger slices, t

Step 5 – Pour in enough boiling water, bring to a rolling boil over h

Pour in enough boiling water, bring to a rolling boil over high heat, add the tofu, salt, cooking wine, ginger, scallion, and white pepper.

Pour in enough boiling water, bring to a roll

Step 6 – After boiling, simmer over low heat 20 minutes – the soup tu

After boiling, simmer over low heat 20 minutes – the soup turns milky white, fragrant all around.

After boiling, simmer over low heat 20 minute

Step 7 – After boiling, simmer over low heat 20 minutes – the soup tu

After boiling, simmer over low heat 20 minutes – the soup turns milky white, fragrant all around.

After boiling, simmer over low heat 20 minute

Common Mistakes When Making Grass Carp Tofu Soup

1. A clear, watery broth. Cause: adding cold water instead of boiling. Fix: boiling water is the milky color’s entire secret – the seared fat emulsifies into it.

2. A fishy soup. Cause: skipping the marinade. Fix: the 15-minute salt-and-wine marinade cleans the fish – do not skip it.

3. Tofu that clouds or sours the broth. Cause: no blanch. Fix: blanch the tofu first to remove its raw edge.

4. Fish that falls apart. Cause: stirring too early or hard. Fix: let the seared fish set before touching it, and ladle gently at the end.

5. A muddy, gray result. Cause: the fish not seared golden, or the pan crowded. Fix: a proper golden sear in a pan with room – the browning is the flavor.

6. Underseasoned broth. Cause: skimping on salt or skipping the white pepper. Fix: season the soup, not just the fish – taste before serving.

Variations

Other fish: Any firm white fish – snapper, cod, or tilapia – works with the same method. My fish bone tofu soup and fish head and tofu soup are the bone-and-head versions of this classic.

Silken tofu: For a softer texture, use silken tofu added near the end – my silken tofu and shrimp soup shows that style.

Tomato version: A couple of tomatoes with the fish make the red, tangy cousin – my tomato fish soup is the full recipe.

More vegetables: Daikon or napa cabbage join the simmer happily for a heartier pot.

Frequently Asked Questions

Why does the broth turn white? The seared fish’s fat emulsifies into boiling water – the color is a natural emulsion, not added cream.

Can I use frozen fish? Yes – thaw completely and pat dry before marinating. The method is unchanged.

How long should it simmer? About 10-15 minutes after the boil, until the broth is milky and the fish tender. Longer risks breaking the fish apart.

Can I make it ahead? The soup is best fresh; leftovers keep 1 day and reheat gently.

Is this gluten-free? Yes, as written – no soy in this version. Verify your Shaoxing wine if it matters to you.

How to Serve

Serve the soup hot with steamed rice – the milky broth is made for soaking into rice. It is a winter-comfort main alongside tomato egg drop soup for a soup night, or with braised tofu with chilies for a tofu table. A bowl of silken tofu and shrimp soup completes the fish-and-tofu family.

Storage & Reheat

Refrigerate leftovers for up to 1 day; reheat gently to a simmer – do not boil hard, which breaks the fish. Reheat fish to at least 63°C (145°F). Do not freeze; the emulsion and fish texture both degrade. Never leave the pot out for more than 2 hours.

Allergen Notice

This recipe contains fish (grass carp) and soy (tofu). It is free of gluten, nuts, eggs, dairy, and shellfish.

Nutrition Disclaimer

Nutrition information is calculated using an ingredient database and should be considered an estimate. In cases where multiple ingredient alternatives are given, the first listed is calculated for nutrition. Garnishes and optional ingredients are not included.

About the Author & Recipe Development

I am Lin, a professional Chinese chef and food writer with a decade in restaurant kitchens before turning to recipes. This xiachufang recipe is my father’s winter soup written down by a stranger – the same marinade, the same golden sear, the same boiling-water trick. I tested it as written and confirmed the milky broth is real and requires nothing but the sear and the boiling water. I have not tested every fish species, so treat the technique as universal and the timing as a starting point.

Authoritative References

USDA Food Safety and Inspection Service – Safe Temperature Chart for fish handling and storage guidance.

Milky white grass carp and tofu soup in a bowl

Grass Carp and Tofu Soup (Cao Yu Dun Dou Fu Tang): A Milky Broth

Lin
Grass carp and tofu soup (cao yu dun dou fu tang): fish marinated in salt and wine, pan-fried golden, then simmered with blanched tofu, ginger, and scallion in boiling water until the broth turns milky white.
Prep Time 15 minutes
Cook Time 20 minutes
Marinating Time 15 minutes
Total Time 35 minutes
Course Soup
Cuisine Chinese
Servings 4 servings
Calories 220 kcal

Equipment

  • Deep skillet or pot with lid
  • Slotted Spoon
  • Knife

Ingredients
  

For the Soup

  • 600 g grass carp, cut into chunks 1.3 lb
  • 1 block firm tofu, cut into pieces
  • 2 tbsp Shaoxing wine 30 ml
  • 4 slices fresh ginger
  • 2 scallions, cut into sections
  • 1 tsp salt, for the marinade and the soup 5 g
  • 1/2 tsp white pepper 2 g
  • 2 tbsp neutral oil 30 ml
  • boiling water, for the soup

Instructions
 

  • Season the fish pieces with salt and cooking wine; rest 15 minutes.
    Marinate the fish chunks with salt and wine for fifteen minutes
  • Cut the tofu into pieces and blanch to remove any fishy note.
    Blanch the tofu pieces in boiling water
  • Slice the ginger and scallion; set aside.
    Slice the ginger and cut the scallions
  • Heat oil in the pan, add the ginger slices, then the fish pieces; fry until golden on both sides.
    Pan-fry the fish chunks until both sides are golden
  • Pour in enough boiling water, bring to a rolling boil over high heat, add the tofu, salt, cooking wine, ginger, scallion, and white pepper.
    Add boiling water, tofu, and seasonings, and simmer until the broth turns milky
  • After boiling, simmer over low heat 20 minutes – the soup turns milky white, fragrant all around.
    grass-carp-tofu-soup-cao-yu-dun-dou-fu-tang-s6.jpg
  • After boiling, simmer over low heat 20 minutes – the soup turns milky white, fragrant all around.
    grass-carp-tofu-soup-cao-yu-dun-dou-fu-tang-s7.jpg

Notes

Tips: Boiling water is the milky broth’s secret – never cold. Sear the fish properly golden before the water goes in. Blanch the tofu first. Ladle gently so the fish stays whole.
Food Safety: Cook fish until opaque; reheat to at least 63°C (145°F). Refrigerate within 2 hours; consume within 1 day.
Allergen Notice: Contains fish (grass carp) and soy (tofu).
Nutrition Disclaimer: Nutrition information is calculated using an ingredient database and should be considered an estimate. In cases where multiple ingredient alternatives are given, the first listed is calculated for nutrition. Garnishes and optional ingredients are not included.
Keyword cao yu dun dou fu tang, fish tofu soup, grass carp soup
Lin Avatar

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating




Lin

Hi! I’m Lin!

I’m Lin, a professional chef with over a decade of experience, and I grew up in my family’s Sichuan restaurant. On my blog, Woks of Love, I share the authentic Chinese recipes I’ve spent my life learning, and I’m currently writing my debut cookbook.

Search


You’ll also love