Cantonese Steamed Fish: Eight Minutes and a Splash of Oil

Editor’s Note: This is the kitchen companion to Steamed Fish, Cantonese Style — The Dish That Taught Me Restraint. Quantities, temperatures and the failure points are below. Read the technique once before you shop.
Why Eight Minutes Is a Claim About Steam, Not About Fish
Eight minutes for a 600g fish is not a rule of thumb, it is the consequence of three conditions being met: the water is already boiling, the fish is dry, and the fish sits above the water rather than in it. Get any of those wrong and eight minutes produces something mushy, and you will blame the timing when the setup was at fault.
Dry the fish first. Water on the skin and in the cavity has to be driven off by the steam before the flesh begins to cook, and in that time the surface goes from firm to soft. A wet fish steams unevenly, the skin never tightens, and the flesh underneath turns to custard. Why this matters: surface water has to leave before the skin can set, and while it is leaving, the flesh underneath is already warming, so a wet fish always cooks unevenly. Pat the outside with kitchen paper, then reach into the cavity with a rolled piece of paper and dry that too.

The fish needs to sit above the water. Put an inverted plate or a shallow bowl in the bottom of the wok, or lay two chopsticks across a plate and set a second plate on top. The fish then cooks in moving steam at 100°C, all round, and the liquid it gives up runs away from the flesh instead of pooling under it. A fish lying in an inch of water is boiled on one side and steamed on the other, and the two sides will not agree.
Count only when the water is at a full boil and the lid is on. A cold start means the fish sits in warming steam for three or four minutes before the clock begins. Eight minutes for 600g, then two minutes off the heat with the lid still on, which lets residual heat equalise the middle without pushing the outside further.
The cloudy liquid that collects on the plate is water and protein drawn out of the fish. It dilutes the soy and cools the plate, so pour it off before dressing, holding the fish with a spatula.
The soy is seasoned, not straight. Three tablespoons of light soy simmered for 30 seconds with a tablespoon of water, a teaspoon of sugar and a few coriander stems is less salty and slightly rounder, and it coats the fish rather than soaking in. Then two tablespoons of oil at 200°C go over the ginger and scallion. Why this matters: the oil is not there to cook the aromatics through, it is there to release them in one burst, and that burst only happens above 190°C.
Ingredients
For the fish
- 1 whole sea bass (600g), scaled, gutted, fins trimmed
- 1/2 tsp (3g) fine salt, rubbed inside the cavity
- 15g ginger, cut into thin matchsticks
- 2 spring onions (25g), cut into 5cm lengths and bruised
- 500ml water, for the wok
For the seasoned soy
- 3 tbsp (45ml) light soy sauce
- 1 tbsp (15ml) water
- 1 tsp (4g) caster sugar
- 10g coriander stem, bruised
- 1 tsp (5ml) Shaoxing wine, optional
To finish
- 20g ginger, cut into fine threads
- 2 spring onions (25g), green parts, sliced into 5cm ribbons
- 1 red chilli (10g), deseeded and cut into threads, optional
- 2 tbsp (30ml) peanut oil
- 10g coriander leaves, picked
Substitution notes: Sea bass is the easiest whole fish to find and it steams well at this size, but bream, grey mullet, small grouper and tilapia all work if they are fresh and weighed, since the time depends on weight rather than species. If you can only buy fillets, steam them for 5 minutes on a plate over the same rack and skip the resting step.
Peanut oil is traditional because it takes high heat without smoking and brings a faint nuttiness that suits fish. Rice bran or grapeseed oil are close substitutes. Sesame oil is not: it burns at this temperature and turns acrid.
Prep: Ten Minutes, All of It About Dryness
1. Dry the fish, inside and out (4 minutes)
Rinse the fish under cold water, then dry it with kitchen paper, working from head to tail on both sides. Fold a piece of paper into a roll, push it into the cavity and turn it to absorb the water against the spine. Rub the half teaspoon of salt inside the cavity only, then set the fish on a plate in the fridge, uncovered, for 10 minutes while you do everything else.
2. Make the seasoned soy (5 minutes)
Put the soy, water, sugar and bruised coriander stems in a small pan and bring to a bare simmer for 30 seconds, until the sugar dissolves. Take it off the heat and leave the stems in to infuse while you steam. Strain before serving. It should taste slightly less salty than neat soy, with a sweet edge at the end.
3. Cut the aromatics and build the rack (3 minutes)
Cut 20g of ginger into threads as fine as you can, and the spring onions into 5cm lengths, then shred each length lengthwise. Put a small inverted plate in the wok, or lay two chopsticks across a plate and set another plate on top, and fill the wok with water to just below the rack.
Step by Step: Eight Minutes Under a Lid
Step 1: Bring the water to a full boil (5 minutes)
Put the wok on high heat with the lid on and wait for a hard, rolling boil with visible steam escaping. Do not put the fish in before this point. Lay the bruised spring onions and half the ginger on the rack plate as a bed, then set the fish on top.
Step 2: Steam hard for 8 minutes (8 minutes)
Set the plate on the rack, put the lid on and time 8 minutes from the moment the lid is back. Keep the heat high throughout; a drop in heat turns the steam back into a simmer and stretches the cooking. For a 700g fish add one minute, for 500g take one off. Do not lift the lid to look.
Step 3: Rest off the heat (2 minutes)
Turn the heat off and leave the lid on for 2 minutes. The steam inside the wok finishes the fish at the bone without overcooking the outer flesh. Check it before you dress it: the eye should be opaque white, the cheek should pull away from the head when nudged with a chopstick, and the small bone at the dorsal fin should lift free. Lift the plate out, tilting it over the sink to pour off the cloudy liquid, holding the fish in place with a spatula.

