Chinese

Chinese Beef Stir Fry Recipe (Oyster Sauce)

Chinese Beef Stir Fry Recipe (Oyster Sauce)
A
Asha
This post may contain affiliate links which means I may earn commissions for purchases made through links at no extra cost to you. See Disclaimer for more information.

The first time I figured out why restaurant beef is different from home beef, I was standing at my wok with a piece of flank steak that had been in baking soda for 45 minutes. It was completely wrong in texture, soft in the wrong way, slightly slimy, and it tasted metallic when it hit the hot pan. The next attempt, 25 minutes in baking soda, rinsed thoroughly, and the difference was obvious before I even added the sauce. Understanding what the baking soda is actually doing to the protein, not just that it tenderises, but how and for how long, is the difference between silky restaurant beef and beef that disappoints.

This recipe covers the full technique: why you velvet, which velveting method to use and when, how to slice correctly, why the sauce turns glossy, and how to get heat high enough on a domestic hob to produce a proper sear. All of it is mechanism-first, not instruction-first. Once you understand what is happening in the wok, you can make this dish without measuring anything.

Chinese beef stir fry with glossy oyster sauce glaze, broccoli, red bell pepper and snap peas served over steamed jasmine rice in a ceramic bowl on linen surface

What makes Chinese restaurant beef so tender and how do you replicate it at home?

Chinese restaurant beef is tender because it is velveted before cooking. Velveting is a Chinese technique that treats the beef before it goes anywhere near a hot wok, using one or both of two completely different mechanisms that most recipes conflate into a single step.

The first mechanism is alkaline tenderisation using baking soda. Baking soda raises the pH of the beef surface from approximately 5.5 (natural beef pH) to 7-8. In an alkaline environment, the actomyosin bonds in muscle protein, the bonds responsible for the contraction and toughening of muscle fibres during cooking, break down before the heat can tighten them. The result is beef that stays tender at high heat rather than seizing up and becoming chewy.

The second mechanism is physical coating using cornstarch. Cornstarch forms a protective layer around each slice of beef. When that coated beef hits a very hot wok, the starch gelatinises on contact with the hot oil, creating a thin barrier that prevents direct moisture loss from the meat surface. The beef essentially steams inside its own coating during the brief sear rather than drying out against the hot metal.

Both mechanisms produce tender beef, but through completely different means. Baking soda changes the protein structure. Cornstarch protects it during cooking. In professional Chinese kitchens, both are often used together. For home cooking, the baking soda method alone, used correctly, produces the silkiest result with the least complexity.

What is velveting and which method should you use?

Baking soda velveting: Add ¼ teaspoon of baking soda per 250g of sliced beef. Mix thoroughly so every surface is coated. Add 2-3 tablespoons of water and mix again until the beef absorbs most of the liquid. Leave for 25-30 minutes at room temperature.

The 30-minute maximum is not arbitrary. Beyond 30 minutes, the alkaline environment continues breaking down the protein structure past the point of tenderisation into actual degradation. The fibres begin to dissolve rather than just relax. The texture becomes mushy rather than silky. At 45 minutes, the beef is noticeably over-tenderised. At 2 hours, it has an unpleasant, slimy texture that no amount of high heat corrects.

After the marinating time, rinse the beef thoroughly under cold running water for 60-90 seconds until the water runs clear. The rinsing step is mandatory. Baking soda left on the beef produces a metallic, slightly soapy taste in the finished dish and inhibits the Maillard browning during searing.

Cornstarch velveting: Toss sliced beef with 1 tablespoon of cornstarch, 1 tablespoon of neutral oil, 1 teaspoon of soy sauce, and 1 teaspoon of Shaoxing wine. Mix well and leave for 15-20 minutes. No rinsing needed, the cornstarch cooks off during the stir fry.

Cornstarch velveting alone produces beef with a slightly thicker, more noticeable coating. It does not tenderise the beef the way baking soda does, it only protects it during cooking. Use cornstarch velveting for already-tender cuts (tenderloin, sirloin) where you want protection without tenderisation. Use baking soda for tougher cuts (flank, skirt, chuck) where actual tenderisation is needed.

This recipe uses baking soda velveting followed by the cornstarch marinade. Baking soda first, rinsed off, then cornstarch and seasonings added as the secondary marinade before cooking.

Why do you slice beef against the grain and what happens if you don’t?

Muscle fibres in beef run in parallel, visible on the surface of a raw piece of flank steak as long lines running in one direction. These fibres are what you are cutting when you chew a piece of steak. Long fibres require significant force to chew through, producing the perception of toughness.

