Milky Crucian Carp Tofu Soup (Jiyu Doufu Tang 鲫鱼豆腐汤)

Some links may be affiliate links. As a chef in China, I only recommend tofu brands, sauces, and cookware I actually cook with in my own kitchen. You can read my full disclosure here.

Growing up in China, this soup was the ultimate definition of “tenderness.” We often describe it as tasting the “final gentleness of the fish.” It is famous not for a complex list of spices, but for its magical, milky-white broth that looks like cream but contains absolutely no dairy. It is savory, deeply umami-rich, and incredibly comforting.

Milky Crucian Carp Tofu Soup

In traditional Chinese culture, and in my own family, this soup is revered for its nutritional value. It is the go-to dish for recovery and is famously served to new mothers to support health. But beyond its functional benefits, it is simply delicious—a perfect harmony between the sweet, fresh fish and the soft, silky tofu.

What is Crucian Carp Tofu Soup?

Crucian Carp Tofu Soup (Jiyu Doufu Tang) is a classic Chinese home-style dish. The star is the Crucian Carp (鲫鱼), a freshwater fish known for its sweet, tender meat, paired with soft tofu and aromatic ginger and scallions.

The hallmark of a successful Jiyu Doufu Tang is the milky white broth (奶汤, Nai Tang). This isn’t achieved by adding milk or cream. Instead, it is a culinary chemical reaction—an emulsion created by frying the fish first and then boiling it vigorously with hot water, causing the proteins and fats to suspend in the liquid.

About the Author & Recipe Development

As a professional chef running a restaurant in China, I have made this soup hundreds of times. In my test kitchen, I’ve experimented with cold water versus boiling water, different frying times, and various tofu types. The recipe below is the result of those tests—it is the most reliable method to ensure your soup turns white every single time and has zero fishy odor.

Why This Recipe Works

  • The “Milky” Science: By frying the fish first and adding boiling water, we create a rapid emulsion of the fish oils and gelatin, turning the soup opaque and creamy white instantly.
  • Ginger Rub Technique: Using a slice of ginger to rub the pan before adding oil creates a protective layer (almost like a non-stick coating) that prevents the delicate fish skin from tearing.
  • Flavor Balance: The combination of frying the aromatics and the fish creates a Maillard reaction that adds depth, ensuring the soup is savory, not bland.

Ingredients for Crucian Carp Tofu Soup

Here is what you will need. The list is short, so ingredient quality matters.

  • Crucian Carp (1 whole, about 1 lb / 450-500g): This is the traditional choice.
    • Note: Crucian carp has many small intermuscular bones. If you are feeding young children or are uncomfortable with bones, you can substitute with Whole Tilapia or Sea Bass, though the flavor will be slightly less sweet.
  • Tofu (1 block, approx. 14 oz / 400g): I recommend Soft Tofu or Silken Tofu for this soup. It should be tender enough to wobble but hold its shape.
    • Reference: If you are unsure about which tofu to buy, check out my guide on Types of Tofu to spot the difference.
  • Ginger (1 small chunk): Sliced. Essential for neutralizing fishiness.
  • Scallions (1 small bunch): Divided. Keep 2-3 stalks whole (tied in a knot) for stewing, and chop the rest for garnish.
  • Boiling Water: Critical for the soup color.
  • Oil & Salt: Neutral oil (like canola or vegetable) for frying and salt to taste.

What You Will Need (Tools & Equipment)

  • Wok or Deep Frying Pan: A carbon steel wok is traditional, but a good non-stick pan works if you are worried about the skin sticking.
  • Kitchen Paper Towels: Essential for drying the fish.
  • Kettle: To boil water before you start cooking.

Recipe Notes Before We Begin

  • Safety Warning: Crucian carp is a bony fish. Please eat with care. Do not swallow large mouthfuls without checking for bones.
  • The Black Film: Inside the fish’s belly, there is often a black membrane. You must scrub this off completely. It is a major source of fishy odor and bitterness.
  • Tofu Choice: While I love firm tofu in dishes like Home-Style Tofu, for this soup, soft tofu absorbs the broth better.

How to Make Milky Crucian Carp Tofu Soup

Step 1: Prep the Fish and Ingredients

Ask your fishmonger to scale and gut the fish. When you get home, wash it thoroughly. Crucial Step: Check the belly cavity and scrape away the black film lining the stomach walls. Rinse until clean.

Pat the fish completely dry with paper towels—inside and out.

  • Why? Moisture causes hot oil to splatter and lowers the pan temperature, making the skin stick.

Cut the tofu into 1-inch cubes. Slice the ginger. Tie half the scallions into a knot and chop the rest for garnish.

Prep the Fish and Ingredients

Step 2: The Ginger Rub & Frying

Heat your wok or pan over medium-high heat. Before adding oil, take a slice of ginger and rub it vigorously all over the bottom of the hot pan.

  • Why? The ginger juice creates a temporary non-stick layer.

Add 2-3 tablespoons of oil. When the oil is shimmering hot, gently slide the fish in. Do not move it. Let it fry for about 3-4 minutes until the bottom is golden brown and the skin releases naturally from the pan. Flip carefully and fry the other side until golden.

  • Chef’s Tip: Don’t rush this. A good sear creates flavor and helps the soup turn white later.

Drop in the remaining ginger slices and fry briefly in the oil until fragrant.

The Ginger Rub & Frying

Step 3: The “Milky” Transformation

Turn the heat up to high. Pour in a kettle of boiling water (enough to cover the fish by an inch).

  • Reaction: You will see the water turn white almost immediately. The violent boiling emulsifies the fat droplets into the water. Drop in the scallion knot.
