Chinese steamed whole fish

Steamed fish is a classic Chinese New Year dish that represents wealth and good fortune. In Chinese, the character for fish (鱼, yu) is pronounced the same as the character for surplus (余, yu), which expresses the wish for extra wealth and food at the end of the year. For many families, steamed fish is a must have on the Chinese New Year table, and it is also a popular choice at restaurants for celebrations with friends.

Back when I was living in China, my mom almost always served a whole steamed fish for every New Year celebration, and I continue that tradition now in my home in New York. Because I use just a few ingredients that are easy to find at any grocery store, I can highlight the natural flavor of fresh fish. I stuff it with ginger and green onions, steam it until tender and juicy, then finish it with hot infused oil and seasoned soy sauce before serving.

What I love most about this Chinese steamed fish recipe is how simple it is. It takes only about 25 minutes to put together, which makes it especially practical during the holidays when there are many dishes to prepare. You can also check out my video and step by step photos below to see how easy it is to make. This is how my family continues to enjoy steamed fish today, and I hope you make it at home for your loved ones.

Chinese steamed fish serve on a plate with chopsticks

Ingredients

My Chinese steamed fish recipe requires just seven ingredients and is very easy to prepare. Here is the list of ingredients I use to make it:

Ingredients for making Chinese steamed fish

Fish

The best choice for Chinese steamed fish is a recently live fish, followed by a fresh whole fish. While a fish fillet can work, I always recommend using a whole fish when possible, which you can find at Chinatown markets, Chinese grocery stores, or well stocked fish counters where the fish can be cleaned for you.

When choosing a whole fish, I look for clear eyes, shiny scales, and no strong odor, and I always pick a smaller fish so it cooks quickly and stays juicy. I usually aim for around 1 pound, with branzino as a favorite, though flounder and tilapia work well, and if using fillets, options like snapper or cod are good choices too.

Aromatics

I always use fresh organic ginger and green onions to keep the flavor clean and balanced. They complement the fish perfectly.

Seasonings

The main seasoning for this dish is seasoned soy sauce, which is made specifically for Chinese steamed fish and includes sugar and MSG for balance, and I also use Shaoxing wine to add depth and reduce any strong fish taste. If you prefer not to buy seasoned soy sauce, I often mix regular soy sauce with a little sugar and a pinch of chicken bouillon as a substitute.

Spices

The dried chili pepper and Sichuan peppercorns infuse the oil with an amazing fragrant flavor. When I pour the hot oil over the fish, it sizzles the aromatics and boosts the flavor right before serving.

How to make

1. Prepare the fish: Check that the fish is fully scaled by running fingers from tail to head and descale if needed. Rinse the fish with cold water, pat it dry, and score it three to four times on each side about one inch apart.

Scoring the fish

2. Set up the plate: Place a quarter of the green onions on a heatproof plate large enough to hold the fish. This creates a base so the fish does not stick during steaming.

3. Season the fish: Stuff sliced ginger and the white part of the green onions into the cavity and scored cuts. Drizzle Shaoxing wine over the fish, season lightly with salt, cover with another quarter of the green onions, and let it rest briefly.

Stuff fish with sliced ginger and green onions

4. Steam: Add water to a deep skillet, steamer, or wok and place a steaming rack inside. Set the plate of fish on the rack, cover, and steam over high heat until the flesh flakes easily, about 5 to 8 minutes.

How to set up steamer for steamed fish

5. Remove aromatics: Transfer the plate carefully to the counter and discard the cooked ginger and green onions from the top of the fish using chopsticks.

6. Finish the topping: Scatter the remaining julienned ginger and green onions over the fish. Keep the seasoned soy sauce nearby and ready to use.

adding julienned ginger and green onions over the fish

7. Heat the oil: Heat oil in a small pan over medium high heat, add the dried chili peppers and ground Sichuan peppercorns, and cook briefly until sizzling.

cooking the dried chili peppers and ground Sichuan peppercorns in a small pan

8. Pour: Pour the hot oil directly over the fish so it sizzles the ginger and green onions.

Pour the hot oil directly over the fish

9. Drizzle with soy sauce: Immediately drizzle the seasoned soy sauce over the fish so it coats the surface and blends with the hot oil.

Pouring soy sauce directly over the fish

10. Serve: The process is quite simple, yet the fish is surprisingly flavorful. Serve and enjoy it for New Year celebrations or any time you want.

Expert cooking tips

Do not overcook the fish

When steaming the fish, it is important to keep the heat high so it cooks as quickly as possible. A 1.1 lb (500 g) branzino cooks through in about 5 minutes, while larger or thicker fish and fillets need more time, with a 7.5 oz (200 g) branzino fillet taking about 8 minutes. I always check for doneness after 5 minutes and stop steaming as soon as the flesh flakes easily to avoid overcooking.

Choosing the right steaming setup

One of the main challenges when making Chinese steamed fish is finding cookware large enough to hold the whole fish. I usually use a large wok (at least 18”) with a steamer rack and an oval plate, but a large oval pot works just as well. If space is limited, the fish can be cut in half and placed on a round plate, or you can use a fish fillet, which requires much less room.

Using fish fillet instead of whole fish

While I prefer steaming a whole fish, a fillet still works well by placing the aromatics on the top and bottom rather than inside (see image below), and it may take slightly longer to cook due to the thicker flesh. I used a branzino fillet here, but flounder, tilapia, snapper, and cod are all good options.

Branzino filet with ginger and scallion

How to serve

Chinese steamed fish is usually served as one of the main dishes in a multi course New Year celebration. Because it is simple to prepare, I also serve it as a main dish with white rice for an easy weekday dinner. When choosing sides, I prefer lighter dishes like cucumber salad, my easy stir fried pea shoots, or my sweet and savory Chinese broccoli with oyster sauce.