Slicing against the grain means cutting across those fibres at a 90-degree angle. This reduces each fibre from its full length (3-4cm or longer) to approximately 3-4mm, the thickness of the slice. Short fibres require almost no force to separate when chewing. The beef feels tender regardless of how the muscle itself behaves at high heat.

Slicing with the grain leaves fibres at their full length. Even perfectly velveted beef sliced with the grain will feel chewy, because the velveting affects the fibre surface but not the fibre length. You can velvet correctly, cook correctly, and still produce tough beef by slicing in the wrong direction.

The grain is easy to identify on flank steak: hold the piece of beef up and look at the surface. The lines run in one direction. Your knife goes perpendicular to those lines.

Slice the beef 3-4mm thick. Thinner and the slices break apart in the wok. Thicker and they do not cook through in the brief sear time without overcooking the outside. Cut at a slight angle (45 degrees to the cutting board) to produce wider, flatter slices with more surface area for browning.

What does each sauce ingredient do in Chinese beef stir fry?

Oyster sauce. The primary flavour base. Oyster sauce is made from oyster extracts, sugar, salt, and thickeners. It contains naturally occurring glutamates from the oyster extract, its umami intensity is approximately 3 times that of regular soy sauce. In a hot wok, the sugars in oyster sauce caramelise at approximately 140-150°C, producing a slight bitter-sweetness and a dark, glossy colour. It does not taste of oyster in a finished dish, the oyster character cooks out leaving pure savoury depth.

Dark soy sauce. Dark soy is for colour, not seasoning. It is thick, slightly sweet, and much lower in sodium relative to its volume than light soy. One tablespoon of dark soy turns the sauce a deep mahogany brown. Do not substitute regular or light soy sauce for dark soy, the colour will be pale and the flavour will be flat and overly salty.

Light soy sauce. Light soy is for seasoning, not colour. High sodium, thin consistency, almost no colour contribution. The ratio of dark to light soy determines the saltiness and colour simultaneously.

Cornstarch. Cornstarch gelatinises at approximately 95°C in liquid. Gelatinised starch traps water molecules in a network of swollen starch granules, creating viscosity. This is what produces a glossy, clingy sauce rather than a watery one. The ratio matters: 1 teaspoon of cornstarch per 3 tablespoons of liquid produces a medium-viscosity sauce that coats the beef without turning gluey. Always mix cornstarch with cold liquid before adding to the wok. Dry cornstarch added to a hot wok produces lumps that do not dissolve.

Shaoxing wine. Shaoxing is a Chinese rice wine containing volatile aromatic compounds including esters, aldehydes, and organic acids. These compounds evaporate rapidly on contact with a very hot wok, creating the aromatic burst that fills the kitchen when you add the wine. They also react with the Maillard compounds on the beef surface, adding complexity to the flavour. Add Shaoxing wine directly to the hot wok after searing the beef, the evaporation is the function, not the residual liquid. Dry sherry substitutes at equal quantity. Do not substitute rice wine vinegar, it is acidic, not alcoholic, and produces a sour rather than aromatic result.

Sesame oil. Added off heat at the end. Sesame oil has a low smoke point and burns at high temperatures, losing its fragrance and turning bitter. It is a finishing oil, not a cooking oil. One teaspoon added off heat provides aromatic depth that cooking oil cannot replicate.

What is the best cut of beef for Chinese stir fry?

Flank steak is the benchmark. Clear grain direction makes it easy to slice against the grain correctly. Good beef flavour. Requires baking soda velveting for 25-30 minutes. Available in most supermarkets.

Skirt steak has stronger beef flavour than flank and a similar grain structure, but is harder to slice evenly because the fibres run at a slight angle. Excellent if you can find it. Treat the same as flank.

Sirloin is more tender than flank by nature and requires either a shorter baking soda treatment (15 minutes) or cornstarch velveting only. Less beef flavour than flank but produces an exceptionally silky result with minimal velveting.

Chuck is an economical option that requires the full 30-minute baking soda treatment. The marbling through chuck adds flavour but the irregular grain direction makes it harder to slice correctly. Slice thinner than flank, 2-3mm, to compensate for the coarser fibre structure.

Avoid tenderloin and ribeye for stir fry. Both are expensive cuts that are already tender without velveting. High-heat stir frying overcooks them before the exterior has time to sear properly. Save those cuts for other applications.

Ingredients

Chinese beef stir fry ingredients laid flat — flank steak, broccoli, bell pepper, snap peas, garlic, ginger, oyster sauce, soy sauces, Shaoxing wine and cornstarch on white surface

