Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 lb (450 g) flank or sirloin steak, thinly sliced against the grain
- 4 cups (300 g) broccoli florets (stems peeled and sliced optional)
- 3 tbsp neutral oil (divided)
- 3 cloves garlic, minced; 1 tbsp fresh ginger, grated
- Marinade: 1 tbsp low-sodium soy sauce, 1 tbsp Shaoxing wine or dry sherry (or 1 tbsp rice vinegar), 1 tsp cornstarch, 1/4 tsp baking soda, 1 tsp toasted sesame oil, pinch white pepper
- Sauce: 1/3 cup low-sodium soy sauce, 1/3 cup beef/chicken broth or water, 1 tbsp oyster sauce, 1 1/2 tbsp brown sugar, 1 tbsp rice vinegar, 2 tsp cornstarch, 1/2 tsp toasted sesame oil, 1/4–1/2 tsp red pepper flakes
- 3 cups cooked jasmine rice
- 1 tbsp toasted sesame seeds; 2 scallions, thinly sliced
Do This
- 1. Toss sliced beef with the marinade; rest 10–15 minutes in the fridge.
- 2. Whisk all sauce ingredients until smooth; set aside.
- 3. Heat a wok or large skillet on high until just smoking (about 2–3 minutes). Add 1 tbsp oil, sear half the beef 60–90 seconds; remove. Repeat with 1 tbsp oil and remaining beef.
- 4. Add 1 tbsp oil; stir-fry broccoli 2 minutes, splash in 2 tbsp water, cover 1 minute to steam. Add garlic and ginger; toss 30 seconds.
- 5. Return beef to pan. Stir sauce, pour in, and toss 60–90 seconds until thick, glossy, and coats everything.
- 6. Serve over hot jasmine rice; finish with sesame seeds and scallions.
Why You’ll Love This Recipe
- Restaurant flavor in 30 minutes with simple pantry staples.
- Garlicky soy–ginger sauce that’s glossy, balanced, and not too salty.
- Crisp-tender broccoli and ultra-juicy, thin-sliced beef.
- Reliable, weeknight-friendly method with pro tips for perfect stir-fry.
Grocery List
- Produce: Broccoli, garlic, fresh ginger, scallions
- Dairy: None
- Pantry: Jasmine rice, low-sodium soy sauce, oyster sauce, rice vinegar, brown sugar, cornstarch, toasted sesame oil, neutral oil, red pepper flakes, white pepper (optional), Shaoxing wine or dry sherry
Full Ingredients
Beef and Marinade
- 1 lb (450 g) flank steak or sirloin, very thinly sliced against the grain
- 1 tbsp low-sodium soy sauce
- 1 tbsp Shaoxing wine or dry sherry (or 1 tbsp rice vinegar)
- 1 tsp cornstarch
- 1/4 tsp baking soda
- 1 tsp toasted sesame oil
- Pinch white pepper (optional)
Sauce
- 1/3 cup (80 ml) low-sodium soy sauce
- 1/3 cup (80 ml) beef or chicken broth (or water)
- 1 tbsp oyster sauce
- 1 1/2 tbsp brown sugar (or 1 tbsp honey)
- 1 tbsp rice vinegar
- 2 tsp cornstarch
- 1/2 tsp toasted sesame oil
- 1/4–1/2 tsp red pepper flakes (to taste)
Stir-Fry & Aromatics
- 4 cups (300 g) broccoli florets (peel and slice stems if you like)
- 3 tbsp neutral oil (such as canola, peanut, or avocado), divided
- 3 cloves garlic, minced
- 1 tbsp fresh ginger, grated
- 2 tbsp water (to steam broccoli)
To Serve
- 3 cups cooked jasmine rice (from about 1 to 1 1/4 cups uncooked)
- 1 tbsp toasted sesame seeds
- 2 scallions, thinly sliced

