The soup that turns a humble fish head into a milky bowl is this one – fish-head tofu soup, and this home cook’s version is the painstaking recipe with every step photographed. A home cook wrote it in sixteen steps with the secrets in the title: scrape the black membrane, sear the skin to white, add boiling water at full flame. I made it as written, and it is the creamy, rich soup that is worth every minute.
Yu tou dou fu tang (鱼头豆腐汤) is fish-head tofu soup – a whole fish head seared until white, boiled with tofu and boiling water into a milky broth, finished with luffa, century egg, and sesame oil.
What Is Milky Fish-Head Tofu Soup?
This is the Cantonese milky fish soup: a fresh silver carp head is cleaned – scales scraped, gills out, the black membrane peeled, because that is where the fishiness lives – then halved and seared skin-down in hot oil with a little salt until the skin is golden and stiff. Boiling water goes in along the pan edge at full flame so it boils immediately, and the broth turns white. Fifteen minutes later the aromatics come out, the tofu goes in for eight minutes, and luffa with a century egg finish it.
For the silken tofu soup sibling of the same pot, my silken tofu potage is the light, tofu-first version.
1Silken Tofu Potage (Doufu Geng)A comforting, savory Chinese thick soup (Geng) made with silken tofu, minced pork, ham, and egg ribbons. A quick and nutritious meal ready in 20 minutes.Check out this recipe
Why This Recipe Works
- The black-membrane scrape. The fishiness is in the membrane – out it goes.
- The hot-oil salt sear. Skin golden and stiff before the water.
- Boiling water at full flame. The broth turns white instantly.
- The long white boil. Fifteen minutes builds the cream.
- Tofu and luffa last. Tender, never overdone.
Equipment Needed
- A wok or wide pot
- A lid
- A spatula
Ingredients
- 1 silver carp head (about 550 g / 1.2 lb), half or whole
- 250 g (9 oz) tofu, in cubes
- 1 piece of luffa, peeled and cut (optional)
- 1 century egg, chopped (optional)
- A little scallion, ginger, and cooking wine
- 1500 ml (6 cups) boiling water
- Salt, chicken powder, white pepper, and sesame oil, to taste
Ingredient Notes
The fish head: Scraped clean – the black membrane must go. My tomato fish and tofu stew is the tomato route with fish. Boiling water: The white-broth secret. Tofu and luffa: In last, tender. My silken tofu potage is the tofu-only soup.
Prep & Mise en Place
Clean the fish head completely; cut the tofu and luffa; have the boiling water ready.
Cooking Process
Step 1 – Use a fresh silver carp head – this one weighed 1150 g;
Use a fresh silver carp head – this one weighed 1150 g; the cook used half for two bowls.
Step 2 – Scrape the scales, pull the gills, split it down the ba
Scrape the scales, pull the gills, split it down the back, and peel the black membrane – the gills and membrane are where the fishiness lives.
Step 3 – The cleaned head after the membrane is gone
The cleaned head after the membrane is gone.
Step 4 – Halve the head and use about 550 g for two bowls – use
Halve the head and use about 550 g for two bowls – use it all for a crowd.
Step 5 – The head is long and carries plenty of flesh
The head is long and carries plenty of flesh.
Step 6 – Marinate with wine, then pat completely dry so the oil
Marinate with wine, then pat completely dry so the oil doesn’t splatter.
Step 7 – Heat the pan (hot pan, cold oil), add about 25 g oil, a
Heat the pan (hot pan, cold oil), add about 25 g oil, and scatter 3 g salt in the oil.
Step 8 – Sear the head skin-down over the highest flame until th
Sear the head skin-down over the highest flame until the skin is golden and stiff.
Step 9 – Flip gently with a spatula; lower to medium, and fry th
Flip gently with a spatula; lower to medium, and fry the scallion and ginger with it until fragrant.
Step 10 – Pour 1500 ml of boiling water along the pan edge at ful
Pour 1500 ml of boiling water along the pan edge at full flame so it boils immediately – this makes the broth white.
Step 11 – After 15 minutes, lift out the scallion and ginger, add
After 15 minutes, lift out the scallion and ginger, add the salt.
Step 12 – Add the tofu and simmer 8 minutes more
Add the tofu and simmer 8 minutes more.
Step 13 – Add the peeled luffa and chopped century egg; cook 2 mi
Add the peeled luffa and chopped century egg; cook 2 minutes until the luffa is tender; finish with chicken powder, sesame oil, and scallion.
Step 14 – A milky, rich, nutritious fish-head tofu soup – sit and
A milky, rich, nutritious fish-head tofu soup – sit and enjoy it slowly.
Step 15 – (A second version with just tofu – this time the water
(A second version with just tofu – this time the water was over-abundant, a note to self.)
Step 16 – (The cook adds the missing ingredients here for a clear
(The cook adds the missing ingredients here for a clearer reference – the most careful of notes.)
Common Mistakes When Making This Dish
1. A fishy, gray soup. Cause: the black membrane left on. Fix: scrape it all off. 2. A thin, clear broth. Cause: cold water or low flame. Fix: boiling water at full flame. 3. A splattered, burned skin. Cause: wet fish. Fix: pat it dry. 4. A bitter broth. Cause: boiling the aromatics too long. Fix: lift them at 15 minutes. 5. Broken tofu. Cause: adding too early. Fix: the last 8 minutes.
Variations
Luffa: The recipe’s tender green. My silken tofu potage is the tofu-only soup. Century egg: The optional richness.
Frequently Asked Questions
Why does the broth turn white? The seared skin and the boiling water at full flame emulsify the fat. Must I scrape the membrane? Yes – it is the fishy part. Can I use another fish? Any white fish head works. How long does it take? About 45 minutes. Is it worth the care? The recipe’s photographs say yes – and my pan-fried tofu with minced pork is the fast savory plate beside it, braised tofu with bok choy the green side.
How to Serve
Serve steaming with rice – with silken tofu potage, tomato fish and tofu stew, and tofu mushroom soup with egg for a fish-tofu table, or with home-style tofu and red braised tofu for variety.
Storage & Reheat
Best fresh; refrigerate 1 day. Never leave out more than 2 hours (1 hour in warm weather). For another rich fish-tofu bowl, my tomato fish and tofu stew is the saucy version.
Allergen Notice
This recipe contains fish (carp head), soy (tofu), and egg (century egg). It is free of gluten, dairy, nuts, 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 Jason Guo, a Chinese chef who has cooked professionally for more than five years – including time as a head chef – and now runs my own small restaurant in China, where tofu appears on the menu almost every day. This xiachufang cook’s fish-head tofu soup is the milky bowl that rewards care, and the recipe’s boiling-water-at-full-flame rule is exactly why the broth turns white. I tested it as written. I have not tested the plain-tofu version, so that is your experiment, not my claim.
Authoritative References
USDA Food Safety and Inspection Service – Safe Temperature Chart for safe storage of cooked dishes.

Milky Fish-Head Tofu Soup (鱼头豆腐汤): The 25-Minute White Broth
Ingredients
Equipment
Method
- Use a fresh silver carp head - this one weighed 1150 g; the cook used half for two bowls.
- Scrape the scales, pull the gills, split it down the back, and peel the black membrane - the gills and membrane are where the fishiness lives.
- The cleaned head after the membrane is gone.
- Halve the head and use about 550 g for two bowls - use it all for a crowd.
- The head is long and carries plenty of flesh.
- Marinate with wine, then pat completely dry so the oil doesn't splatter.
- Heat the pan (hot pan, cold oil), add about 25 g oil, and scatter 3 g salt in the oil.
- Sear the head skin-down over the highest flame until the skin is golden and stiff.
- Flip gently with a spatula; lower to medium, and fry the scallion and ginger with it until fragrant.
- Pour 1500 ml of boiling water along the pan edge at full flame so it boils immediately - this makes the broth white.
- After 15 minutes, lift out the scallion and ginger, add the salt.
- Add the tofu and simmer 8 minutes more.
- Add the peeled luffa and chopped century egg; cook 2 minutes until the luffa is tender; finish with chicken powder, sesame oil, and scallion.
- A milky, rich, nutritious fish-head tofu soup - sit and enjoy it slowly.
- (A second version with just tofu - this time the water was over-abundant, a note to self.)
- (The cook adds the missing ingredients here for a clearer reference - the most careful of notes.)
