Serves 4

Beef and velveting marinade:

  • 500g (1lb 2oz) flank steak, sliced 3-4mm against the grain
  • ¼ tsp baking soda
  • 3 tbsp cold water
  • 1 tbsp cornstarch
  • 1 tbsp neutral oil
  • 1 tsp light soy sauce
  • 1 tsp Shaoxing wine

Sauce (mix in advance):

  • 3 tbsp oyster sauce
  • 1 tbsp dark soy sauce
  • 1 tbsp light soy sauce
  • 1 tsp Shaoxing wine
  • 1 tsp cornstarch
  • 1 tsp white sugar
  • 3 tbsp cold water or beef stock
  • ½ tsp sesame oil (added off heat at the end)

For the stir fry:

  • 3 tbsp neutral oil (divided)
  • 4 garlic cloves, minced
  • 2cm fresh ginger, grated
  • 200g broccoli florets, blanched 90 seconds
  • 1 red bell pepper, sliced
  • 3 spring onions, cut into 3cm pieces
  • 1 tbsp Shaoxing wine (for the wok)

Instructions

Read through all steps before starting. Everything must be ready before the wok is lit. Stir fry moves too fast for mid-cook preparation.

Step 1: Velvet the beef (start 35 minutes before cooking)

Raw flank steak strips coated in velveting marinade — cornstarch, soy sauce and Shaoxing wine in a ceramic bowl on linen surface

Slice the flank steak against the grain, 3-4mm thick, at a slight angle to the cutting board. Place in a bowl. Add baking soda and cold water. Mix with your hands until the beef absorbs the liquid. Leave at room temperature for 25-30 minutes. Do not exceed 30 minutes.

After marinating, rinse the beef under cold running water for 60-90 seconds until the water runs clear. Drain well and pat dry with kitchen paper. The beef must be as dry as possible before the secondary marinade, surface moisture inhibits browning during searing.

Add cornstarch, neutral oil, light soy sauce, and Shaoxing wine to the drained, dried beef. Mix well. Leave for 10 minutes while you prepare everything else.

Step 2: Mix the sauce

Combine all sauce ingredients except the sesame oil in a small bowl. Stir until the cornstarch is fully dissolved, no white streaks. Set aside. The sesame oil goes in off heat at the very end.

Step 3: Blanch the broccoli

Bring a pot of salted water to a boil. Add broccoli florets and cook for exactly 90 seconds. Drain and immediately run under cold water to stop cooking. The broccoli should be bright green and just barely tender, it will finish in the wok. Fully cooked broccoli turns yellow and mushy in the stir fry.

Step 4: Sear the beef in batches

Velveted flank steak strips searing in a single layer in a carbon steel wok showing deep mahogany crust on linen surface

This is the step most home recipes get wrong by cooking too much beef at once.

Place a carbon steel wok over maximum heat. Heat empty for 2 minutes until beginning to smoke. Add 1.5 tablespoons of neutral oil and swirl to coat.

Add half the beef in a single layer. Do not stir. Press gently against the wok surface. Leave for 45-60 seconds until the bottom develops a brown crust. Flip each piece once. Cook 20-30 seconds on the second side. The beef should be seared on the outside and slightly undercooked inside, it finishes in the sauce.

Remove to a plate. Wipe the wok with a folded piece of kitchen paper (carefully, it is extremely hot). Add remaining oil. Repeat with the second batch.

The reason for batches: 250g of cold velveted beef added to the wok drops the temperature significantly. The wok recovers and reaches searing temperature again within 20-30 seconds. 500g of beef drops the temperature further and the recovery takes 60-90 seconds, long enough for the beef to steam in its own moisture rather than sear. Steamed beef is grey and soft. Seared beef is brown and has texture.

Step 5: Build the aromatics

After removing the second batch of beef, add a small amount of oil if the wok looks dry. Add garlic and ginger. Stir for 20-30 seconds until fragrant. Add the Shaoxing wine directly to the hot wok, it will evaporate immediately with a fragrant burst of steam. This is the aromatic bloom that defines the dish’s flavour profile.

Step 6: Stir fry the vegetables

Add the blanched broccoli and bell pepper. Toss over high heat for 60-90 seconds. The vegetables should develop some colour and the broccoli should be hot through.

Step 7: Bring everything together

 Finished Chinese beef stir fry in a carbon steel wok — beef strips, broccoli, bell pepper and snap peas coated in glossy oyster sauce glaze on linen surface

