Fish Vendor’s Shanghai Smoked Fish (Xunyu, 熏鱼) | Zoe Yang


Jump to Recipe – proceed at owN risk
shanghai xun yu smoked fish

Shanghai Smoked Fish, Two Ways

Shanghai smoked fish (熏鱼, xūnyú) is a favorite in my family—on the rare occasions when we go out to eat, it’s a must-order. On one such occasion years ago, I vividly remember my dad telling me to eat up because this dish is very special and difficult to make: “It’s smoked! We can’t do that at home.” Somehow, I never questioned this, and so no one in my family ever tried to make smoked fish. 

I hope you’re not discouraged yet, because this is the part where I tell you that everything my parents led me to believe is a lie. In reality, smoked fish is:

  1. Not smoked
  2. Dead easy
  3. Fast. Like, weeknight fast. 

I would not have learned these gospels if I didn’t see the truth with my own eyes in China recently. I was strolling through a market—my favorite activity—when I came upon a stall that advertised made to order smoked fish. As in, the fish went from swimming in a tank to boxed up in a takeout container in 15 minutes. I was astounded. How?

It turns out that in a classically Chinese case of liberal metaphor, the “smoked” in smoked fish refers to a mere invocation of smoke—the flavor you get when you deep-fry fish until it’s chestnut-brown and wizened, and then soak it in a sweet-sour (糖醋, tángcù) marinade. The flavors in the marinade—soy sauce, sugar, Shaoxing wine, black vinegar—are classic Jiangnan, and when they’re balanced, it’s all very elegant. But that elegant flavor belies how downright lazy this dish is.

I watched this vendor at the market pick out a fat live carp, scale it, gut it, lop off its head and tail, then chop it—bones and all—into thin sections. (This took him approximately two minutes, and you don’t even have to do this part!) Then, he fired up his wok full of oil and asked if I wanted my fish with salt and pepper (椒盐, jiāoyán) or with tangcu. Tangcu is the classic marinade for smoked fish, but I wanted to try the jiaoyan, so I said half and half. He proceeded to deep fry the fish for a few minutes, dunk half the pieces into a waiting basin of tangcu marinade and the other half into another basin of jiaoyan spice mix. A few stirs of Basin 1, a few shakes of Basin 2, and he was already packaging up my fish. 

Of course, both variations ended up being literally the best smoked fish I’ve ever had—the best my mom had ever had—and the whole experience had me feeling empowered. It was so doable! And moreover, the fish vendor’s methods dispelled some conventional recipe wisdom:

  • Double-frying: Nope, unnecessary, doesn’t make a difference. In fact, this dish is great if you’re intimidated by deep-frying because it’s really hard to mess up—by Western standards, what you’re aiming for is actually over-fried fish. So, if your oil temp is too low and you somehow end up with pale fish, you can fix it by frying it again, but you likely won’t need to. Basically, there’s no mess, no batter, and the marinade hides a multitude of sins. 
  • Pre-marinating the fish in ginger, scallions and Shaoxing wine: This step is typically done to neutralize fishiness, but there’s not much need here because the marinade or spices going on it afterward are so robust. This is especially true if you’re using extremely fresh fish. 
  • Chilling and soaking the fish in marinade for hours or days before serving: Doesn’t hurt, but you can just hack this by adding hot fish to cold marinade like the vendor did.

The fish vendor gave me permission to keep this project simple, and you should do as he does, too.

A Note on Selecting Fish

In Shanghai and Nanjing, smoked fish is made from one of the many kinds of freshwater carp readily available in our markets. Sometimes it’s 鱼 (qīngyú) black carp, sometimes it’s 鱼 (cǎoyú) grass carp. These fish are used because they’re economical, abundant and, most importantly, firm-fleshed and big-boned. 

In America, all Asian carps are invasive, and if you can get your hands on them, you should absolutely make this recipe with carp. Otherwise, wherever you are, look for other inexpensive, medium-sized, freshwater fish that have firm meat, mild flavor and not too many fine bones. In New York, I do not have access to carp, but I do have access to Chinatown markets with incredibly knowledgeable, multilingual, fishmonger uncles who know exactly what I’m talking about when I say I need a fish for smoked fish. Shoutout to C.T. Seafood Mart, whence the following information came:

  • Freshwater bass such as striped bass or largemouth bass are the best options. Largemouth typically tends to be more expensive, but that does not necessarily mean it’s better—it tends to be firmer and more pronounced in taste while striped bass is sweeter, so it’s a matter of personal preference 
  • Live fish will be more expensive than dead fish, and for the purposes of this dish, dead is fine since you’re using heavy seasoning, but consider doing a brief pre-marinade with ginger and Shaoxing wine if you notice any fishiness

I also tested this dish with two common saltwater fish, corvina and pollock. I don’t recommend either—the skin was too thick on the corvina, the pollock was too mushy, and both were too big, leading to unwieldy pieces. The Woks of Life recommends pomfret, but I think shark will be my next experiment…

