Steamed Soy Sauce Fish with Preserved Lemon
There are fish recipes, and then there is this fish recipe. Cantonese steamed soy sauce fish with preserved lemon is the dish my family in Hong Kong has made for generations — fall-off-the-bone tender, swimming in a golden ginger broth, with the preserved lemon cutting every trace of fishiness so cleanly your kids will ask for seconds before you sit down.
This post may contain affiliate links. If you purchase through these links, I may earn a small commission at no extra cost to you. Thank you for supporting Love & Harvest!

What Makes This Cantonese Steamed Soy Sauce Fish Special
This healthy steamed soy sauce fish gives you all the essential nutrients you can only find in fish — omega-3 fatty acids, low-fat high-quality protein, and key vitamins. What sets it apart from every other steamed fish recipe is the preserved lemon.
A widely popular seafood dish among Chinese families and restaurants, fresh fish is steamed with ginger and preserved lemon, then finished with a sizzle of hot oil before serving. The preserved lemon helps cut out that strong fishy taste so you get the clean, fresh fish flavour without the pungent smell — making it one of the most kid-friendly fish recipes you will ever make.

Why You Will Love This Recipe
- Moist, soft, and fluffy texture — steaming guarantees a soft and flakey texture with tons of moisture and flavour.
- Straightforward recipe — a relatively easy recipe with just a few things to keep in mind. Step-by-step photos guide you to a no-fail result.
- No strong fishy taste — the preserved lemon cuts the oily fish taste and softens the strong fish smell. Suitable for children.
- Addictingly delicious — steaming creates a beautiful thick lemon soup that is incredible on rice.

Hong Kong Cantonese Fish: A Cultural Staple
Fish in Chinese culture represents abundance and increased prosperity. It is an essential dish for New Year, birthdays, and anniversaries. Hong Kong is a coastal city rich in seafood resources — back when it was a large fishing port and world exporter, fish became an easy everyday staple. This recipe comes from my family, who still use it today.
We love this steamed soy sauce fish so much in our family. Kids are rarely excited about fish unless it is a fish stick — but this recipe is so good my kids constantly ask for it. They get genuinely excited when they know I am making Cantonese steamed soy sauce fish with preserved lemon.
Ingredients Deep-Dive
Tilapia Fish
The best fish to use for this recipe is tilapia or halibut (if you are willing to splurge). Tilapia steams perfectly — it is firm enough to hold its shape yet soft enough to fall off the bone. Your fishmonger will descale and gut it for you. Always make sure the belly is cleaned well under the fins.
- Why it matters: The right fish gives you that silky, fall-off-the-bone texture that defines this dish. Too thin a fish overcooks quickly; too thick and the center stays raw.
Preserved Lemon
This is the secret weapon. Preserved lemon provides salt, umami, and a citrus sharpness that no fresh lemon can replicate. Rub it inside the cavity and along the cuts — it penetrates the flesh as it steams and eliminates that pungent fishy smell entirely. You can make your own preserved salty lemons at home with just lemons and salt.
- Why it matters: Without preserved lemon, you have steamed fish. With it, you have a Cantonese classic your family will request every week.
Pick up a jar of preserved lemon if you do not have any on hand yet.
Ginger
Thinly slice fresh ginger — as thin as you can manage. Half goes inside the cavity of the fish, half rests on top during steaming. Ginger adds warmth and its own aromatic quality that pairs perfectly with soy sauce and lemon.
- Why it matters: Ginger neutralises fishy odours during cooking while adding a gentle heat and fragrance that makes every bite interesting.
Soy Sauce
Added at the very end — never cooked into the fish. This preserves the fresh, bright soy taste. Cooked soy sauce takes on a bitter, heavier flavour that would overpower the delicate fish.
- Why it matters: Timing the soy sauce correctly is what separates home cooks from Cantonese masters. Get a quality soy sauce — the flavour difference is real.
Essential Steps for Restaurant-Quality Steamed Fish

1. Wash the Fish Inside and Outside
Descale the fish — your fishmonger will do this for you. Once home, open the belly. You will see a grey residue: this is what causes strong fishy smell and taste. Use your fingers and fingernails to rub it all off. Then find the second pocket along the back of the spine, cut it open with a knife, and clean that out too.