Return all the seared beef to the wok. Pour the sauce over everything immediately. Toss quickly to coat every piece. The sauce will thicken in approximately 30-45 seconds as the cornstarch gelatinises. It should turn glossy and cling to the beef and vegetables. If it thickens too quickly or looks tight, add a splash of water and toss once more.

Add the spring onions. Remove from heat. Add sesame oil. Toss once. Serve immediately over steamed jasmine rice.

Why do you cook Chinese stir fry in small batches?

This question has a physics answer, not a technique preference.

When protein hits a hot wok surface, two things compete: the heat from the wok trying to create a Maillard reaction on the meat surface, and the moisture inside the meat trying to escape as steam. If the heat wins, wok temperature stays above 140°C after the meat is added, the surface dries out fast enough to brown before the moisture escapes in volume. If the moisture wins, the wok temperature drops below 140°C and recovers slowly, the surface stays wet, the meat steams, and no Maillard reaction occurs.

A single batch of 250g of cold beef drops the wok temperature by approximately 50-80°C on contact. A domestic hob recovers that temperature in 20-30 seconds, fast enough for Maillard browning to occur. Two batches of 500g total drops the temperature further and takes 60-90 seconds to recover. During those 60-90 seconds, the beef is steaming. Grey, moist, no crust.

Cook the beef in two batches of approximately 250g each. Wipe the wok between batches to remove any burnt residue. Reheat to smoking before the second batch. The 2 minutes this adds to the cook time produces a completely different result.

How do you store and reheat Chinese beef stir fry?

Chinese beef stir fry keeps in the refrigerator for 2 days in a sealed container. The beef will continue to absorb the sauce and the cornstarch coating may soften overnight.

To reheat: add a small amount of oil to a very hot wok. Add the stir fry and toss over high heat for 60-90 seconds until hot through. Add a splash of water if the sauce has thickened too much. Do not microwave, it steams the beef and makes the broccoli yellow and soft.

The velveted beef can be prepared and refrigerated (after rinsing, before the secondary marinade) for up to 24 hours. This makes same-day cooking significantly faster.

Love Chinese food?

Check out my complete guide to Chinese home cooking, pantry essentials, and techniques.

READ THE GUIDE

FAQ

How long should you velvet beef in baking soda? 25-30 minutes at room temperature. Below 20 minutes and the alkaline tenderisation is incomplete. Above 30 minutes and the baking soda continues breaking down protein past tenderisation into degradation, producing a mushy texture. The 30-minute maximum is a hard limit, not a guideline. After marinating, rinse thoroughly under cold water for 60-90 seconds to remove all baking soda before cooking.

Can you make Chinese beef stir fry without Shaoxing wine? Dry sherry substitutes at equal quantity and is the closest approximation, both are fermented grain wines with similar aromatic compounds. Rice wine vinegar is not a substitute, it is acidic not alcoholic and produces a sour result. If neither is available, omit it entirely rather than substituting with a non-alcoholic liquid. The dish loses the aromatic bloom but the flavour is otherwise complete.

Why does my beef stir fry turn out grey and wet instead of browned? Two causes. First, too much beef cooked at once, the wok temperature drops and the beef steams instead of sears. Cook in batches of 250g maximum per batch. Second, the beef was not dry enough before searing, surface moisture prevents browning. After rinsing the baking soda off, pat the beef completely dry before adding the secondary marinade.

What vegetables work in Chinese beef stir fry? Broccoli, bok choy, Chinese broccoli (gai lan), snow peas, bell pepper, baby corn, mushrooms, and water chestnuts all work well. Vegetables with similar density should be grouped together, broccoli and bell pepper cook at similar speeds. Delicate vegetables like spinach go in the final 30 seconds. Dense vegetables like carrots need 2-3 minutes and should be blanched first like the broccoli in this recipe.

You might also like: Check out our complete Chinese cooking guide for more essential ingredients and techniques.

Main Course

Chinese Beef Stir Fry Recipe (Oyster Sauce)

Chinese
Medium
4
Main Ingredients

Chinese, Main Dish, High-Protein

Prep

35M (includes 30 min velveting)

Cook

PT15M

Total

PT50M

Nutrition Facts

Calories 208
Protein 9 g
Fat 14 g
Carbs 11 g