The "Milky" Transformation

Step 4: High Heat Boil

Cover the pot. Boil on high heat for 5 minutes. Then, turn the heat down to medium but keep it at a steady simmer (not a weak bubble) for another 10 minutes.

  • Visual Cue: The soup should be creamy and opaque white now.
High Heat Boil

Step 5: Add Tofu and Simmer

Gently slide the tofu cubes into the soup. Turn the heat to medium-low and simmer for 10 minutes.

  • Why? This allows the tofu to heat through and absorb the savory fish broth. It reminds me of the texture in my Tofu Mushroom Soup with Egg.
Add Tofu and Simmer

Step 6: Season and Serve

About 3 minutes before turning off the heat, add salt to taste. (I usually start with 1 teaspoon and adjust).

  • Note: Adding salt too early can cause the proteins in the fish to tighten up, making the meat tough.

Remove the scallion knot and ginger slices (optional). Turn off the heat. Ladle into bowls and sprinkle with the fresh chopped scallions.

Season and Serve

Tips to Succeed

  • Water Temperature: Never add cold water to the hot fried fish. It will “shock” the protein, making the meat tough, and the soup will likely stay clear rather than turning milky white.
  • Don’t Over-flip: The fish is delicate. Fry one side completely before flipping. Constant flipping breaks the skin.
  • Sufficient Oil: You need a little more oil than a standard stir-fry. The oil is what emulsifies to make the white color.

Common Mistakes When Making Fish Soup

  • “Why is my soup clear and not white?”
    • Cause: You likely used cold water, didn’t fry the fish long enough, or simmered it on too low heat initially.
    • Fix: Next time, ensure the water is boiling and maintain a high rolling boil for the first 5-8 minutes to force the emulsion.
  • “Why does the soup taste fishy?”
    • Cause: The black membrane in the belly wasn’t removed, or the ginger was omitted.
    • Fix: Scrub the belly cavity thoroughly. If you are very sensitive to fish smells, you can also add a tablespoon of Shaoxing wine during the boiling stage.
  • “My tofu fell apart.”
    • Cause: You stirred too vigorously.
    • Fix: Once the tofu is in, use a ladle to gently push the liquid, don’t stir rapidly. If you struggle with soft tofu, try a firmer variety or check out my recipe for Homemade Tofu & Silken Tofu Pudding to understand textures better.

Serving Suggestions

This soup is mild and comforting, making it a perfect center for a meal with stronger flavors.

Food Safety and Preparation

  • Bone Safety: As mentioned, Crucian carp is bony. I recommend using chopsticks to gently pick the meat from the bones.
  • Fish Freshness: Look for clear eyes and red gills. Fresh fish is non-negotiable for this soup as there are minimal seasonings to hide spoilage.
  • Allergens: Contains Fish and Soy (Tofu).

Authoritative References

Milky Crucian Carp Tofu Soup
Hi, I’m Jason Guo!

Milky Crucian Carp Tofu Soup (Jiyu Doufu Tang 鲫鱼豆腐汤)

A traditional Chinese healing soup featuring sweet Crucian carp and soft tofu in a naturally milky-white, savory broth. No dairy required.
Prep Time 15 minutes
Cook Time 25 minutes
Total Time 40 minutes
Servings: 3 servings
Course: Soup
Cuisine: Chinese
Calories: 210

Ingredients
  

  • 1 whole Crucian Carp approx. 450g / 1 lb, scaled and gutted
  • 14 oz Soft Tofu or Silken Tofu 400g, cubed
  • 1 inch piece Fresh Ginger sliced
  • 2 stalks Scallions (green onions) divided
  • 3 tbsp Vegetable Oil neutral oil
  • 4 cups Boiling Water
  • 1 tsp Salt or to taste

Equipment

  • 1 Wok Carbon steel preferred
  • 1 Kettle For boiling water

Method
 

  1. Clean the fish thoroughly. Be sure to scrape off the black film inside the belly cavity to remove fishiness. Rinse and pat the fish completely dry with paper towels.
  2. Cut the tofu into 1-inch cubes. Slice the ginger. Tie the white parts of the scallions into a knot and chop the green parts for garnish.
    Prep the Fish and Ingredients
  3. Heat a wok or frying pan over medium-high heat. Rub a slice of ginger over the surface of the pan (to prevent sticking), then add the oil.
  4. When the oil is hot, gently add the fish. Fry undisturbed for 3-4 minutes until the skin is golden and releases naturally. Flip carefully and fry the other side until golden.
    The Ginger Rub & Frying
  5. Add the remaining ginger slices. Turn heat to high and immediately pour in the boiling water. The soup should turn white quickly. Add the scallion knot.
    The "Milky" Transformation
  6. Cover and boil on high heat for 5 minutes. Reduce heat to medium and simmer for another 10 minutes to develop the milky broth.
    High Heat Boil
  7. Gently slide the tofu cubes into the soup. Reduce heat to medium-low and simmer for 10 minutes.
    Add Tofu and Simmer
  8. Add salt to taste about 3 minutes before the end of cooking. Remove the scallion knot. Garnish with chopped scallions and serve hot.
    Season and Serve

Notes

Tips to Succeed:

  • Water Temp: You must use boiling water to achieve the milky white color.
  • Fish Prep: Removing the black membrane in the belly is crucial to avoid a bitter taste.
  • Safety: This fish contains small bones. Eat with caution.
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.

Leave a Comment

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

*

Recipe Rating