
In China a fish course is a must at celebration meals, because the word for fish sounds like the word for surplus and stands for abundance at the New Year table. The traditional showpiece is a whole river fish, filleted and folded so the skin curls back, scored, fried into a blossom shape, then drizzled with sauce, which looks stunning but is hard to manage in a home kitchen. My fillet version keeps that festive spirit, and if you want the classic route I also have an authentic Chinese steamed fish I highly recommend.
When I cooked in China, the New Year fish was almost always a whole live fish from the wet market. After moving to Austin and then New York, I found it hard to get live fish suited to Chinese cooking, so I started developing fish recipes that hold the spirit of that whole fish course without the sourcing trouble. This one has been my go-to holiday centerpiece ever since.
I make this in two parts. First I score, coat, and shallow fry the fillets until the crust is nice golden and crisp, which uses far less oil than deep frying, then I simmer a quick ginger and garlic sauce with onion and bell pepper and spoon it over the fish. I love that it takes me only 40 minutes in total, so I can easily have a centerpiece that looks absolutely stunning for my family and friends.

Ingredients
I know it looks like a long list, but it breaks down into a few small bowls you can prep before the oil heats up, and almost everything lives in a basic Chinese pantry. Here is what I use:

Fish: White fish with slightly fatty and firm flesh is the best option.
- My personal favorite is catfish. It’s affordable, very fatty, and holds together well during cooking. Seabass, perch, trout, and snapper are great options as well. Avoid delicate fish such as cod, which will fall apart easily once cooked.
- For size, smaller and thinner fillets work better, because they require less oil for cooking and will crisp up better. It’s best if the fillets are about 1/2” or 2/3” (1 to 1.5 cm) thick. The largest cut I used weighed 1/2 pounds per fillet, and the thick part was about 1” (2.5 cm). I wouldn’t recommend any cut that’s larger than this.
- A skin-on cut is preferred. You can score the fish deeper if you’re using a skin-on cut, so the result will be crispier. Not only does the skin hold the fish together so it won’t fall apart, but it also tastes heavenly once crisped up. But you can use skinless fillets to cook this dish as well.
- When possible, get the freshest fillets you can. I would choose a great-looking whole fish and ask the fishmonger to fillet it for me at the fish market.
The coating: I toss the fillets in cornstarch seasoned with salt and white pepper, which is what gives the fish its light, crackly crust. Cornstarch fries up crisper and lighter than flour does here.
Ginger, garlic, and vegetables: Ginger, garlic, and onion go into the sauce for fragrance, and sliced bell pepper adds color and a fresh crunch at the end. I finish with a scatter of toasted sesame seeds at the table when I have them.
The sweet and sour sauce: This is where the flavor sits. I balance rice vinegar and sugar for the sweet and sour base, Shaoxing wine and soy sauce for depth, and chili garlic sauce for a little heat and color. A spoonful of cornstarch stirred in loosens into the sauce and thickens everything into a glossy coat that clings to the fish.
How to Make
1. Mix the coating: In a tray large enough to hold one fillet, stir together the cornstarch, salt, and white pepper.

2. Mix the sauce: In a bowl, combine all the sauce ingredients and stir until the sugar and cornstarch dissolve.
3. Score the fish: Cut a crosshatch pattern across the flesh, about 2.5 cm apart. For skin-on fillets, slice down to the skin but not through it. For skinless fillets, cut through about two thirds of the way so they hold together.
4. Set up a rack: Set a wire rack over a large tray to hold the fried fish.
5. Heat the oil: In a deep pan large enough for one fillet, heat 2.5 cm of oil over medium-high heat until it reaches 375°F (190°C). For smaller fillets you can use less oil, as long as it covers two thirds of the fish.
6. Coat the fish: Working with one fillet at a time, press it into the cornstarch mixture skin-side down and spoon more over the top. Lift it and shake off the excess, making sure cornstarch settles into the scored cuts.

7. Fry the fish: As soon as it is coated, carefully lay it flesh-side down into the hot oil. Cook without moving it until the bottom is golden, about 3 minutes for smaller fillets and 4 for larger ones, then flip and cook the other side for 2 to 3 minutes.

8. Drain: Transfer the fried fish to the rack to drain off the extra oil.

9. Cook the aromatics: In a medium pan, heat a little oil over medium heat, then add the ginger and garlic and stir until fragrant, about 30 seconds.

10. Add the onion: Add the sliced onion and stir a few times.

11. Simmer the sauce: Stir the sauce again to loosen the cornstarch, pour it into the pan, and cook until it comes to a boil.

12. Add the peppers: Once the sauce starts to thicken, add the bell peppers, stir for a few seconds until glossy and thick, then transfer to a bowl right away.

13. Plate and serve: Arrange the fish on a platter or individual plates, spoon the sauce with the peppers and onion over each fillet, top with sesame seeds if using, and serve immediately.

