Soups & Stews
This beef and gai lan recipe delivers a perfect balance of tender beef and crisp-tender Chinese broccoli, creating a dish that's both restaurant-quality and simple to prepare at home.
The secret lies in caramelizing the beef bites first, which builds deep flavor without overpowering the natural sweetness of the gai lan. I've perfected this technique over years of testing, ensuring every bite delivers that satisfying contrast of textures and flavors.
What makes this recipe stand out is the two-stage cooking process: first searing the beef until it develops a rich caramelized crust, then stir-frying with gai lan until the vegetables reach that ideal crisp-tender stage.
The result is beef that's perfectly tender yet still holds its shape, paired with gai lan that's bright green and just slightly crisp. This method transforms a simple stir-fry into something truly special, with flavors that develop as you cook.
The dish comes together in about 25 minutes, making it ideal for weeknight dinners when you want something flavorful without spending hours in the kitchen. The beef absorbs the savory sauce beautifully, while the gai lan maintains its vibrant color and satisfying crunch.
Serve it over steamed rice to soak up every last bit of that delicious sauce.
This recipe works equally well as a main dish or a side to complement other Asian-inspired meals. The balance of flavors and textures makes it universally appealing, whether you're cooking for family or treating yourself to a special meal.
Let's get started on creating this flavorful dish that's sure to become a favorite.
Ingredients for beef and gai lan
Here's what you need to create this restaurant-quality beef and gai lan stir-fry at home.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 ½ lb | Thinly sliced against grain |
| Gai Lan (Chinese Broccoli) 🥬 | 2 bunches | Stems trimmed to 2-inch pieces |
| Low Sodium Soy Sauce 🍶 | 3 tbsp | Kikkoman preferred |
| Oyster Sauce 🍶 | 2 tbsp | Lee Kum Kee brand |
| Sesame Oil 🫒 | 1 tbsp | Toasted sesame oil |
| Garlic Cloves 🧄 | 4 cloves | Minced finely |
| Fresh Ginger Root 🌿 | 1 tbsp | Grated finely |
| Neutral Oil 🫒 | 2 tbsp | Vegetable or canola oil |
| Brown Sugar 🍚 | 1 tbsp | Light or dark |
| Cornstarch 🌾 | 1 tbsp | For tenderizing beef |
| Green Onions 🧅 | 3 whole | Sliced diagonally |
| Sesame Seeds 🌾 | 1 tsp | Toasted for garnish |
| Salt 🧂 | ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ¼ tsp | Freshly ground |
The flank steak is your star here—look for well-marbled cuts at the butcher counter. Costco or Whole Foods usually have great options, but any grocery store's meat section works. Slice it thinly against the grain for that perfect tender bite. The gai lan should be bright green and crisp—Asian markets have the freshest bunches, but regular grocery stores carry it too. Just skip the wilted stems. For the sauces, Lee Kum Kee oyster sauce and Kikkoman soy sauce are the gold standards, but any decent brands will do. Toasted sesame oil is non-negotiable—it's what gives that authentic aroma.
No flank steak? Sirloin or ribeye work too, but slice it extra thin. Running out of gai lan? Substitute broccoli florets—they won't be identical, but it's a decent swap. The cornstarch is key for tenderizing—don't skip it. If you're short on time, pre-mince the garlic and ginger while the beef sears. The brown sugar adds just the right touch of sweetness—substitute honey if you prefer. For extra heat, add a pinch of red pepper flakes. The sesame seeds can be skipped if you're not a fan, but they add that final crunch that makes it restaurant-quality.
This dish reheats beautifully—just add a splash of water and stir-fry again. Keeps for 3-4 days in the fridge, but honestly tastes better the next day as flavors meld. For meal prep, portion into containers with rice—it makes lunches a breeze. The sauce leftovers? Store separately and use on noodles or eggs. Freeze the beef and gai lan separately for up to 3 months if you want to prep ahead.
Why You'll Love This Recipe
- One-Pan Magic: That’s right—just one pan, no fuss. Slice the flank steak thin, toss in gai lan stems first, then the leaves, and let the oyster sauce work its savory magic while you stir. The sesame oil finishes it all with a single drizzle, and honestly? Cleanup’s over before the kids even ask for seconds.
- Umami Bomb: Low-sodium soy and oyster sauce team up to create this deep, salty-sweet punch that clings to every bite. The gai lan’s slight bitterness balances the richness, and that last hit of sesame oil? Pure satisfaction—like a tiny flavor explosion in your mouth.
- Lunchbox Hero: Between us, this is my go-to for meal prep. Cook a big batch on Sunday, and you’ve got three days of lunches that taste fresh, not sad. Pack the steak and gai lan separately—steak stays tender, veggies stay crisp—and reheat with a splash of water. Zero regret.
- Budget Flex: Flank steak stretches far when sliced thin, and gai lan’s cheap at Asian markets. A single jar of oyster sauce and a tiny bottle of sesame oil last forever, so you’re basically making restaurant-quality food for pennies. (Yes, even on a Tuesday night.)
Step-by-step instructions for stir-fried gai lan with caramelized beef bites
Here's how to transform tough flank steak into tender beef bites and crisp-tender gai lan in one pan.
Prep the Beef for Maximum Tenderness
Slice the 1.5 lb flank steak thinly against the grain into ¼-inch strips. Place them in a bowl and add 1 tablespoon cornstarch, ½ teaspoon salt, and ¼ teaspoon black pepper. Toss until every piece is evenly coated. Let it sit for 10 minutes—this helps tenderize the meat and gives it that perfect bite.
While the beef marinates, trim the 2 bunches gai lan by cutting off the bottom 2 inches of each stem. Leave the florets intact. Rinse them quickly under cold water and pat completely dry. The stems will cook faster than the florets, so we're giving them a head start by trimming them shorter.
Create the Caramelized Beef Bites
Heat 2 tablespoons neutral oil in a large wok or skillet over high heat until shimmering. Add the beef in a single layer and let it sear undisturbed for 1-2 minutes until the edges turn golden brown. This high heat creates a flavorful crust while keeping the centers tender. Don't overcrowd the pan—work in batches if needed.
Once the beef is browned, remove it from the pan and set aside. Add 1 tablespoon brown sugar to the same pan and let it melt and caramelize for 30 seconds until it turns golden. This adds that sweet-savory depth that makes this dish special. Immediately pour in 3 tablespoons low sodium soy sauce and 2 tablespoons oyster sauce, scraping up any browned bits from the bottom.
Stir-Fry the Gai Lan to Perfect Crisp-Tenderness
Return the beef to the pan and add the trimmed gai lan stems first. Stir-fry for 2 minutes until they begin to soften slightly. Then add the gai lan florets and stir-fry for another 2 minutes. The high heat should create a satisfying sizzle—this is your signal that everything's cooking properly.
Add the 4 cloves minced garlic and 1 tablespoon grated ginger to the pan. Stir everything together for 30 seconds until the garlic turns fragrant and the ginger releases its aromatic oils. The combination of garlic and ginger will elevate the entire dish with their bright, zesty flavors.
Finish with Aromatics and Garnish
Drizzle in 1 tablespoon sesame oil and toss everything together for 1 minute. The sesame oil adds a nutty aroma and rich flavor that ties all the ingredients together. Taste and adjust seasoning if needed—you might want to add a splash more soy sauce if the dish needs more saltiness.
Remove from heat and transfer to serving plates. Garnish with 3 whole green onions sliced diagonally and 1 teaspoon toasted sesame seeds. The green onions add a fresh, crisp contrast to the rich beef and gai lan, while the sesame seeds provide a delightful crunch and nutty finish. Serve immediately while everything is hot and vibrant.
Pro Tips For Making Beef And Gai Lan
- SEAR STEAK IN BATCHES: Flank steak releases a ton of liquid when searing—crowd the pan and you’ll steam the meat instead of browning it. Cut the steak into strips first, then work in two batches over medium-high heat. The first batch will tell you when it’s ready: that’s when the second batch goes in. No, it’s not faster, but you’ll get proper crust instead of sad, gray edges.
- TRIM GAI LAN LIKE A PRO: Gai lan’s thick stems are tough and fibrous—don’t just chop them blindly. Run a knife along the length of each stem to score it lightly, then slice into 1-inch pieces. The scoring keeps them from curling up in the wok, and the stems stay tender instead of turning to mush. (Yes, even if you’re in a hurry.)
- SOY SAUCE LAST MINUTE: Add soy sauce and oyster sauce together at the very end—right when the beef is done but before the gai lan finishes. Stir, taste, then toss in the greens. The heat deglazes the pan while the sauce clings to the beef instead of turning the gai lan into a soggy mess. I learned this after ruining three batches where the sauce just pooled at the bottom.
- USE SESAME OIL LIKE A FINISHING TOUCH: Forget drizzling sesame oil in with the sauce—save it for the last 30 seconds. Toss the hot beef and gai lan with a teaspoon of oil right off the heat. The aroma hits you instantly, and the oil doesn’t burn or disappear into the sauce. (Your future self will notice the difference, even if you don’t believe me now.)
Flavor customization for this recipe
Sweet-Savory Balance
Adjust the sweetness by tweaking the brown sugar—start with 1 tablespoon but add ½ teaspoon more if you love caramelized depth. For extra umami, stir in 1 teaspoon fish sauce when adding the soy sauce.
I find this works especially well if you're serving to guests who prefer bolder flavors. 🌶️
Spicy Kick Options
Add heat with 1 teaspoon chili crisp or ½ teaspoon red pepper flakes when tossing in the sesame oil. For authentic Sichuan flavor, swap in 1 teaspoon doubanjiang (fermented chili bean paste) with the garlic and ginger. Trust me, it transforms the dish into something completely different—smoky, spicy, and unforgettable.
Umami Boosts
Enhance the savory profile with 1 tablespoon hoisin sauce mixed into the oyster sauce before adding it to the pan. Another trick? Add 1 teaspoon mushroom powder to the cornstarch marinade—it deepens the earthy notes without altering the texture.
I discovered this while experimenting with vegetarian versions, and it works beautifully here too.
Herbaceous Variations
Swap the green onions for cilantro or Thai basil for a fresher finish. For a more complex flavor, add 1 tablespoon chopped cilantro stems along with the leaves.
If you're feeling adventurous, try ½ teaspoon star anise powder in the sauce—it adds a subtle licorice note that pairs surprisingly well with the beef.
Vegetable Substitutions
No gai lan? Use bok choy or regular broccoli florets, but increase cooking time by 1 minute to ensure they reach crisp-tenderness. For a heartier dish, add ½ cup sliced shiitake mushrooms with the gai lan—they absorb the sauce beautifully while adding an earthy depth. 🥬
Protein Swaps
Replace the beef with chicken thighs or shrimp for a lighter option. If using shrimp, toss them in 1 teaspoon cornstarch and cook for just 1-2 minutes per side to avoid overcooking.
For a vegetarian version, use extra-firm tofu pressed and cubed—sear it first, then proceed with the same method. The flavors adapt surprisingly well!
Nutrition facts
Frequently asked questions
Can I use frozen gai lan instead of fresh?
Fresh gai lan gives the best texture, but frozen works in a pinch! Thaw it completely first, then pat very dry to prevent excess moisture in your stir-fry. Increase cooking time by 30 seconds since frozen veggies need a little more heat to reach crisp-tenderness. For even better results, blanch frozen gai lan in boiling water for 1 minute before stir-frying.
What's the best way to make this dish spicier?
Add heat by incorporating 1 teaspoon chili crisp or ½ teaspoon red pepper flakes when tossing in sesame oil. For deeper spice, swap in 1 teaspoon doubanjiang (fermented chili bean paste) with the garlic and ginger. If you love Sichuan flavors, try adding ½ teaspoon Sichuan peppercorns to the oil before cooking—they'll give that signature numbing heat!
How do I prevent the beef from getting tough?
The key is slicing against the grain and using cornstarch! Thin slices cook faster, and the cornstarch creates a tenderizing barrier. Never overcook—beef should reach 135°F internal temp (medium-rare). Work in batches if needed to avoid crowding the pan. For extra tenderness, marinate the beef for 30 minutes instead of just 10 minutes.
Can I make this recipe ahead of time?
Yes! Store components separately: cooked beef and gai lan in one container, sauce in another. Reheat by stir-frying for 2-3 minutes with a splash of water. The flavors actually improve overnight as they meld. For best results, keep the sesame seeds and green onions separate until serving to maintain their freshness and crunch.
What's the best rice to serve with this dish?
Jasmine rice is ideal—its slightly floral aroma complements the savory beef perfectly. For extra flavor, cook the rice with a ½ teaspoon toasted sesame oil and a pinch of salt. Short-grain rice works too if you prefer a stickier texture. Avoid basmati as it's too light and won't hold up to the rich flavors of this stir-fry.
