Chinese milky fish soup is one of those dishes that feels almost magical the first time you cook it. With just fish, water, ginger, and scallions, you end up with a rich, opaque, creamy-looking broth that is light and hearty. There’s no dairy involved.
This soup is especially popular in Chinese home cooking as a nourishing meal for postpartum recovery, whenever you want something light yet nourishing in cold weather, or when you want something light yet deeply satisfying.
Milky fish soup for postpartum recovery
In Traditional Chinese Medicine (TCM), milky fish soup is considered a warming dish that supports overall vitality and helps new moms to produce milk. Fish is believed to strengthen the spleen and stomach, promote digestion, and replenish qi (energy). The milky broth, rich from emulsified fish collagen and natural fats, is thought to help nourish the yin and generate bodily fluids.
Nutritionally, the soup is high in easily digestible protein, omega-3 fatty acids, and minerals from the bones, while tofu adds plant-based protein and calcium. Despite its creamy appearance, the broth contains no dairy and is relatively light, making it both comforting and gentle on the body.
Right after I gave birth, my Cantonese postpartum nanny made this dish frequently, along with pork ribs and lotus root soup and pork and corn soup. She would make a big pot of soup every morning, and I’d sip the soup throughout the day instead of drinking water. I reserved the fish and tofu from the soup to eat with a dipping sauce for lunch. When I was breastfeeding, I was under supply at the beginning and had to supplement with formula. But thanks to my nanny, my milk supply caught up within a few weeks. These days, I still frequently make this dish in the winter when I feel under the weather or am recovering from a cold.


Ingredients
What type of fish to use
According to my postpartum nanny, white river carp is a must-have for milky fish soup. It is quite small, just about the size of your hand, with a silvery white color. Unfortunately, it’s a regional fish and quite hard to find in the US. After running around to all the fish markets in Chinatown, the most similar fish I could find was sea carp, which has a slightly different look from white carp but is similar in size and taste. And that’s what I chose to use in this recipe.
If you cannot find this specific type of carp, you can use other types of mild white fish, such as branzino, to cook this soup. You can even use fish bones (a large quantity) to make milky fish soup, as long as you get the techniques right.


Soup ingredients
The ingredients for milky fish soup are very simple because the fish is the star of the show.


- Neutral oil: This is an important ingredient to pan fry the fish. I used vegetable oil but any high oil with a smoking point would work.
- Shaoxing wine: I used a small amount of wine to deglaze and add some earthy umami. But you can skip this one if you prefer to have no alcohol in your soup.
- Ginger: A main aromatic to add aroma.
- Scallion: I use the white part to braise the fish to add a subtle sweetness, and the green parts to garnish the finished soup.
- Tofu: Tofu is added near the end for protein and substance, turning the soup into a complete and balanced meal. I used firm tofu, but other types of tofu such as soft tofu are a common choice as well. If using soft tofu, add it at the very end and only cook it for 2 to 3 minutes.
- Salt: It’s the main ingredient to season the soup, to bring out the aroma.
- White pepper: This is another popular ingredient to brighten up the soup. However, I sometimes skip it if I want to enjoy the pure fish broth without any distractions.
How to make
1. Pan fry the fish: This is a key step to produce the milky white soup. Once you add the fish, let it cook without touching until completely browned on both sides.


2. Fry the aromatics: I like to use a lot of ginger and some scallion whites to add aroma to my soup. I add them after flipping the fish to brown the other side. The aromatics sear nicely along with the fish.


3. Braise the fish: I like to use a small amount of Shaoxing wine to deglaze the wok before adding the hot water. Since the wok is very hot, it will let out a lot of steam when you add the liquid. Be careful and only add the liquid down the side of the wok to avoid burning your hands. Make sure to keep the water at a rolling boil the whole time, to create the white soup.


4. Add tofu: I like to add the tofu halfway through the cooking. If using soft tofu, you can add it at the very end and only cook it for 1 to 2 minutes.


5. Finish up: You can finish up the soup by adding more salt and pepper, and scallion greens to garnish.