2. Rub Preserved Lemon Inside and Outside
Take 1 tbsp of preserved lemon to the chopping board. Chop it finely and rub with your finger to release the brine. Rub the lemon and salt inside the cavity and outside the fish, working it into all the cuts.

3. Add Ginger to the Cavity
Scrape the skin off a 1-inch piece of ginger with a knife. Slice it as thinly as possible. Place half inside the cavity; the other half rests on top of the fish while steaming. A quality fish sauce can be added as an optional finishing touch alongside the soy sauce.
4. Steam the Fish
Place the fish in a heat-proof bowl or deep dish that will catch the golden juice as it steams. Use a bamboo steamer or your Instant Pot — whichever fits the fish comfortably.

Instant Pot Steaming Instructions
1. Add about 2 cups of water to the pot and place the steaming basket inside. Place the fish in a bowl that fits inside the Instant Pot with enough room for steam to rise around it.
2. Set the mode to “Steam” for 20 minutes. Place the fish in the bowl with ginger on top. Close the lid and turn the valve OFF.
3. Once the timer goes off, release the valve.

5. Quick Oil Fry Finish
Take the fish out and place thinly sliced scallion (green parts only) on top. Heat 1/4 cup of canola oil in a pan until it just starts to smoke. Bring the fish to the sink or outside. Pour the hot oil directly over the scallion — the oil will sizzle loudly and smoke. Add 2 tsp of soy sauce and a dash of white pepper. Serve immediately.
Professional Tips for No-Fail Steamed Soy Sauce Fish
Tip 1: Add Soy Sauce at the Very End
Cooked soy sauce develops a heavier, more bitter taste. Adding it fresh at the end keeps the soy sauce tasting bright and original — that is what gives this dish its clean, restaurant-quality finish.
Tip 2: Serve Immediately
Steamed soy sauce fish should always be eaten hot or warm. The gelatin-rich broth at the bottom turns solid at room temperature and loses its appeal. Eat it warm over a bowl of rice.
Tip 3: Tilapia Is the Best Choice
Tilapia is ideal for this recipe. Halibut works beautifully if you want to splurge. My economical mom sometimes uses a fish head for the same recipe — equally delicious.
Related Cantonese Recipes
If you love this steamed fish, you will also enjoy steamed preserved vegetables with pork — another family favourite that uses the same steaming technique. For a completely different take on fresh seafood flavours, try our homemade sashimi.
Frequently Asked Questions
What fish is best for Cantonese steamed fish?
Tilapia is the most economical and forgiving choice — firm enough to hold up in the steamer yet soft enough to become fall-off-the-bone tender. Halibut is the premium option. Avoid very thin fish fillets as they overcook too quickly.
Can I use fresh lemon instead of preserved lemon?
You can, but you will lose the umami depth that preserved lemon brings. Preserved lemon adds salt and fermented flavour that fresh lemon simply cannot replicate. It is worth making a batch of your own preserved salty lemons — they last months in the fridge.
How long do I steam the fish?
Steam on high for 20 minutes for a whole tilapia around 1 kg. The fish is ready when the flesh flakes easily away from the bone with a fork. Do not overcook — even a few extra minutes will dry it out.
Can I make this without an Instant Pot?
Absolutely. A traditional bamboo steamer over a wok works beautifully and is what most Cantonese families use. Any steamer setup that fits the fish and allows steam to circulate around it will give you the same result.
Why do I pour hot oil over the fish at the end?
The hot oil sizzle is the signature Cantonese finishing technique. It cooks the raw scallion instantly, creating a fragrant aromatic oil that infuses into the fish. It also gives the skin a slightly crisp texture on the surface while the flesh stays tender.
How do I store and reheat leftovers?
Store leftovers covered in the refrigerator for up to 2 days. Reheat gently in the microwave or in the steamer for 3–4 minutes. The broth will re-liquefy as it warms. Avoid the oven — it will dry out the fish.