Step-by-Step Instructions
Step 1: Cook the rice
Rinse 1 to 1 1/4 cups jasmine rice under cool water until it runs mostly clear. Combine with 2 to 2 1/4 cups water and a pinch of salt in a saucepan. Bring to a boil over medium-high heat (about 212°F), then reduce to low, cover, and simmer 18 minutes. Turn off the heat and rest, covered, 5 minutes. Fluff and keep warm. Alternatively, use a rice cooker following the manufacturer’s water line.
Step 2: Slice and marinate the beef
For easy thin slicing, partially freeze the beef for 10–15 minutes. Slice against the grain into 1/8- to 1/4-inch (3–6 mm) pieces. In a bowl, mix soy sauce, Shaoxing wine (or rice vinegar), cornstarch, baking soda, sesame oil, and white pepper. Add beef and toss to coat. Marinate 10–15 minutes in the refrigerator. Note: baking soda tenderizes quickly—do not exceed 45 minutes.
Step 3: Whisk the sauce and prep aromatics
In a measuring cup, whisk soy sauce, broth, oyster sauce, brown sugar, rice vinegar, cornstarch, sesame oil, and red pepper flakes until smooth. Mince garlic and grate ginger; keep them ready near the stove. This sauce will thicken fast, so have everything within reach.
Step 4: Pre-cook the broccoli
Heat a wok or large 12-inch skillet over high heat until a faint wisp of smoke appears (2–3 minutes; surface about 450–500°F if using an infrared thermometer). Add 1 tbsp oil, then the broccoli. Stir-fry 2 minutes. Splash in 2 tbsp water and cover (or use a large lid) to steam 1 minute until crisp-tender and bright green. Add garlic and ginger; stir 30 seconds until fragrant. Transfer broccoli to a bowl.
Step 5: Sear the beef in batches
Return the pan to high heat. Add 1 tbsp oil. Lift beef out of the bowl, letting excess marinade drip off. Add half the beef in an even layer and sear undisturbed 60–90 seconds, then stir-fry another 30–60 seconds until mostly browned but still slightly pink. Transfer to the bowl with broccoli. Repeat with remaining 1 tbsp oil and beef.
Step 6: Sauce and finish
Give the sauce a quick stir (cornstarch settles). Pour it into the hot pan and cook, stirring, 20–30 seconds until it starts to thicken and turn glossy. Return beef and broccoli to the pan. Toss 60–90 seconds until everything is coated and the beef is just cooked through and tender. If it gets too thick, splash in 1–2 tbsp water to loosen.
Step 7: Serve and garnish
Spoon the beef and broccoli over bowls of hot jasmine rice. Sprinkle with toasted sesame seeds and scallions. Serve immediately while the sauce is silky and the broccoli is crisp.
Pro Tips
- Thin slices = tenderness. Freeze steak 10–15 minutes for easier, wafer-thin cuts against the grain.
- Velveting works. A pinch of baking soda plus cornstarch in the marinade keeps beef juicy like your favorite takeout.
- Heat is everything. Preheat the wok until lightly smoking for great sear and no steaming.
- Same-size florets. Uniform broccoli pieces cook evenly; don’t toss the stems—peel and slice them.
- Balance the salt. Use low-sodium soy and taste the sauce; add a splash of water if it’s stronger than you like.
Variations
- Spicy chili style: Stir in 1–2 tsp chili-garlic sauce or gochujang with the sauce and add dried chiles to the oil.
- Orange-ginger: Add 1 tsp orange zest and 2 tbsp orange juice to the sauce for a bright citrus note.
- Protein swap: Substitute thin-sliced chicken thigh or extra-firm tofu (pressed and cornstarch-dusted) for the beef.
Storage & Make-Ahead
Refrigerate leftovers in an airtight container for up to 4 days. Reheat in a skillet over medium heat with a splash of water until hot and glossy, or microwave until steaming. Cooked jasmine rice keeps 4 days refrigerated; cool it quickly and reheat until piping hot. Freeze stir-fry (without rice) up to 2 months; thaw overnight and reheat gently. Prep-ahead: Slice broccoli and mix the sauce up to 3 days ahead. Marinate beef 10–45 minutes before cooking; if you need to marinate longer, omit the baking soda and marinate up to 12 hours, then add 1/4 tsp baking soda 15 minutes before cooking.
Nutrition (per serving)
Approximate: 520 calories; 30 g protein; 55 g carbohydrates; 16 g fat; 4 g fiber; 1150 mg sodium; 5 g added sugar. Values will vary based on brands and how much oil remains in the pan.