Frequently asked questions

Why is my steamed fish dry?

Steamed fish turns dry when it stays over heat for too long. I pay close attention during cooking and stop steaming as soon as the flesh turns opaque and flakes easily, which keeps the texture tender and juicy.

Why is my fish watery after steaming?

Fish naturally releases liquid as it cooks, especially when steamed whole. I always pour off this liquid before seasoning so the soy sauce and oil stay concentrated and clean tasting.

How do I store leftover in the fridge or freezer?

To store leftovers, I let the steamed fish cool completely before transferring it to an airtight container. In the fridge, it keeps well for up to 2 days and reheats best with easy low steaming. For longer storage, I remove the fish from the bones, portion it, and freeze it for up to one month, then reheat by steaming until warmed through.

More Chinese New Year Recipes

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.

Watch video

Chinese steamed fish is always a centerpiece on the dinner table at Chinese New Year and other celebratory occasions. Not only is the fish juicy and extra fragrant, it has a stunning appearance and symbolizes good luck. Learn how to make this easy dish in your own kitchen. The method for cooking a fish filet is also included. {Gluten-Free Adaptable}

Chinese Steamed Fish (清蒸鱼)

5 from 8 votes
Prep Time: 10 minutes
Cook Time: 15 minutes
Total Time: 25 minutes
Servings: 2 to 4 servings
A Chinese New Year table deserves a stunning centerpiece like my Chinese steamed fish (清蒸鱼). I make this main dish in less than 30 minutes using a whole fish, ginger, and green onions, finished with seasoned soy sauce. It looks beautiful, cooks simply, and represents good luck at the table, so I highly recommend it.

Ingredients 

  • 1 small (about 1.1 lb / 500 g) head-on sea bass (or tilapia, flounder, or other white fish, scaled, gutted; OR white fish filet) (*Footnote 1)
  • 1 1/2 pieces (thumb-sized) ginger , 1 thumb sliced, 1/2 thumb julienned
  • 3 green onions , sliced into 2.5” (6 cm) long pieces
  • 2 tablespoons Shaoxing wine
  • 1 1/2 tablespoons peanut oil (or vegetable oil)
  • 2 dried Chinese chili peppers
  • 1/8 teaspoon ground Sichuan peppercorn (Optional but highly recommended)
  • 2 tablespoons seasoned soy sauce for seafood (or 2 tablespoons regular soy sauce + 1 teaspoon sugar + 1/2 teaspoon chicken bouillon, gently heated in the microwave for easy mixing)

Instructions

  • Before cooking, check if the fish is fully scaled by running your fingers from the tail of the fish to the head. Use kitchen shears to descale if needed. Wash the fish thoroughly with cold tap water and drain. Dry the fish with paper towels. Score the fish 3 to 4 times, 1” (2.5 cm) apart.
  • Place a quarter of the green onions on a plate large enough to hold the entire fish. The green onions will hold the fish so it won’t stick to the plate when cooked.
  • Stuff ginger slices and a quarter of the green onions (white part) into the cavity of the fish. Stuff the ginger slices into the scored parts. Pour the Shaoxing wine over the fish. Season very lightly with salt. Cover the fish with another quarter of the green onions. Let marinate for 10 minutes at room temperature while preparing the other ingredients, or in the fridge for half a day, until you’re ready to cook.
  • In a large, deep skillet (or steamer or wok), add 1” (2.5 cm) of water and place a steaming track in the middle (Footnote 2). Place the plate of fish over the rack. Cover and bring water to a boil over high heat. When the steam starts to come out, cook, covered, over high heat for 5 to 8 minutes (*Footnote 3), until you can easily pull the flesh from the bone with a fork. Turn off the heat immediately.
  • Carefully transfer the plate of the fish onto the kitchen counter. Use a pair of chopsticks to remove and discard the ginger and green onion from the top of the fish.
  • Spread the remaining julienned ginger strips and green onions on top of the fish and set aside. Make sure the seasoned soy sauce is ready beside the fish.
  • In a small skillet or saucepan, heat oil over medium-high heat. When the oil is warm, break chili peppers into 3 to 4 pieces and add them, with the ground Sichuan peppercorns, into the oil. Stir with a spatula until fragrant and the peppers are sizzling, about 30 seconds. Drizzle the hot oil over the fish. You should hear the sizzling of the oil when it touches the fish. Immediately pour the seasoned soy sauce onto the fish.
  • Serve immediately. The fish won’t hold sauce very well, so make sure you dip the fish meat into the sauce from the plate as you eat. (see footnote 4).

Ingredient Substitution Guide

Notes

  1. Before cooking, you should make sure you have a plate and a skillet (or a wok) that are large enough to hold the fish. If not, you should cut the fish in two such that each piece is half the original length, so it can fit into the skillet.
  2. If you don’t have a steaming rack, you could place a pair of wooden chopsticks, 4 inches apart, onto the bottom of a skillet as “feet” to hold the plate. You only need something to hold the plate off the bottom of the skillet and to make sure the water won’t spill onto the plate when steaming the fish.
  3. When I cooked a 1.1 lb (500 g) whole branzino, it took me 5 minutes to cook it through. A branzino filet (7.5 oz / 200 g) took 8 minutes to cook, because the flesh was thicker than that of the whole fish.
  4. Although you can add the seasoned soy sauce afterwards, the flavor will be slightly different from the way it tastes when poured immediately following the hot oil.

Nutrition

Serving: 1serving, Calories: 109kcal, Carbohydrates: 4.1g, Protein: 12.4g, Fat: 4.7g, Saturated Fat: 0.9g, Cholesterol: 26mg, Sodium: 560mg, Potassium: 182mg, Fiber: 0.1g, Sugar: 2.1g, Calcium: 8mg

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.