Steamed Soy Sauce Fish with Preserved Lemon
This Cantonese Steamed Fish with Preserved lemon is the best fall-off-the-bone fish recipe! It's healthy, flakey soft, and oh.em.gee. tasty. Print Recipe Pin RecipePrep Time:10 minsCook Time:20 minsCourse: Main CourseCuisine: ChineseKeyword: fish, preserved salty lemon, seafood, steamed fishServings: 4 people
Equipment
- steamer
Ingredients
- 1 kg tilapia fish descaled, gutted, and cleaned
- 1 inch ginger thinly sliced
- 1 tbsp preserved lemon
- ¼ cup canola oil
- 1 inch scallion thinly sliced (green parts only)
- 2 tsp soy sauce
- dash of grounded white pepper
Instructions
Clean the fish
- Rinse the fish with cold tap water. Touch around the fish and descale any scales still stuck on the fish.
- Open the belly. You will see a grey residue — this is what causes the strong fishy smell and taste. Rub it all off with your fingers and fingernails.
- Find the second pocket along the back of the spine. Use a knife to cut it open. Clean it out and you will be able to touch the spine of the fish.
- Take 1 tbsp of preserved lemon to the chopping board. Chop finely and rub with your finger. Rub inside the cavity and outside the fish along all the cuts.
- Scrape the skin off a 1-inch piece of ginger. Slice as thinly as possible. Place half inside the cavity; the other half rests on top of the fish while steaming.
Steaming the fish
- Place the fish in a heat-proof bowl or deep plate that will catch the golden juice while steaming.Use the steamer you are comfortable with that also fits the fish. Steam on high for 20 minutes.
Instant Pot Steaming Instructions
- Add about 2 cups of water to the pot and place the steaming basket inside. Place the fish bowl inside the Instant Pot with enough room for steam to rise.Set the mode to “Steam” for 20 minutes. Place the fish with ginger on top. Close the lid and turn the valve OFF.Once the timer goes off, release the valve.
Final Steps
- Take the fish out and place thinly sliced scallion (green parts only) on top.Heat 1/4 cup of canola oil in a pan until it just starts to smoke. Place the fish near the sink or outside. Pour the hot oil directly over the scallion — it will sizzle loudly.
- Add 2 tsp of soy sauce on top of the fish and a dash of white pepper. Serve immediately.
Shop What You'll Need

Instant Pot Duo 7-in-1
Used in our chili, menudo, and black garlic recipes.

Philips Pasta & Noodle Maker
Makes fresh beet pasta in 3 minutes flat.

Lodge Cast Iron Dutch Oven
Perfect for campfire cooking and one-pot family dinners.
* As an Amazon Associate I earn from qualifying purchases.
Nutritional information is estimated and may not be accurate. It is for informational purposes only. Consult a registered dietitian for personalised dietary advice.
Allergen notice: Recipes may contain common allergens including gluten, dairy, eggs, nuts, soy, sesame, or shellfish. Always verify ingredient labels if you have food allergies.

Recipe by
Samantha Chow
Recipe Developer
Canadian designer cooking her way through Mexico. Three kids, one kitchen, a world of flavours. Read Sam's full story →
Free Download
Get 7 Quick 30-Minute Family Dinners — Free
Sam's most-requested weeknight dinners, on the table in 30 minutes. For families who want to eat well even on crazy nights.
By subscribing you agree to our Privacy Policy. Unsubscribe anytime.
Try These Next
asian recipesSteam Preserved Vegetables (Zha Choy) and Pork
One dish that never fails to comfort me is Steam Preserved Vegetables (Zha Choy) and Pork — it’s salty, savory, crunchy, and deeply satisfying. This traditional Cantonese recipe comes together in under 30 minutes with just a handful of humble ingredients, yet delivers bold, layered flavor that tastes like it took all day. This post []
Get the Recipe →
appetizers recipesThai Chicken Salad
An appetizers recipe the whole family will love.
Get the Recipe →
appetizers recipesSticky Honey Garlic Spareribs
In our house, the moment a plate of sticky honey garlic spareribs lands on the table, every conversation stops. The sweet caramelized glaze, the tender fall-off-the-bone pork, the irresistible fragrance of garlic — this Cantonese classic is pure comfort food that disappears within minutes. And the best part? It comes together in under 30 minutes. []
Get the Recipe →

