
In my family, whole braised fish is a frequent centerpiece on our dinner table. This style of Northern Chinese braised whole fish is something my parents have made for as long as I can remember, especially for Sunday family dinners and important occasions like Chinese New Year. When my mom made the dish, the kitchen would be filled with the aroma of ginger, scallion, and soy sauce.
In Northern Chinese home cooking, braised fish is more common than the famous Chinese steamed whole fish. Steamed fish works the best when you start with a live fish, because it’s more delicate and uses minimal seasoning. But since Beijing is an inland city, live fish, especially sea fish, are more of a luxury. When frozen fish is more available and affordable, braised whole fish works nicely.
My mom’s braised fish, also called red braised fish, uses ginger, scallion, soy sauce, Shaoxing wine, and just a touch of sugar to bring out the natural sweetness of the fish. The key step is to pan fry the fish first. This way, the finished sauce will emulsify and create a rich silky texture.

Why Whole Fish Matters
Serving a whole fish carries special meaning in Chinese culture, particularly during Chinese New Year. The word for fish, yu (鱼), sounds the same as “abundance” (余), making it a symbol of prosperity and surplus. Traditionally, the fish is served whole with the head and tail intact, to represent completeness and a good beginning and ending to the year.
Ingredients
Fish
Since moving to the US, my favorite choice for Chinese braised whole fish has been branzino. It is quite common to find it at a well stocked fish market. The size is just right for the braising, and the meat is tender and delicate. Alternatively, other small white fish such as flounder and tilapia work too.
In my photos, I used Royal Dorade, which is a type of snapper. I chose it because it was the best looking fish the day I shot the dish. But I prefer branzino when it’s available because the meat is tenderer.

Aromatics
I used ginger and scallion in my recipe. Ginger is my default ingredient for fish, because it eliminates fishy taste and adds a clean tasting aroma. Scallion adds dimension and natural sweetness to the dish.
Seasonings
I used Shaoxing wine, light and dark soy sauce and sugar to create a simple and balanced braising broth with a clean flavor. The dark soy sauce adds a mild caramel flavor and a beautiful dark brown color to the finished sauce.
For cooking fish
I used cornstarch to coat the fish and a generous amount of neutral oil to pan fry it. The cornstarch creates a crispy surface and lets the fish absorb flavor better. It also protects the fish so it remains tender during braising.

How to make
1. Prepare the fish: Check that the fish is fully scaled by running your fingers from tail to head and descale if needed. Rinse the fish with cold water, pat it dry, and score the skin on each side, with cuts about one inch apart. Dust both sides with cornstarch.

2. Fry the fish: Use a generous amount of oil to coat the bottom of a wok, then sear the fish. It’s very important to heat up your wok until very hot, and not to move the fish once added. Once properly browned, it will be easy to release the fish from the wok.

3. Cook the aromatics: Cook the aromatics until lightly charred.

4. Braise the fish: Add the braising liquid and add back the fish.

One detail I learned from my parents is the use of foil to loosely cover the fish while braising. This helps the braising liquid to rise to the top of the fish, and helps the fish cook evenly.

Braise each side for 3 minutes. When the first side is done, flip the fish to braise the other side. This step can be challenging since the fish is very delicate. I like to use two large spatulas to flip the fish, so it stays intact.

5. Reduce the sauce: Once the fish is done, the braising liquid should also be reduced. But if it’s still very runny, turn up the heat to reduce it until slightly thickened. Remember to remove the scallion and ginger pieces before serving.

6. Serve: Plate the fish and pour the thickened sauce over it. You can also use some scallion greens to garnish the fish for color. The fish will be tender and light, yet very flavorful. You can serve it by itself or over steamed rice.

