This post may contain affiliate links. Please read our disclosure policy.
Beef with Chinese broccoli is a classic Cantonese stir-fry made with tender slices of beef, crisp gai lan, and a rich, savory garlic sauce. The sauce is built with oyster sauce and soy sauce, giving it a deep brown color and rich, savory flavor.
It’s a simple and quick stir-fry dish that focuses on getting the texture just right—juicy beef, crisp-tender greens, and a glossy sauce that brings everything together in one flavorful bite.

Why this beef stir-fry recipe works

This recipe focuses on the key techniques that make a stir-fry turn out right—tender beef, crisp Chinese broccoli, and a well-balanced sauce. Each step is organized so you can understand what to do and what to look for as you cook.
- Tender, juicy beef (not chewy): You’ll learn how to slice and velvet the beef properly so it stays soft and flavorful.
- Crisp-tender Chinese broccoli (gai lan): The stems and leaves are prepared and cooked separately so everything finishes at the right texture.
- Clear timing and heat control: The steps guide you through when to increase heat, when to move quickly, and what cues to watch for.
- Balanced, savory sauce that brings it all together: A rich garlic oyster sauce that lightly coats the ingredients and ties the dish together.
Ingredients
This dish comes together with three simple components—velveted beef, fresh aromatics and Chinese broccoli, and a light savory sauce. Each part helps build the flavor and texture of the dish.

Velveted beef (tender and juicy)
Velveting is a simple marinade technique that keeps the beef tender and juicy—the same method used in Chinese restaurants for stir-fries. (See my how to velvet beef article for more.)
- Thinly sliced beef (skirt steak, flank, or sirloin tip): These cuts are lean and ideal for quick cooking, giving you tender bites without excess fat.
- Soy sauce, black pepper, and fish sauce (optional): A light seasoning base that adds savory flavor. Fish sauce is optional, but it gives the beef an extra boost of umami.
- Baking soda, water, and starch (tapioca or potato): This combination helps tenderize the meat and creates a light coating that keeps the beef juicy during cooking.
Aromatics and Chinese broccoli (flavor + balance)
- Garlic and ginger: A classic aromatic base that gives the dish its signature fragrance and depth.
- Chinese broccoli (gai lan): A leafy green vegetable with thick stems and tender leaves. It has a slightly bitter, earthy taste that balances the rich beef and sauce. You can find it in most Asian grocery stores. (If unavailable, broccolini is the closest substitute.)
- Avocado oil (or other high-heat oil): A neutral oil that works well for stir-frying without overpowering the ingredients.
Beef and broccoli sauce (light, savory coating)
- Light soy sauce, dark soy sauce, and oyster sauce: These create a balanced, savory sauce with depth and color. (see my Asian gluten-free pantry guide for more).
- Chicken stock and Chinese cooking wine: The stock keeps the sauce light and fluid, while the cooking wine adds aroma.
- White pepper, sesame oil, and starch: White pepper adds gentle heat, sesame oil finishes with a nutty aroma, and starch lightly thickens the sauce so it coats the ingredients.
How to make beef with Chinese broccoli
Step 1: Slice and Velvet the Beef

- Slice the beef against the grain at a 45° angle
Hold your knife at a slight angle and slice as thin as possible. This gives you wider, flatter pieces that sear faster and absorb flavor more easily, so the beef stays tender and juicy. A thin, sharp boning knife works especially well here because it’s easier to control than a thicker, heavier chef’s knife.

- Marinate the beef (liquid first, starch last)
Add the marinade ingredients first (everything except the starch) and massage the beef until the liquid is fully absorbed. You’ll notice the beef turn slightly plump and take on a deeper color. Once the liquid is absorbed, sprinkle in the starch and massage again until evenly coated. - Rest briefly before cooking
Let the beef marinate for about 10 to 15 minutes. This is enough time for the meat to tenderize and absorb the seasoning. If you’re prepping ahead, you can stop here and keep the beef covered in the fridge—this step is done while the beef is still raw.
Step 2: Prepare the Chinese Broccoli
- Separate the stems from the leaves
Chinese broccoli has thick stems and soft, leafy tops, so they need to be prepared differently to cook evenly. The goal is to have crisp-tender stems and soft, tender leaves—without turning watery.