My Cooking Tips
Keep the fillets small and thin: Thinner cuts crisp better and need less oil. Anything much thicker than 2.5 cm at the widest point is hard to cook through without overbrowning the crust.
Bring the oil up to temperature first: Coat the fish only once the oil is already at 375°F. If you dredge the fillets too early the cornstarch turns pasty and the crust will not crisp.
Shallow fry to save oil: Shallow frying uses far less oil than deep frying and works just as well for fillets. If you own a deep fryer, that route works too.
Do not over-reheat the sauce: If you make the sauce ahead, warm it briefly before serving. Boiling it again breaks down the cornstarch and the sauce turns watery.
Cook the vegetables lightly: Chinese sweet and sour sauces keep the peppers almost raw for crunch. I cook the onion a touch longer so its flavor softens, but I pull the peppers off the heat while they are still bright.
Serving Suggestions
I serve sweet and sour mandarin fish as the centerpiece and let it take the main spot the way a whole fish would at a holiday dinner. I place over plain steamed rice that catches the extra sauce, with a green dish like my Chinese broccoli with oyster sauce on the side to balance the richer fried fish.
When I’m hosting, I add a second protein and a soup so no two dishes repeat, usually a plate of braised chicken with mushrooms for the savory contrast and I can cook it ahead, and a pot of hot and sour soup because it’s always a crowd pleaser. Enjoy it!
Frequently Ask Questions
Why is my fried fish not crispy?
The two usual culprits are oil that is not hot enough and fish that sat in the cornstarch too long before frying. Heat the oil to 375°F, coat each fillet right before it goes into the pan, and fry only one or two pieces at a time so the oil temperature does not drop.
How do I keep the fillets from falling apart?
Skin-on fillets hold their shape best, so I score down to the skin but never through it. For skinless fish I cut only about half of the way in, and I leave the fillet untouched while the first side fries so the crust sets before I flip it
How long do I store this?
This dish is at its best the minute it is fried, so I plan to finish it the same day. Leftovers keep in the fridge for about a day, and I re-crisp the fish in a hot oven rather than the microwave, which leaves it soggy. I do not freeze it, because the crust turns soft and the cornstarch sauce separates once thawed.
Want to Save This Recipe?
Enter your email below & we’ll send it to your inbox. Plus get great new recipes from us every week!

Sweet and Sour Mandarin Fish
Ingredients
- 4 fillets (6 oz per fillet) white fish , skin-on preferred (catfish, bass, perch, trout, and snapper are suitable)
Fish coating
- 1/2 cup cornstarch
- 1 teaspoon salt
- 1/2 teaspoon white pepper
Sauce
- 1 inch ginger , sliced into thin strips
- 4 cloves garlic , sliced
- 2 tablespoons shaoxing wine (or dry sherry)
- 2 tablespoons soy sauce
- 1/2 cup rice vinegar
- 1/3 cup sugar
- 1/4 cup chili garlic sauce
- 1/4 cup water
- 1 1/2 tablespoons cornstarch
Cook
- Vegetable oil for shallow frying
- 1 bell pepper , sliced
- 1/4 yellow onion , sliced
- Toasted sesame seeds for garnish (Optional)
Instructions
Prep
- Mix the fish coating ingredients in a tray or plate that is large enough to hold one fish fillet.
- Mix the sauce ingredients in a big bowl. Stir to mix well.
- Score the fish by slicing a 1” (2.5 cm) crosshatch pattern across the flesh. If using skin-on fish, cut to the skin but not through it. If using skinless fish, cut through about 2/3 of the fillets so the fillets won’t fall apart.
Cook the fish
- Prepare a roasting rack over a big tray, for the cooked fish fillets.
- In a deep-sided pan that’s large enough to hold one fish fillet, heat 1” (2.5 cm) of oil over medium-high heat until it reaches 375°F (190°C). If you’re using smaller fish fillets, you can use as little as 1/2” (1.2 cm) of oil, as long as it covers 2/3 of the fish.
- Only coat as much fish as you can fry at a time. Place the fish skin-side-down in the tray with the cornstarch mixture. Use a spoon to add more mixture on top. Carefully lift the fillet using your hand to shake off the extra cornstarch and make sure there’s cornstarch between the diamond cuts.
- As soon as the fish is coated, glenty lay it, flesh-side-down, into the heated oil. Cook without touching until the bottom turns golden, 3 minutes for smaller fish, and 4 minutes or so for larger fish. Flip and cook the other side, for another 2 to 3 minutes.
- Once done, transfer the fillet to the tray lined with the rack to drain the extra oil.
Cook the sauce
- In a medium-sized frying pan, heat 1 teaspoon of oil over medium heat until hot. Add the ginger and garlic. Stir to release the fragrance, 30 seconds or so.
- Add the onion. Stir a few times.
- Stir the sauce mixture again to thoroughly dissolve the cornstarch and pour it into the pan. Stir and cook to bring the sauce to a boil.
- As soon as the sauce starts to thicken, add the bell peppers. Stir a few times until the sauce thickens. Immediately transfer the sauce into a bowl.
Serve
- Plate the fish on a large tray or on individual serving plates. Add the sauce along with the pepper and onion onto each fillet. Garnish with toasted sesame seeds, if using. Serve immediately.
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.
Mathoto
Really all of your recipes are yummy i appreciate it