Step 4: Aromatics, oil at 200°C, then soy (2 minutes)
Scatter the ginger threads, scallion ribbons and chilli along the top of the fish. Heat the 2 tbsp of peanut oil in a small pan until it shimmers and a ginger thread dropped in fizzes at once, about 200°C. Pour it over the aromatics in one motion; you should hear a sharp, sustained sizzle. Then pour the seasoned soy around the fish, not over it, so the skin stays crisp. Scatter the coriander and serve within two minutes.
Key Pitfalls
The flesh was mushy and the skin came away. The fish was wet, or it went into cold water. Surface water has to be steamed off before cooking starts, so dry the skin and cavity, rest it uncovered for 10 minutes, and start only from a hard boil.
One side was cooked and the other was not. The fish was sitting in water rather than above it. Use a rack or an inverted plate so it is clear of the water, and make sure the wok is wide enough for steam to move around both sides.
The fish was overcooked at eight minutes. Eight minutes assumes 600g and a rolling boil from the start. Weigh the fish, add a minute per 100g over and subtract one per 100g under, and count the 2 minutes off heat as part of the time.
The ginger and scallion tasted burnt and bitter. The oil was past its smoking point, so it scorched the aromatics on contact. Heat to about 200°C, pull the pan off the heat for a few seconds, then pour.
The dish was salty and the sauce pooled on the plate. Straight soy went over the fish. Simmer it with water, sugar and coriander stem first, and pour it around the fish so it mixes with the resting juices instead of soaking the flesh.
The fish broke apart when you lifted it out. It was lifted by the tail or with tongs. Slide a wide spatula or a second plate under the fish, tip it to drain first, and support the middle where the spine is.
The fish took far longer than eight minutes. It came straight from the fridge. A cold fish drops the temperature of the wok and needs four or five extra minutes, by which time the outside is overcooked. Let it sit out for 20 minutes, and never steam one cold.
Serving Suggestions
This is the centre of a Cantonese family table, served with plain rice and one green vegetable, usually gai lan or bok choy blanched and dressed with a little of the same oil. Nothing else competes. Press the bone at the dorsal fin with chopsticks; if it lifts away cleanly, the eight minutes were right.
Drink something dry and cold, or plain tea. Leftover fish is not worth reheating: flake it off the bone while it is still warm, dress it with a spoonful of the seasoned soy and eat it at room temperature the next day.
This is the companion recipe to Steamed Fish, Cantonese Style — The Dish That Taught Me Restraint. Read the story, then cook the dish.
💬 Comments