Welcome to The Tofu Kitchen. My name is Jason Guo, and I’m a Chinese chef living and cooking in China. I’ve worked professionally in restaurant kitchens for more than five years, including time as a head chef, and I now run my own small restaurant where tofu appears on the menu almost every day.

I created The Tofu Kitchen to share one simple idea: Tofu is not plain, boring, or tasteless. When treated with care, tofu can be crispy, silky, comforting, deeply savory, and full of character.
Today, I am sharing a recipe that is very close to my heart. It captures the essence of a clean, crisp morning in China—Crucian Carp Tofu Soup. This dish is deceptively simple, yet it yields a broth so rich and milky white that you might swear I added cream. I didn’t. The magic lies in the technique.
Why This Recipe
This is not just a soup; it is considered a healing tonic in Chinese households. We often serve it to recover strength or simply to warm up on a cold day. It is incredibly rich in protein and low in bad fats.
If you are new to Chinese soups, this is the perfect starting point. Unlike slow-simmered herbal soups that take hours, this comes together in about 30 minutes. It pairs the natural sweetness of fresh fish with the pillowy softness of tofu. If you enjoyed my Creamy Tofu Soup with Clams, you will love the depth of flavor here.
What Is Crucian Carp Tofu Soup?
Crucian Carp Tofu Soup (鲫鱼豆腐汤, Jìyú Dòufu Tāng) is a traditional home-style dish famous for its distinct, milky-white broth. The soup relies on the chemical reaction between the fish fat, high heat, and boiling water to emulsify the soup, turning it opaque and creamy.
In Traditional Chinese Medicine (TCM), Crucian Carp is considered sweet and neutral. It affects the spleen, stomach, and large intestine meridians, and is believed to boost energy (Qi) and remove dampness.
Traditional vs. Home Kitchen Version
In professional restaurants, we use extremely high-BTU wok burners to blast the fish and water, creating that white color instantly. In this home version, adapted for standard stoves, I use a specific searing technique and boiling water to replicate that professional creamy texture perfectly.
Why This Recipe Works
- The Ginger Rub: By rubbing the pan with ginger before adding oil, we create a non-stick surface that prevents the delicate fish skin from tearing.
- Boiling Water + High Heat: Adding boiling water to the seared fish and keeping the heat high is the scientific secret to emulsifying the fats and proteins, creating the signature milky white color.
- Late Salting: Adding salt at the end prevents the proteins from tightening up too early, keeping the meat tender and the soup nutritious.
Ingredients for Jiyu Doufu Tang
- Crucian Carp (鲫鱼 – Jìyú): You need 2 whole fish. Crucian carp is sweet and flavorful but quite bony.
- Substitutions: If you cannot find Crucian Carp in your local US or European Asian market, you can substitute with Whole Tilapia, Porgy, or small Sea Bass. The flavor will be slightly different, but the “milky soup” technique works the same.
- Tofu (豆腐 – Dòufu): 7 oz (200g). Use Soft or Medium-Firm tofu.
- Note: If you are unsure which tofu to buy, check out my guide on Types of Tofu to ensure you get the right texture.
- Ginger (姜 – Jiāng): Several slices, peeled. This is essential for removing fishiness.
- Scallions (香葱 – Xiāngcōng): A small bunch. We will use the whites for cooking (tied in a knot) and the greens for garnish.
- Cooking Oil: 3 tablespoons. Neutral oil like vegetable, canola, or grapeseed.
- Boiling Water: Enough to cover the fish by about 1 inch (2–3 cm).
- Salt: 1 teaspoon, or to taste.
- Optional: White pepper powder or cilantro for garnish.
What You Will Need (Tools & Equipment)
- Wok or Heavy Skillet: A carbon steel wok is traditional, but a heavy-bottomed stainless steel pan or cast iron skillet works well to sear the fish evenly.
- Kitchen Paper Towels: Crucial for drying the fish.
- Kettle: To have boiling water ready.
Recipe Notes Before We Begin
- Difficulty: Easy / Intermediate (requires handling whole fish).
- Flavor Profile: Savory, fresh, slightly sweet seafood taste, creamy mouthfeel.
- The “Milky” Secret: Do not be tempted to turn the heat down to a low simmer immediately. You must boil it vigorously for the first 15 minutes to get that white color. As the saying goes in Chinese kitchens: “Low heat for clear soup, high heat for white soup” (小火出清汤,大火出白汤).
Mise en Place & How to Prep
- Clean the Fish: If your fishmonger hasn’t done it, scale and gut the fish. Crucial Step: Scrape away the black membrane inside the fish belly; this is the main source of “fishy” odor. Wash thoroughly.
- Dry the Fish: Pat the fish completely dry with paper towels, inside and out. Moisture is the enemy of a good sear.
- Prep Aromatics: Peel and slice the ginger. Wash the scallions and tie the whole stalks into a knot (this makes them easy to remove later).
- Prep Tofu: Cut the tofu into bite-sized cubes. (Curious about what tofu actually is? Read What Is Tofu for a deeper dive).
How to Make Milky Crucian Carp Tofu Soup
Step 1: Sear the Fish Heat your wok or pan over medium-high heat. Before pouring in the oil, rub the bottom of the hot pan with a slice of cut ginger. Why? This leaves a film that helps prevent sticking. Pour in the 3 tablespoons of oil. When the oil is shimmering hot, gently slide the fish in. Pan-fry until the skin is golden brown and crispy, about 3–4 minutes per side. Visual Cue: The skin should release easily from the pan when it is ready to flip. Do not force it. Searing creates the flavor foundation and helps the fish hold its shape so it doesn’t disintegrate during boiling.
Step 2: Create the Soup Once the fish is golden on both sides, carefully pour boiling water directly into the pan. Be careful of steam! Add enough water to submerge the fish by about 1 inch (2–3 cm). Note: Add plenty of water now because we will boil it aggressively, and some will evaporate. Avoid adding water halfway through. Drop in the scallion knot.
Step 3: The High Heat Boil Bring the soup to a rolling boil over high heat. Keep it boiling vigorously for 15 minutes. Visual Cue: You will see the broth turning from clear to a cloudy, milky white. This is the fat emulsifying into the liquid.
Step 4: Add Tofu and Simmer After 15 minutes of hard boiling, gently slide the tofu cubes into the soup. Reduce the heat slightly to medium, but keep a gentle boil going. Cook for another 10 minutes. This allows the tofu to absorb the savory fish flavor. (If you like mushroom soups like my Tofu Mushroom Soup with Egg, you know how well tofu absorbs broth).
Step 5: Season and Serve About 5 minutes before you are done, stir in the salt. We add salt last to protect the nutrients and keep the texture of the fish tender. Remove the scallion knot. Ladle the soup into bowls. Garnish with chopped fresh scallions or cilantro. For a warming kick, I love adding a dash of white pepper powder.
Tips to Succeed
- Dry Skin: If the fish is wet when it hits the oil, the skin will stick and tear. Dry it thoroughly!
- Boiling Water Only: Never add cold water to the hot pan with the fish. It will seize the proteins and you will end up with a greyish, clear soup instead of a milky white one.
- Don’t Over-stir: Tofu is delicate. Once added, swirl the pan gently rather than stirring vigorously with a spoon.
Common Troubleshooting & Variations (Our Test Notes)
- Problem: My soup isn’t white.
- Cause: You likely used low heat or added cold water.
- Solution: Next time, ensure the water is boiling and keep the heat high for the first 15 minutes.
- Problem: The fish skin stuck to the pan.
- Cause: Pan wasn’t hot enough, or fish wasn’t dry.
- Solution: Use the ginger-rub trick and wait until the fish releases naturally before flipping.
- Variation: If you want a simpler meal without the bones, you can check out my Home-Style Tofu recipe, which is easier to eat but less soupy.
Food Safety and Preparation
- Bone Warning: Crucian Carp is a very bony fish with small “Y” shaped bones. Please eat with caution. Do not swallow big mouthfuls of fish meat without checking. It is traditional to drink the soup and eat the tofu, picking at the fish meat carefully.
- Fish Temperature: According to the FDA, finfish should be cooked to an internal temperature of 145°F (63°C).
- Allergens: This dish contains Fish and Soy (Tofu).
About the Author & Recipe Development
I developed this recipe based on the method my mother used in our family kitchen in Sichuan. We tested this specifically on a standard Western gas range to ensure the “milky” effect is achievable without a commercial wok burner. I also verified the substitution of Tilapia, which works excellently for those who cannot find Crucian Carp.
Authoritative References
- Dietary Guidelines: Fish is a key part of a healthy diet. The USDA Dietary Guidelines recommend seafood for its nutrient density.
- Food Safety: For detailed information on handling fresh seafood, refer to the FDA Seafood Safety page.
Similar Recipes You May Like
- Creamy Tofu Soup with Clams (Nai Bai Dou Fu Tang)
- Tofu Mushroom Soup with Egg (Doufu Mogu Tang)
- Home-Style Braised Tofu (Jia Chang Dou Fu)
- Silken Steamed Tofu with Egg

Milky Crucian Carp Tofu Soup (Jiyu Doufu Tang)
Ingredients
Equipment
Method
- Clean the fish thoroughly, removing the black membrane inside the belly, and pat completely dry with paper towels.
- Heat a wok or skillet over medium-high heat and rub the surface with a slice of ginger, then add the oil.
- Pan-fry the fish for 3-4 minutes per side until the skin is golden brown and crispy.
- Pour boiling water into the pan immediately to cover the fish by 1 inch (2-3 cm) and add the scallion knot.
- Boil vigorously over high heat for 15 minutes until the soup turns milky white.
- Add the tofu chunks and reduce heat slightly to medium; simmer for another 10 minutes.
- Add salt 5 minutes before finishing; remove scallions and serve hot with a garnish of cilantro or white pepper if desired.