Tips for the perfect milky broth
- Brown the fish deeply. This step is crucial for both flavor and color.
- Use boiling water, not cold water. I like to prepare a pot of water boiling on another burner before searing the fish. This jump-starts the emulsification.
- Keep the soup at a rolling boil. It keeps the emulsification going and the soup will gradually turn white. Gentle simmering won’t produce the milky color.
How to serve
For postpartum recovery, you can make the soup in the morning and sip it throughout the day as a bone broth.
I also like to make this dish as a side dish to serve with my dinner, along with a vegetable stir fry and steamed rice. I also make a simple dipping sauce with 1 part soy sauce, 1 part vinegar and a drizzle of sesame oil (or chili oil if you prefer). I would dip the fish meat and tofu into the sauce and eat it with rice.
Here are some stir fries that my postpartum nanny made to serve with this soup: Spinach and Egg Stir Fry, Ground Turkey and Tofu Scramble, and Detox Stir Fry. All of them are easy to digest and nutritious, making them very good for any kind of recovery.
Frequently asked questions
Why didn’t my soup turn white?
The most common reasons:
- The fish wasn’t browned enough.
- The water wasn’t boiling hot.
- The soup wasn’t cooked at a strong boil.
The rolling boil is essential for emulsification.
Can I use fish fillets?
Whole fish work best. Fish bones and skin are what give the soup its body and creamy texture. Fillets will produce a lighter, clearer broth.
Should I add white pepper?
White pepper is traditional and adds warmth and fragrance. However, the soup tastes very pure without it. Try adding a pinch of white pepper to a small bowl first to see which version you prefer.
Can I eat the fish from the soup?
Yes. It’s high in protein, low in fat, and very nourishing. I like to braise the fish for 20 minutes, long enough to produce a flavorful soup without overcooking the fish too much. The fish still tastes good if served with a dipping sauce. You can braise the soup longer, up to 1 hour, for a richer consistency. But the fish usually won’t taste as good after this much cooking.
Chinese Cooking Made Easy
Are you new to this website? This free email series is a great place to start. I’ll walk you through a few of my most popular recipes and show you how and why they work. You’ll quickly start to cook better Chinese food in your own kitchen.
Milky fish soup is a famous soup for postpartum recovery in Traditional Chinese Medicine (TCM) and it’s a soup I frequently make when recovering from a cold. Made with just a few ingredients, the soup is comforting and nourishing. My recipe explains all the key points to get a milky white soup without actually using any cream or milk.
Prevent your screen from going dark
When you purchase the fish, ask the fishmonger to gut and scale the fish. Before cooking, check to see if the fish is fully scaled by running your fingers from the tail of the fish to the head. Use kitchen shears to scale further if needed. Wash the fish thoroughly with cold tap water and drain. Score the fish with 1” space in between cuts. Dry the fish very thoroughly with paper towels.
Boil 6 cups of water, then reduce to low heat to keep it hot.
Add oil into a wok and heat over medium-high heat until smoking. Lower the fish carefully into the wok. Let cook without moving until the bottom is brown, 3 to 4 minutes. Flip the fish and add the ginger and scallion whites into the oil. Cook for 3 to 4 minutes until the bottom of the fish is browned.
Swirl in the Shaoxing wine along the side of the wok to deglaze. Use a wok spatula to detach the fish from the wok. Pour in the boiling water carefully down the side of the wok (*Footnote 3).
Cook over high heat until boiling, then turn to medium-high heat to maintain a rolling boil. Cook covered for 10 minutes. Add tofu and salt. Keep cooking for another 10 minutes.
Turn off the heat. Add white pepper if using. Adjust seasoning with more salt if needed. Garnish with scallion greens. Serve hot.
Ingredient Substitution Guide
- In China, this dish traditionally uses white carp, which is a type of river carp that’s small and very nutritious. The most similar fish I could find in my Chinatown was sea carp, which has a similar size. But if you cannot find the specific type of carp, you can use a mild white fish such as branzino to cook the soup.
- White pepper brightens up the soup and is traditionally used in it. However, the soup will taste more pure and fragrant without white pepper. You can transfer the soup to a small bowl and add a very small pinch of white pepper to see if you like the taste, before adding more.
- The wok will be very hot and will produce a lot of steam as soon as the water hits the wok. Be very careful to avoid burning your hands when pouring in the water. This step is important to emulsify the fat so the soup turns white.
Serving: 1serving, Calories: 112kcal, Carbohydrates: 2.2g, Protein: 7.3g, Fat: 8.5g, Saturated Fat: 1.7g, Cholesterol: 11mg, Sodium: 349mg, Potassium: 39mg, Fiber: 0.3g, Sugar: 1.2g, Calcium: 60mg, Iron: 1mg
Did you make this recipe?
I’d love to hear how it turned out for you! Please take a moment to leave a 5-star rating ⭐️ and share your thoughts in the comments further down the page. It really helps others discover the recipe too.