If you need to use filets instead of whole fish, try to use catfish, since it has a similar flavor to carp and yields pleasing meaty filets that fry up well. I tested this recipe with catfish filets—it was delicious.

For more classic Shanghai and Jiangnan restaurant recipes by Zoe, see her earlier posts on Shaoxing Drunken Chicken (Zuiji, 醉鸡) and Ode to Dongpo Pork (东坡肉). Or for less meat-centric dishes, check out Yangzhou Dazhu Gansi (Simmered Tofu Noodles, 大煮干丝) and Danjiao (蛋饺) Egg Dumplings ft. Pork and Ramps!

Fish Vendor’s Shanghai Smoked Fish (Xunyu, 熏鱼) | Zoe Yang

By: Zoe Yang | The Mala Market


For the fish

  • 1 whole medium-sized freshwater fish, such as largemouth or striped bass, cleaned and gutted or 500g if using fish filets (catfish recommended)
  • 4 cups neutral oil for frying, such as canola oil
  • 5 slices fresh ginger optional, for pre-marinating
  • 2 tablespoons Shaoxing wine optional, for pre-marinating

Tangcu sauce

  • cups water
  • 3 bay leaves
  • 1 star anise
  • 1 piece cassia bark
  • cup rock sugar
  • 3 tablespoons Shaoxing wine
  • 2 tablespoons oyster sauce
  • 3 tablespoons light soy sauce
  • 1 tablespoon dark soy sauce
  • 2 teaspoons honey
  • 1 tablespoon black vinegar
  • osmanthus flowers for garnish optional

Jiaoyan seasoning variation

  • 3 tablespoons your favorite seasoning salt blend I used The Mala Market's Shaokao Spice


Sauce (make up to a week ahead of time)

  • Add 3½ cups of water, bay leaves, star anise and cassia/cinnamon bark to a wok and bring to a boil, then lower to a bare simmer. Simmer spices for 20 minutes, then remove with a slotted spoon.
  • Add rock sugar, 3 tablespoons Shaoxing wine, oyster sauce, light soy and dark soy to the simmering water. Reduce for about 15 minutes, or until the sauce coats a spoon and the bubbles start getting bigger and slower. Skim any scum that floats to the top.
  • Stir in honey and black vinegar, then remove from heat. (If you cook the honey and black vinegar for too long, the sauce will become very scummy and taste medicinal).
    Transfer to a container and let the sauce cool—it should have the consistency of a light glaze when cool. If it seems thin, you can always put it back on the stove to reduce longer. If it seems thick, like molasses, reheat and whisk in a few tablespoons of water. Store covered in the fridge until you’re ready to fry your fish.

Frying the fish

  • If your fishmonger didn’t do this part already: Remove the fish’s head, tail and fins, then chop fish into ½-1 inch sections, going straight down through the spine (see photos in post).
    Optional step: Marinate the sections of fish in 5 slices of ginger and 2 tablespoons Shaoxing wine for an hour before frying.
  • Heat up 4 cups of oil in a pot or a wok to 375℉/190℃. If you’re not sure about the temperature, test it with a small piece of fish—it should float immediately and bubble energetically. Pat fish pieces dry with a paper towel and add one or two pieces to the oil at a time—if you add more, the oil temperature will drop too much. Also, the fish pieces want to stick to each other, so don’t crowd them.
  • Fry the fish pieces for 2-3 minutes per side, or until the fish is brown. Not golden brown, brown brown. Try to maintain oil temperature between 350-380℉ (~175-195℃) during this process, but don’t worry too much about it—it’s very forgiving. Err on the side of overcooking, since you want the fish to be almost crunchy.
  • For jiaoyan fish, add fresh-fried fish pieces to a bowl with a few tablespoons of shaokao spice and toss well to coat evenly. It’s important to do this while fish is still very hot so the spices will stick.
    For tangcu fish, dunk the fish into the chilled marinade, making sure to coat all surfaces.
  • Serve jiaoyan fish immediately; serve tangcu fish immediately or after chilling, covered in the marinade, in refrigerator for up to 3 days. Sprinkle the tangcu fish with osmanthus flowers when plating for restauranty flair.

Tried this recipe?

About Zoe Yang and Iris Zhao

Zoe Yang is a Brooklyn-based writer and recipe developer. She was born, raised and culinarily trained in Nanjing, China. Iris Zhao, her mother, is a retired schoolteacher living in Boston who immigrated from Nanjing in the ’90s. Iris taught herself how to make a lot of Jiangnan classics—even the difficult ones—from scratch when she landed Stateside, and she passed that love of culinary discovery on to Zoe. Together they are sharing mother-daughter recipes from southeast China for The Mala Market. Zoe’s recipes and writing can also be found on Bon Appetit, and her personal site:

Recipes you might like

Leave a comment

Your email address will not be published. Required fields are marked *