A whole fish steamed until silky and delicate, topped with julienned ginger and scallion, finished with a sizzling hot oil drizzle.
Qingzheng yu, Cantonese-style steamed whole fish, is considered one of the purest tests of Chinese cooking skill -- a whole fish, steamed just until the flesh turns opaque and silky, topped with fine julienne of ginger and scallion, and finished with a dramatic drizzle of screaming-hot oil that sizzles audibly as it hits the aromatics. The technique's simplicity leaves no room for error: overcooking by even a minute or two ruins the fish's delicate, custardy texture. The technique that defines this dish is precise timing and the final oil drizzle: a whole fish (typically around 500-700g) steams in about 8-10 minutes over rapidly boiling water, checked carefully near the end since fish continues cooking briefly from residual heat after being removed. The ginger and scallion are laid both under and over the fish before steaming to infuse it gently, then fresh julienne is added after steaming, followed by hot oil poured directly over -- the sizzle releases the aromatics' full fragrance in a dramatic final flourish. Served whole with a light soy-based sauce spooned around the fish, qingzheng yu is a benchmark dish at Cantonese banquets and family dinners, its success measured by how tender and fresh the fish tastes -- proof that the best Chinese cooking often relies on precise technique over complex ingredients.
Serves 4
Score the fish lightly on both sides. Rub with salt and shaoxing wine, inside and out.
Place ginger slices and whole scallions in the cavity and underneath the fish on a heatproof plate.
Bring water to a rolling boil in a steamer or wok. Steam the fish 8-10 minutes, depending on thickness, until the flesh is just opaque and flakes easily.
While the fish steams, combine soy sauce, sugar, and water in a small saucepan and warm gently.
Once steamed, carefully remove the cooked ginger and scallion from the plate and discard. Pour off any excess liquid.
Scatter the julienned ginger and scallion over the hot fish. Pour the warm soy sauce mixture around the fish.
Heat oil in a small pan until just smoking. Carefully and quickly pour the hot oil directly over the julienned ginger and scallion so it sizzles audibly.
Garnish with cilantro if using and serve immediately.
Steam just until the fish is opaque and flakes easily -- residual heat continues cooking it briefly after removal, so err on the side of slightly underdone rather than overdone.
Discard the ginger and scallion used during steaming and add fresh julienne afterward for the brightest flavor and best presentation.
Heat the finishing oil until it's genuinely very hot, almost smoking, so it sizzles dramatically and releases the full aroma of the fresh aromatics.
Use a firmer fish like grouper or snapper for a slightly different texture, though timing should stay similar for a fish of the same size.
Add thin slices of fresh red chile for color and a subtle kick.
Use fish fillets instead of a whole fish for easier serving, reducing steaming time to about 6-7 minutes.
Best eaten immediately -- steamed fish's delicate texture doesn't hold or reheat well. Leftovers can be refrigerated up to 1 day and gently reheated, though texture will suffer.
Steamed whole fish is a cornerstone of Cantonese cuisine, prized for its emphasis on freshness and precise technique over heavy seasoning, and it remains a symbolic dish at Chinese banquets and New Year celebrations, where whole fish represents abundance and prosperity.
Check at the thickest part near the head -- the flesh should be opaque and flake easily with a fork rather than looking translucent; when in doubt, check a minute or two early since it continues cooking from residual heat.
It was likely overcooked. Steaming times vary by fish size and thickness, so check early and remove as soon as it's just cooked through, erring on the side of slightly underdone.
Yes -- this dramatic final step is what fully releases the fragrance of the fresh ginger and scallion, creating the signature aroma and flavor of the dish; without it, the topping stays raw and sharp-tasting.
Per serving (320g / 11.3 oz) · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →Join the conversation
Sign in to leave a comment and save your favourite recipes
Have feedback or need help?
We read every email and reply within 1–2 business days.
© 2026 MyCookingCalendar. All rights reserved.