- Slice the stems on a slight angle
Cut the stems at a 45° angle into thin pieces. This creates flatter surfaces so they cook faster and more evenly, instead of staying tough in the center.

- Keep the stems and leaves dry and separate
After rinsing, drain well and keep the stems and leaves separate. This helps you control the cooking later and prevents excess moisture from turning your stir-fry watery.
Step 3: Sear the Beef
- Preheat a large pan until properly hot
Use a large sauté pan or wok (at least 12-inch) so it has enough room to hold all the ingredients later, especially the vegetables. Preheat over medium heat until the pan feels hot when you hover your hand above it. Add the oil—it should shimmer but not smoke. If it starts smoking, the pan is too hot. Take it off the heat briefly to cool down.

- Add the beef and spread it out immediately
Turn the heat up to medium-high, then add the beef. You should hear an immediate, steady sizzle. Quickly spread the beef into a single layer and avoid overcrowding, or it will release moisture and steam instead of sear. - Sear, then flip and remove
Let the beef sear undisturbed until the bottom is browned, then flip. The second side cooks much faster. The beef should be almost cooked through but still slightly under in the center. Transfer it out along with any pan juices.
Step 4: Cook the Chinese Broccoli
- Sauté the aromatics first
While the pan is still hot, add the garlic and ginger with a small pinch of salt. Sauté for about 15 seconds until fragrant. This builds the flavor base before adding the vegetables.

- Cook the stems, then the leaves
Add the broccoli stems first and stir-fry for about 1 minute, or until they turn from pale green to a more vibrant color but still remain crisp. Then add the leafy parts and continue tossing for another 1 minute, until the leaves are wilted. - Look for visual cues, not just time
The leaves should turn a deep, vibrant green and look wilted but still fresh—not dull or overcooked. The volume may look like a lot at first, but the vegetables will cook down quickly.
Step 5: Add the Sauce and Finish
- Stir the sauce, then return the beef
Give the sauce a quick stir before adding, since the starch tends to sink to the bottom. Return the beef to the pan, then pour in the sauce.

- Toss quickly over medium-high to high heat
Keep the heat at least medium-high, if not higher, and toss continuously. Keep everything moving so the sauce coats evenly without pooling. - Cook fast to control texture and consistency
Stir-frying is about high heat and constant motion. This helps the moisture evaporate quickly so the ingredients don’t stew or steam in the pan. The result should be a light sauce that clings to the beef and broccoli—not watery or heavy.
What to serve with beef and Chinese broccoli
This dish pairs well with simple sides that complement the savory beef and greens.
- Serve with rice: A bowl of Rice cooker white rice or Golden fried rice makes the perfect base to soak up the savory sauce and balance the flavors.
- Add a light soup: Pair it with something warm and comforting like Napa cabbage soup or Shiitake mushroom soup with tofu to round out the meal.
- Include a refreshing pickle: Bright, tangy sides like Asian pickled cucumbers or Pickled garlic help cut through the richness and add contrast.
Beef with Chinese broccoli recipe