Do I need a wok?
The dish works best with a wok, because of the shape of the wok, the braising liquid raises and covers the fish better. But you can also use a large skillet to make it if you don’t have a wok. In this case, it’s even more important to use aluminum foil to cover the fish, to help the braising liquid come up to cover half of the fish.
How to serve
How This Dish Is Served
At my parents’ table, this braised whole fish is usually placed in the center, surrounded by a few vegetable dishes and a bowl of steamed rice. Everyone helps themselves, carefully lifting pieces of fish and spooning sauce over rice. I like to serve my 4-ingredient bok choy stir fry and egg drop soup for a full meal.
On the other hand, you can also serve this dish Western style – prepare a 1-lb branzino per person, then serve it as a main course with a side. The sides could be rice, steamed vegetables, or a simple soup.

Frequently asked questions
Can I double the recipe?
Yes. If using 1-lb branzino and a large wok, you can easily cook two fish at the same time. When cooking two fish, you might not need to double the sauce, since the goal is to submerge half of the fish in the braising liquid. Depending on the wok shape, you might be able to get away with 1.5 times the amount of braising liquid.
How do I know when the fish is done?
The fish is ready when the flesh easily separates from the bone and turns opaque all the way through. You can gently pull at the thickest part with chopsticks or a fork. If it lifts cleanly, it’s done. Avoid overcooking, as delicate white fish can dry out quickly.
Can I make this dish ahead of time?
This dish is best served fresh and hot, right after cooking. However, you can prepare it a few hours in advance and gently reheat it over low heat, spooning the sauce over the fish to keep it moist. Avoid reheating at high heat, which can toughen the fish.
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.

Chinese Braised Whole Fish (红烧鱼)
Ingredients
- 1 (1 to 1.5 lbs) whole branzino , or other white fish (*Footnote 1)
- 1 tablespoon cornstarch
- 3 tablespoons vegetable oil
- 3 scallions , whites cut into 2” pieces, some greens reserved and thinly sliced for garnish
- 1 thumb ginger , sliced
- 1 cup water
- 2 tablespoons Shaoxing wine
- 2 tablespoons light soy sauce
- 1 teaspoon dark soy sauce
- 2 teaspoons sugar
Instructions
- Score the fish with 1” space in between cuts. Thoroughly pat the fish dry with paper towels. Coat the fish with a thin layer of cornstarch. Shake off the excess cornstarch.
- Prepare a piece of aluminum foil that can fit in your wok and fully cover the fish.
- Heat the oil in a wok over medium-high heat until smoking. Swirl the wok to coat the bottom with oil, so the fish will be fully in contact with the oil once added. Very carefully lower the fish into the wok. Let cook without touching for 2 minutes. Use a spatula to carefully release the fish and flip it. Brown the other side for 2 minutes. Transfer the fish to a plate and set aside.
- Your wok should still have some oil left. Add or reduce the oil if needed, so there’s about 1 to 2 tablespoons of it left. (*Footnote 2) Add scallion whites and ginger. Stir and cook for 20 seconds to release fragrance.
- Add water, Shaoxing wine, light soy sauce, dark soy sauce and sugar. Bring to a boil and add back the fish. Place the aluminum foil on top so it loosely covers the whole fish. Braise over medium heat for 3 minutes (*Footnote 3), making sure the liquid is boiling the whole time, but not so much that it reaches a rolling boil. Remove the foil, carefully flip the fish, then replace the foil. Braise for another 3 minutes. Remove the foil. You can test the texture by gently pulling off a piece of meat and it should come off the bone easily. Transfer the fish to a serving plate.
- Remove and discard the scallion and ginger pieces. The sauce should be reduced and slightly thickened. If it still looks very watery, turn the heat to high to reduce the sauce for 1 to 2 minutes. Cook and stir until the sauce thickens enough to thinly coat the back of a spoon, then pour it onto the fish. Garnish with scallion greens. Serve hot as a main dish.
Notes
- I used Royal Dorade in the pictures, because it was the freshest fish the day I shot this recipe. But I think branzino works better in this recipe because the meat is very tender.
- If you use a fattier fish, the fish will render off oil as it cooks and you should remove some oil before proceeding the next step.
- For larger fish that are around 1.5 lb, braise the fish for 4 minutes on each side.
- To make this dish gluten-free: use tamari to replace soy sauce. Use dry sherry to replace Shaoxing wine.
Nutrition
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.