The Best Chinese Steamed Fish Recipe for Tender, Flaky Fish
Walk into any Chinese restaurant on a Sunday, and you’ll probably see a whole steamed fish on almost every table. It’s that dish. The one that looks fancy but is actually one of the easiest things you can make. This Chinese steamed fish recipe brings that same restaurant magic straight to your kitchen – no special skills needed.
Let’s get into it.
What Kind of Fish Should You Use?
This matters more than people think. You want a whole white fish. Something with soft, flaky flesh that steams well and soaks up the sauce.
Good options include sea bass, branzino, red snapper, or grouper. Any of these works great. Ask your fishmonger to gut and descale it for you – most fish counters do this for free.
And here’s the one rule that makes a real difference: buy your fish the day you cook it. Fresh fish tastes completely different from fish that’s been sitting for a few days. Look for clear eyes on the fish, not cloudy ones. Clear eyes mean fresh fish. That’s your best guide at the market.
Everything You Need
For the Fish
- 1 whole fish (about 1.5 to 2 lbs), gutted and descaled
- 3 to 4 scallions, whites and greens separated
- 1 thumb-sized piece of fresh ginger, cut into thin strips
- A small handful of fresh cilantro, for serving
For the Sauce
- 3 tablespoons light soy sauce
- 2 tablespoons Shaoxing wine (or dry sherry as a backup)
- 2 tablespoons neutral oil (vegetable or canola)
- ¼ cup hot water
- 1 teaspoon sugar
- ¼ teaspoon white pepper
For the Sizzling Oil Finish
- ¼ cup neutral oil
That’s it. Simple stuff. Most of it is probably already in your pantry.
Setting Up Your Steamer (No Fancy Equipment Needed)
A lot of people hear “steaming” and immediately think they need special gear. You don’t.
Here’s a simple setup that works perfectly at home. Use a large wok or a deep pot. Place a metal rack inside – the kind used for cooling baked goods works fine. If you don’t have a rack, a clean, empty tin can with both ends removed does the same job. The point is just to keep your plate lifted above the water level.
Fill the bottom of the wok with water, but not so much that it touches the plate. Then bring the water to a full boil before you put the fish in. The steam from boiling water is what cooks the fish – not the water itself.
How to Make It, Step by Step
Step 1 – Score and Stuff the Fish

Pat the fish dry with a paper towel first. Then make a few diagonal cuts along both sides of the fish – about 2 inches long and spaced evenly. These cuts help the fish cook evenly all the way through. They also let the sauce get deep into the flesh later, which means more flavor in every bite.
Now, stuff the cavity with the scallion whites and half the ginger strips. This is what gives the fish that classic whole steamed fish with ginger and scallions aroma – fragrant, clean, and slightly sweet.
Step 2 – Steam the Fish

Place the fish on a heatproof plate and set it on your steamer rack inside the wok. Cover with a lid and steam over medium-high heat for 8 to 10 minutes.
You’ll know it’s done when the flesh turns fully white and opaque. If you press it gently and it flakes apart, it’s ready. Don’t oversteam it – the fish will keep cooking slightly even after you take it off the heat.
Once done, carefully lift the plate out. Pour off any liquid that has pooled on the plate. This step is important. That liquid is watery and bland. If you leave it there, it dilutes your sauce and weakens the whole dish.
Step 3 – Make the Sauce

While the fish steams, mix together the soy sauce, Shaoxing wine, oil, hot water, sugar, and white pepper in a small saucepan. Heat it on low until the sugar dissolves. Give it a quick stir and take it off the heat.
Pour this warm sauce slowly all over the fish. Make sure it gets into the slits you cut earlier. The soy sauce steamed fish flavor comes from this step – don’t rush it.
Step 4 – The Sizzling Oil Finish

