
Beef & Broccoli (西兰花炒牛肉)
西兰花炒牛肉 · xī lán huā chǎo niú ròu
A favorite in Cantonese home kitchens and takeout menus alike. The difference between 'good' and 'soggy' comes down to two things: velveted beef, and broccoli that's blanched then flash-fried, never stewed.
Recipe author: HǎoWèi Test Kitchen
Home-cooking research team
Reviewed by HǎoWèi editorial team · Last updated 2026-08-29
Ingredients
- flank steak (or sirloin), sliced thin against the grain牛肉片🛒 local350 g
- broccoli, cut into small florets西兰花🛒 local1 head (~400 g)
- light soy sauce (marinade)生抽🏮 asian1 tbsp
- Shaoxing wine (marinade)料酒🏮 asian1 tbsp
- cornstarch (marinade)玉米淀粉🛒 local1 tbsp
- neutral oil (marinade, to seal)食用油🛒 local1 tsp
- oyster sauce蚝油🏮 asian2 tbsp
- light soy sauce (sauce)生抽🏮 asian1 tbsp
- cornstarch slurry (1 tsp starch + 2 tbsp water)水淀粉🛒 local3 tbsp total
- garlic, sliced蒜片🛒 local3 cloves
- ginger, sliced姜片🛒 local1 tsp
- neutral oil for cooking食用油🛒 local2 tbsp
- salt (for blanching)盐🛒 local1 tsp
flank steak (or sirloin), sliced thin against the grain: Slicing against the grain is 80% of tender beef.
🌶️ Adjust to your taste
Pick a level and we'll show exactly how much to change — no more "适量".
Spice level
Saltiness
Oiliness
Make it vegetarian
Instructions
1Slice beef thinly against the grain. Marinate with soy, Shaoxing, and cornstarch; finish with 1 tsp oil to seal. Rest 10 minutes.
牛肉逆纹切片,上浆腌10分钟
🔍 Look for 10 分钟 · 10 minutesVisual: 牛肉裹上一层有光泽的淀粉浆Beef coated in a glossy starchy glaze
You know it's right when: 浆液均匀附着,无干斑Glaze clings evenly, no dry patches
Freeze the beef 20 minutes first for easier thin slicing.
2Blanch broccoli in boiling salted water 60-90 seconds, then shock in cold water. Drain well.
焯西兰花后过冷水
🔍 Look for 60-90 秒 · 60-90 secondsVisual: 西兰花变翠绿,口感脆嫩Broccoli turns bright green and is crisp-tender
You know it's right when: 叉子能轻易扎透梗部,花朵仍保持形状Stem pierces easily with a fork but florets still hold shape
Shocking stops the cooking — this is what keeps it green and snappy.
3Mix sauce: oyster sauce + soy + cornstarch slurry in a small bowl.
调碗汁
🔍 Look for 1 分钟 · 1 minuteVisual: 淀粉完全溶解,碗汁均匀Slurry fully dissolved, sauce uniform
You know it's right when: 碗底无淀粉结块No starch lumps at the bottom of the bowl
4Heat 1.5 tbsp oil in a wok over high until smoking lightly. Add beef in one layer; sear 1 minute, then stir-fry until 80% cooked. Remove.
大火滑炒牛肉
🔍 Look for High heat 2 分钟 · 2 minutesVisual: 牛肉边缘煎至棕褐,内部依然微粉Beef sears brown on edges, still slightly pink inside
You know it's right when: 牛肉能轻松从锅底脱离(别过早翻动)Beef releases from the pan easily (don't stir too early)
5Add remaining oil + garlic + ginger; stir 15 seconds until fragrant. Return beef with any juices.
爆香蒜姜,回锅牛肉
🔍 Look for High heat 15 秒 · 15 secondsVisual: 蒜片边缘刚开始变色Garlic edges just begin to color
You know it's right when: 香气立刻迸发Fragrant immediately
6Add broccoli, pour in the sauce. Toss rapidly 30-45 seconds until glossy and everything is coated.
下西兰花,烹汁翻匀
🔍 Look for High heat 30-45 秒 · 30-45 secondsVisual: 碗汁变浓,在牛肉和西兰花上形成光泽挂汁Sauce thickens to a glossy coat over beef and broccoli
You know it's right when: 汤汁挂住食材,锅底无积水Sauce clings, no puddle left in the pan
Tips
- · Slicing against the grain + velveting = restaurant-tender beef at home.
- · Blanching the broccoli means the stir-fry is only 1 minute — nothing gets soggy.
- · Vegetarian? Swap beef for firm tofu (1:1) and use mushroom oyster sauce.
Sources & references
Quantities, technique notes, and substitution ratios are cross-checked against established Chinese cookery references and standard food-science sources.
- Read our editorial policy
- Fuchsia Dunlop, Land of Plenty: A Treasury of Authentic Sichuan Cooking
- USDA FoodData Central — ingredient nutrition and portion data
- Traditional Chinese family-kitchen practice and regional taste records
Common questions
Can I skip Shaoxing wine? What's the substitute?
Dry sherry is the closest 1:1 swap (fidelity ~80%). No sherry? Use a splash of white wine plus a little water, or just skip it and add a tiny extra pinch of sugar — the wine's job is depth and removing meat's gamey notes, and a good marinade covers most of it.
Source: HǎoWèi substitution engine
Is there a vegan substitute for oyster sauce?
Yes — 'mushroom oyster sauce' (often labeled vegetarian/vegan) is sold in most Asian grocers and increasingly in mainstream supermarkets. It behaves 1:1 and adds the same glossy umami. Watch labels if you're also gluten-free; most brands are GF, some aren't.
Source: HǎoWèi substitution engine
Why do you cook the aromatics (garlic/ginger) first on low heat?
Aromatics contain oils and sugars that turn bitter if scorched. Gentle heat (low-medium) lets garlic and ginger release their fragrance without browning too fast. If the pan is too hot, garlic goes bitter within seconds — that's why we always add aromatics first, before the main ingredients.
Source: Chinese Cooking Demystified technique library
Ingredient swaps
Can't find an Asian-market staple? Use these.
Swap: light soy sauce (marinade)
→ regular soy sauce
Ratio: 1:1 · Slightly saltier — dial salt back by a pinch.
Swap: Shaoxing wine (marinade)
→ dry sherry or mirin (less sweet)
Ratio: 1:1 · Both add the same warm fermented depth.
Swap: oyster sauce
→ hoisin + ½ tsp fish sauce (or soy)
Ratio: 1:1 · Sweeter and thicker; thin with a little water.
Don't make these mistakes
The traps every home cook hits — and how to avoid them.
✗ Crowding the pan — ingredients steam instead of sear.
✓ Fix: Cook in batches; give each piece room to brown.
✗ Adding sauce too early — the wok cools and flavors dull.
✓ Fix: Push food up the wok wall, add sauce to the hot center, toss fast.
🥢 Ask HǎoWèi
Questions about technique, ingredients, substitutions, and flavor — answered from our verified cooking knowledge base.
What to serve with it
A complete Chinese dinner in one plan — pick one from each role.
What cooks say
Made this? Leave a note.
- No comments yet — be the first!
Cook next

Kung Pao Chicken (宫保鸡丁)
宫保鸡丁 (Kung Pao Chicken (宫保鸡丁)) · gōng bǎo jī dīng

Mapo Tofu (麻婆豆腐)
麻婆豆腐 (Mapo Tofu (麻婆豆腐)) · má pó dòu fu

Egg Fried Rice (蛋炒饭)
蛋炒饭 (Egg Fried Rice (蛋炒饭)) · dàn chǎo fàn