Ingredients
For the beef:
- 1.25 lb. skirt steak or sirloin tip, flank, flap, or sirloin steak
- 1 tbsp soy sauce or 1.5 tbsp coconut aminos
- ½ tbsp fish sauce optional but adds extra umami
- ⅛ tsp black pepper
- ½ tsp baking soda
- 2 tsp olive oil
- 2 tsp toasted sesame oil
- 2-2.5 tbsp water
- 1.5 tbsp starch tapioca or potato starch
Aromatics and veggies:
- 1 oz garlic clove finely minced (5-6 large)
- 0.4 oz ginger finely minced (1.5 tbsp minced)
- 1 lb. Chinese broccoli
- 2.5 tbsp avocado oil divided
Beef broccoli sauce:
- 1.5 tbsp light soy sauce
- 1 tbsp dark soy sauce
- 2 tbsp oyster sauce
- ¼ tsp ground white pepper
- 1 tsp toasted sesame oil
- ½ cup chicken stock
- 1 tbsp Chinese cooking wine or dry sherry
- 2 tsp starch
Equipment
- 1 Splatter guard optional
Instructions
Beef prep:
- Thinly slice beef: Hold your knife at a 45-degree angle to create wider, flatter slices. Slice the beef against the grain into thin pieces, about ⅛-inch thick.
- Tenderize and marinate: In a bowl, add the beef and season with everything from soy sauce to sesame oil. Add the water little by little, massaging the beef until fully absorbed. Sprinkle in the starch and mix until evenly coated. Cover and marinate in the fridge for 15 minutes, or up to 1 day in advance.
Chinese broccoli prep:
- Trim off the dry ends (about ¼ inch, depending on freshness). Make a slice to separate the stems from the leafy parts. Slice the stems at a 45-degree angle so they cook faster. Cut the leafy sections into 2 parts if long. Keep the stems in one pile and the leaves another. Rinse, drain well, and shake off excess water.
Aromatics and sauce prep:
- Finely mince the garlic and ginger. Mix the sauce in a bowl and set aside.
Sear the beef:
- Preheat a large 12-inch sauté pan or wok over medium heat with 1 tbsp oil until shimmering. Turn heat up to medium-high. Add the beef and spread into a single layer. You should hear a strong sizzle—if not, increase the heat.
- Sear undisturbed for about 2 minutes, until browned on the bottom. Flip and sear the other side for 30 seconds to 1 minute. Transfer the beef out (including juices). It should be almost cooked through.
Saute aromatics:
- While the pan is still hot, reduce the heat to medium, add the remaining 1.5 tbsp oil. Saute garlic and ginger with a small pinch of salt and saute for about 15 seconds, until fragrant.
Add the broccoli:
- Turn heat to medium-high. Add the stems first and sauté for about 1 minute, until bright green but still crisp. Add the leafy parts and toss for 1–1.5 minutes, until wilted and vibrant. (It may look like a lot at first, but it cooks down quickly.)
Combine:
- Beef and the sauce: Return the beef to the pan. Stir the sauce again before pouring it in. Keep the heat at medium-high or higher.Toss for 15–20 seconds, until the sauce lightly thickens. Turn off the heat.
Serve:
- Transfer to a large serving plate. Serve hot with rice or fried rice!
Notes
- Cookware: Use a large sauté pan or wok. A 12-inch (31 cm) pan works best.
Use a splatter guard (not a lid): A lid traps moisture and makes the stir-fry soggy. - Best beef cuts: Flank, skirt, sirloin tip, or flap steak. These are easier to slice thin and stay tender.
- Knife tip: A sharp boning knife works well for thin, controlled slicing.
- Slicing technique: Always slice against the grain at a 45-degree angle for tender yet thin bites.
- Heat matters: The pan should be hot enough to maintain a steady sizzle throughout cooking.
- Chinese broccoli substitute: use 2 bundles of broccolini instead.
- Make ahead:
- You can slice and marinate the raw beef (velveted beef) up to 1–2 days in advance. Keep it in a sealed container in the fridge until ready to cook.
- You can also freeze the raw velveted beef (flash freeze flat in a freezer bag) up to 2 months. Defrost overnight in the fridge.
- Storage: Store leftovers in an airtight container in the fridge for up to 4 days.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.
FAQs
No. You can stir-fry it directly. As long as you slice the stems thinly and cook the stems before the leaves, the broccoli will cook evenly without blanching.
This usually comes down to the cut and how you slice the beef. Use a tender cut like flank, skirt, or sirloin flap, and slice it as thin as possible against the grain. Then follow the velveting steps in the recipe—this combination keeps the beef tender and juicy.
This usually comes down to heat, pan size, and timing. If the pan isn’t hot enough or is overcrowded, the ingredients will steam instead of sear. Also pay attention to the timing and temperature control—I recommend reading through the whole recipe before you start.
More Chinese Beef Stir-Fry Recipes
Here are a few more classic Chinese beef stir-fries to try:
- Chinese pepper steak – A savory stir-fry with tender thin beef strips and peppers in a rich sauce.
- Beef with garlic sauce – Bold, garlicky, and packed with umami flavor.
- Beef with oyster sauce – A simple, classic combination with a deep, savory sauce.
Made a dish and loved it? Please rate the recipe and leave a comment in the section below! It helps my blog grow organically, allowing me to continue sharing free and awesome content with you. Thank you!