This is the step that takes the dish from good to great. It’s also the most fun part.
Lay the scallion greens and the remaining ginger strips on top of the fish. Then heat ¼ cup of neutral oil in a small saucepan until it’s very hot – around 375°F if you have a thermometer. If you don’t, the oil is ready when a small piece of scallion dropped in sizzles immediately.
Now carefully pour the hot oil directly over the scallions and ginger on the fish. It will sizzle loudly and smoke a little. That’s exactly what you want. The hot oil blooms the aromatics and creates that irresistible smell you get at Chinese restaurants.
Finish with fresh cilantro on top and serve right away.
Why This Dish Works So Well
Cantonese steamed fish is built on one simple idea: let the fish speak for itself. There’s no heavy breading, no thick sauce, no strong marinade. Just clean flavors layered in the right order.
The ginger removes any fishiness. The soy sauce adds depth. The hot oil brings everything together in a way that no other cooking method can copy. And because steaming is so gentle, the fish stays incredibly soft and moist all the way through.
That’s why this traditional Chinese fish recipe has been on dinner tables for hundreds of years. It works because it’s honest, simple food.
Mistakes to Avoid
Don’t skip drying the fish. Patting it dry before steaming helps the skin stay intact and keeps the sauce from getting too watery.
Don’t add cold oil. The sizzling oil only works if it’s genuinely hot. Warm oil just sits there. Hot oil transforms the aromatics and creates that signature crackle.
Don’t oversteam. Eight to ten minutes is usually enough for a 1.5 lb fish. Every extra minute makes the flesh tougher and drier. When in doubt, check it at the 8-minute mark.
Don’t skip pouring off the steaming liquid. It might seem like an extra step. But that pooled liquid makes the sauce weak and bland. Pour it off every time.
What to Serve It With
This easy steamed fish Chinese recipe is best with plain steamed white rice. The rice soaks up the sauce on the plate, and that combination is genuinely one of the best things you’ll eat all week.
Beyond rice, it pairs well with stir-fried greens like bok choy or gai lan. Add a simple egg fried rice, and you’ve got a proper Chinese family dinner on the table in under 30 minutes.

Storing Leftovers
Store any leftovers in an airtight container in the fridge. Spoon the sauce over the fish before you close the lid – it keeps the fish moist and flavorful. It stays good for up to 3 days.
Reheat gently in the microwave. Don’t overheat it or the fish will dry out. Just warm it through and eat it quickly.
A Few Final Notes
This dish is a great example of what authentic Chinese seafood recipe cooking is all about. Minimum fuss, maximum flavor. Good ingredients treated with care.
Once you try this Chinese steamed fish recipe at home, ordering it at a restaurant might feel a little unnecessary. It really is that doable – and that good.
The Best Chinese Steamed Fish Recipe for Tender, Flaky Fish
Course: MainCuisine: ChineseDifficulty: Easy4
servings10
minutes10
minutes260
kcalThis Chinese Steamed Fish Recipe is a classic Cantonese dish featuring tender whole fish, fresh ginger, scallions, and a flavorful soy sauce dressing. Light, healthy, and ready in just 20 minutes, it’s perfect for weeknight dinners or special occasions.
Ingredients
Fish and aromatics:
1 whole fish (1.5–2 lbs), gutted and descaled
4 scallions, whites and greens separated
1-inch piece of fresh ginger, sliced into strips
Fresh cilantro, for garnish
Sauce:
3 tbsp light soy sauce
2 tbsp Shaoxing wine
2 tbsp neutral oil
¼ cup hot water
1 tsp sugar
¼ tsp white pepper
Sizzling oil:
¼ cup neutral oil
Directions
- Pat fish dry. Score both sides with 2-inch diagonal cuts. Stuff scallion whites and half the ginger into the fish cavity.
- Steam the fish on a heatproof plate over boiling water for 8–10 minutes. Pour off any liquid from the plate once done.
- Mix all sauce ingredients in a small saucepan over low heat until sugar dissolves. Pour over fish.
- Lay scallion greens and remaining ginger on top of the fish. Heat ¼ cup oil until very hot (375°F). Pour over the aromatics – it will sizzle. Garnish with cilantro and serve.
Notes
- Fresh fish delivers the best flavor and texture.
- Use very hot oil for the signature restaurant-style sizzle.
- Sea bass, branzino, red snapper, and grouper all work well.
- Check the fish after 8 minutes to avoid overcooking.
- Pouring off the steaming liquid prevents a watery sauce.