Ingredients

  • 500g (1lb 2oz) flank steak, sliced 3-4mm against the grain
  • ¼ tsp baking soda
  • 3 tbsp cold water
  • 1 tbsp cornstarch
  • 1 tbsp neutral oil
  • 1 tsp light soy sauce
  • 1 tsp Shaoxing wine
  • 3 tbsp oyster sauce
  • 1 tbsp dark soy sauce
  • 1 tbsp light soy sauce
  • 1 tsp Shaoxing wine
  • 1 tsp cornstarch
  • 1 tsp white sugar
  • 3 tbsp cold water or beef stock
  • ½ tsp sesame oil (added off heat at the end)
  • 3 tbsp neutral oil (divided)
  • 4 garlic cloves, minced
  • 2cm fresh ginger, grated
  • 200g broccoli florets, blanched 90 seconds
  • 1 red bell pepper, sliced
  • 3 spring onions, cut into 3cm pieces
  • 1 tbsp Shaoxing wine (for the wok)

Instructions

  1. Step 1: Velvet the beef (start 35 minutes before cooking) - Slice the flank steak against the grain, 3-4mm thick, at a slight angle to the cutting board. Place in a bowl. Add baking soda and cold water. Mix with your hands until the beef absorbs the liquid. Leave at room temperature for 25-30 minutes. Do not exceed 30 minutes. After marinating, rinse the beef under cold running water for 60-90 seconds until the water runs clear. Drain well and pat dry with kitchen paper. The beef must be as dry as possible before the secondary marinade, surface moisture inhibits browning during searing. Add cornstarch, neutral oil, light soy sauce, and Shaoxing wine to the drained, dried beef. Mix well. Leave for 10 minutes while you prepare everything else.
  2. Step 2: Mix the sauce - Combine all sauce ingredients except the sesame oil in a small bowl. Stir until the cornstarch is fully dissolved, no white streaks. Set aside. The sesame oil goes in off heat at the very end.
  3. Step 3: Blanch the broccoli - Bring a pot of salted water to a boil. Add broccoli florets and cook for exactly 90 seconds. Drain and immediately run under cold water to stop cooking. The broccoli should be bright green and just barely tender, it will finish in the wok. Fully cooked broccoli turns yellow and mushy in the stir fry.
  4. Step 4: Sear the beef in batches - This is the step most home recipes get wrong by cooking too much beef at once. Place a carbon steel wok over maximum heat. Heat empty for 2 minutes until beginning to smoke. Add 1.5 tablespoons of neutral oil and swirl to coat. Add half the beef in a single layer. Do not stir. Press gently against the wok surface. Leave for 45-60 seconds until the bottom develops a brown crust. Flip each piece once. Cook 20-30 seconds on the second side. The beef should be seared on the outside and slightly undercooked inside, it finishes in the sauce. Remove to a plate. Wipe the wok with a folded piece of kitchen paper (carefully, it is extremely hot). Add remaining oil. Repeat with the second batch. The reason for batches: 250g of cold velveted beef added to the wok drops the temperature significantly. The wok recovers and reaches searing temperature again within 20-30 seconds. 500g of beef drops the temperature further and the recovery takes 60-90 seconds, long enough for the beef to steam in its own moisture rather than sear. Steamed beef is grey and soft. Seared beef is brown and has texture.
  5. Step 5: Build the aromatics - After removing the second batch of beef, add a small amount of oil if the wok looks dry. Add garlic and ginger. Stir for 20-30 seconds until fragrant. Add the Shaoxing wine directly to the hot wok, it will evaporate immediately with a fragrant burst of steam. This is the aromatic bloom that defines the dish's flavour profile.
  6. Step 6: Stir fry the vegetables - Add the blanched broccoli and bell pepper. Toss over high heat for 60-90 seconds. The vegetables should develop some colour and the broccoli should be hot through.
  7. Step 7: Bring everything together - Return all the seared beef to the wok. Pour the sauce over everything immediately. Toss quickly to coat every piece. The sauce will thicken in approximately 30-45 seconds as the cornstarch gelatinises. It should turn glossy and cling to the beef and vegetables. If it thickens too quickly or looks tight, add a splash of water and toss once more. Add the spring onions. Remove from heat. Add sesame oil. Toss once. Serve immediately over steamed jasmine rice.

Did you make this recipe?

Tag @asianfoodsdaily on Instagram or leave a comment below!

Asha

About Asha

Half Asian, half African cook raised between two food-obsessed cultures. I've spent 10 years learning Asian cooking traditions through family, friends, and thousands of hours at the stove — testing every dish until it works in a standard home kitchen.

Read my full story
#Chinese #Main Dish #High-Protein #Weeknight Dinner Collection #Main Course

Related Recipes

Post your Comment

Loading comments...