Soups & Stews
This beef and gai lan recipe delivers a perfect balance of wok-seared protein and silky greens in every bite. The secret lies in high-heat stir-frying that creates a caramelized crust on the beef while preserving the crisp-tender texture of gai lan.
I developed this dish after years of perfecting stir-fry techniques, and it's now my go-to for weeknight dinners that feel restaurant-quality.
The foundation starts with thinly sliced beef marinated in a savory blend of soy sauce, garlic, and ginger—this ensures maximum flavor penetration and tender results. Gai lan, with its slightly bitter edge, softens just enough to become tender-crisp when stir-fried for just 2-3 minutes.
The key is working quickly over high heat to maintain that satisfying crunch while developing deep umami flavors.
What makes this recipe truly special is how the beef and gai lan complement each other—each bite offers a contrast of textures and flavors. The beef develops a slightly charred exterior with a tender interior, while the gai lan maintains its natural crunch.
Together, they create a dish that's both hearty and light, perfect for any occasion.
Serve immediately over steamed jasmine rice for the full experience, or drizzle with a light sesame oil finish for extra depth. This recipe comes together in just 20 minutes, making it ideal for busy weeknights without sacrificing quality.
The balance of umami, sweetness, and texture is what transforms this into a standout dish.
Ingredients for beef and gai lan
High-quality cuts and fresh ingredients transform this wok-seared dish into a restaurant-worthy meal.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 lb | Thinly sliced against grain |
| Gai Lan 🥬 | 1 lb | Chinese broccoli, cut into 2-inch pieces |
| Low-Sodium Soy Sauce 🥫 | ¼ cup | For marinade and stir-fry |
| Sesame Oil 🫒 | 2 tbsp | Divided: 1 tbsp marinade, 1 tbsp finish |
| Garlic Cloves 🧄 | 6 cloves | Minced for marinade |
| Fresh Ginger 🌿 | 1 tbsp | Grated, for marinade |
| Brown Sugar 🍯 | 1 tbsp | For marinade balance |
| Cornstarch 🌾 | 1 tbsp | For beef coating |
| Neutral Oil 🫒 | 3 tbsp | Peanut or vegetable oil |
| Scallions 🧅 | 3 whole | Thinly sliced for garnish |
| White Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Jasmine Rice 🍚 | 1 cup | Uncooked, for serving |
| Lime Wedges 🍋 | 2 whole | For serving |
The flank steak is non-negotiable here—its lean yet tender texture holds up perfectly to high-heat searing. Look for USDA Choice or Prime cuts at Whole Foods or your local butcher for optimal marbling. Slice it thinly against the grain (about 1/8-inch thick) for maximum tenderness. Gai lan should be vibrant green with crisp stems—avoid wilted bunches. Asian markets typically carry the freshest gai lan, but well-stocked grocery stores often have it labeled as Chinese broccoli. For the soy sauce, Kikkoman or Lee Kum Kee are reliable choices, but any low-sodium variety works.
No flank steak? Sirloin or ribeye sliced thinly can substitute, though texture will differ slightly. Running short on gai lan? Baby bok choy or regular broccoli florets work in a pinch, though the flavor profile shifts. The sesame oil is crucial—toasted sesame oil adds depth, while regular sesame oil provides aroma. For the cornstarch coating, arrowroot powder works equally well if you prefer a gluten-free option. The marinade ratio is precise: 1:1:1 soy sauce to sesame oil to minced garlic/ginger ensures balanced umami without overpowering the beef's natural flavor. Fresh ginger is ideal, but ground ginger at half the amount suffices if needed.
Marinated beef keeps for up to 4 hours in the fridge, though it's best used within 2 hours for peak tenderness. Gai lan should be stored in a loose plastic bag with a paper towel to absorb moisture—it stays crisp for 3-4 days. The cooked dish reheats beautifully: 2 minutes in a wok over high heat restores that wok-seared texture. For meal prep, portion the beef and gai lan separately—reheat the greens last to maintain crispness. The rice can be prepped ahead and kept warm in a rice cooker for up to 6 hours without drying out.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this—just slice the flank steak thin, toss in the gai lan (no fancy prep needed), and let the garlic and soy sauce work their magic. No pots, no pans, just one sheet pan that’s ridiculously easy to clean.
- Garlic-Soy Bomb: That first hit of sesame oil hitting the hot pan? Chef’s kiss. The low-sodium soy sauce caramelizes just enough to coat the beef, while the garlic cloves turn into crispy little flavor bombs. It’s the kind of dish where every bite tastes like you put in hours—when really, it’s 20 minutes of work.
- Lunchbox Hero: Between us, this is my go-to for meal prep. The beef stays tender for days, and the gai lan holds up perfectly when reheated—toss it in a bento box, pack it for work, or serve it cold over rice. Honestly, it’s the only beef dish I don’t dread eating for lunch the next day.
- Budget Beef Boost: Flank steak is affordable, and a bunch of gai lan lasts forever. A single cut of beef stretches to feed four, and the veggie does the heavy lifting. I’ll be real: it’s how I trick myself into eating well without breaking the bank. Plus, the leftovers? Even better the second time around.
Step-by-step instructions for wok-seared beef and gai lan
Master this technique for restaurant-quality texture contrast—crispy beef edges and silky greens in every bite.
Prepare the Flank Steak for Maximum Texture
Slice the 1 lb flank steak thinly against the grain into ¼-inch thick strips. This cut ensures tender bites while maintaining structural integrity for that signature wok-seared crunch. Place the sliced beef in a medium bowl and add 1 tablespoon cornstarch, tossing gently to coat evenly. The cornstarch creates a light crust that caramelizes beautifully during searing.
In a separate small bowl, whisk together 0.25 cup low-sodium soy sauce, 1 tablespoon brown sugar, 1 tablespoon grated fresh ginger, 6 minced garlic cloves, and 1 tablespoon of the 2 tablespoons sesame oil. Pour this marinade over the cornstarch-coated beef and toss to distribute evenly. Let it marinate for 15-20 minutes at room temperature—this allows the flavors to penetrate while keeping the beef firm for proper searing.
Cook the Jasmine Rice to Perfection
While the beef marinates, rinse 1 cup jasmine rice under cold water until the water runs clear. This removes excess starch that would otherwise make the rice gummy. Combine the rice with 1.5 cups water in a small pot and bring to a boil over medium-high heat. Once boiling, reduce heat to low, cover tightly, and simmer for 15 minutes. Remove from heat and let it steam for another 10 minutes before fluffing with a fork.
The rice should be tender with a slight bite—this is crucial for balancing the rich, umami flavors of the beef and gai lan. If the rice isn't fully cooked after the initial 15 minutes, add 2-3 tablespoons water, cover, and steam for an additional 5 minutes. The rice should be ready when all the water is absorbed and the grains are distinct but tender.
Wok-Seared Beef with Crispy Edges
Heat 3 tablespoons neutral oil in a wok or large skillet over high heat until shimmering. Add half of the marinated beef strips in a single layer, spreading them out to avoid crowding. Let them sear undisturbed for 1-2 minutes until the edges turn deep golden brown and crispy. This high-heat sear develops the Maillard reaction, creating that signature umami crunch.
Once the first batch is browned, remove it to a plate and repeat with the remaining beef. The beef should cook in 2-3 batches to maintain proper heat control. As each batch finishes, keep it warm in a 200°F oven to prevent overcooking. The beef is done when it reaches an internal temperature of 145°F and the edges are crispy and caramelized—this ensures perfect doneness without drying out the center.
Stir-Fry Gai Lan with Umami Depth
In the same wok, add 1 tablespoon neutral oil and swirl to coat the bottom. Add 1 lb gai lan cut into 2-inch pieces and stir-fry over high heat for 2-3 minutes until the edges begin to blister slightly. This quick cooking preserves the greens' vibrant color and crisp-tender texture. Push the gai lan to one side of the wok and add the remaining 1 tablespoon neutral oil to the empty space.
Add the seared beef back to the wok and toss everything together for 1 minute. Pour in the remaining 1 tablespoon sesame oil and 0.5 teaspoon cracked white peppercorns, stirring vigorously to combine. The sesame oil adds nutty aroma, while the white peppercorns provide a subtle, sophisticated heat. Taste and adjust seasoning with a pinch of salt if needed—this dish should balance sweet, salty, and umami flavors harmoniously.
Assemble and Serve with Bright Finishes
Transfer the beef and gai lan to a serving platter and garnish with 3 thinly sliced scallions and 2 lime wedges. The scallions add a fresh, sharp contrast to the rich flavors, while the lime wedges provide a bright, acidic finish. Serve immediately over the jasmine rice, ensuring each portion has an equal distribution of beef, greens, and rice.
For the best experience, squeeze a lime wedge over each serving just before eating. This final touch enhances the overall brightness and ensures every bite delivers the perfect balance of textures and flavors—crispy beef edges, silky gai lan, and fragrant jasmine rice. The dish should be served while hot to maintain the wok-seared texture and vibrant colors.
Pro Tips For Making Beef And Gai Lan
- SEAR THE STEAK HOT: Crank your pan to medium-high and wait until it’s smoking before adding the flank steak—this isn’t the time to be gentle. I used to rush this, and the beef would turn out gray and tough; now I let it sear for 3-4 minutes per side until it develops that deep crust. (Yes, even if you’re impatient like me.)
- TRIM GAI LAN LIKE A PRO: Skip the wilted, sad-looking stems—cut them off at the base and chop them into 1-inch pieces, then stir-fry them first. They’re packed with flavor and won’t turn to mush like the leaves. (Pro move: Toss the chopped stems in a little soy sauce before adding them to the pan.)
- DON’T OVERSTIR THE BEAN SPROUTS: Gai lan wilts fast, but don’t drown it in oil or toss it like you’re making a salad. Just 1 tablespoon of oil is enough—let the leaves sizzle for 30 seconds before adding the rest. Overcrowding the pan makes them soggy, and nobody wants that.
- REST THE STEAK UNDER FOIL: After searing, slice the flank steak against the grain and let it rest for 5 minutes under foil—this keeps it juicy. I learned this the hard way when my first batch turned out dry because I rushed to plate it. (Your future self will thank you.)
Flavor customization for these flavors
Spicy Sichuan Kick
Transform this dish into a fiery Sichuan-style stir-fry by adding 1 tablespoon chili bean paste (like Lao Gan Ma) to the marinade and tossing in ½ cup sliced red chili peppers during the final stir-fry.
For extra heat, finish with 1 teaspoon Sichuan peppercorns toasted in a dry wok and crushed over the top. The numbing-spicy combination elevates the dish to restaurant-level intensity. 🌶️
Sweet and Tangy Glaze
Create a caramelized finish by adding 2 tablespoons hoisin sauce and 1 tablespoon rice vinegar to the wok during the final minute of cooking. The glossy glaze adds sweetness that balances the umami, while the vinegar brightens the dish.
For extra depth, swirl in 1 teaspoon chili oil before serving. This variation works especially well with thicker beef cuts like sirloin.
Creamy Mushroom Addition
Incorporate earthy umami with ½ cup sliced shiitake mushrooms cooked separately in 1 tablespoon sesame oil until golden. Add them to the wok during the final 1 minute of stir-frying.
For a creamy twist, stir in 2 tablespoons coconut aminos after cooking to create a silky sauce that coats the beef and gai lan beautifully.
Garlic-Ginger Bomb
Double down on aromatic depth by adding 4 extra minced garlic cloves and 1 extra tablespoon grated ginger to the marinade. For an extra punch, toast 1 teaspoon whole garlic cloves in the wok until fragrant before adding the beef.
This variation creates a bold, aromatic foundation that pairs perfectly with the natural flavors of gai lan.
Lemon-Herb Brightness
Add freshness with zest from 1 lemon and 2 tablespoons chopped cilantro during the final toss. The citrus cuts through the richness while the cilantro adds a bright, herbaceous note.
For a Mediterranean twist, finish with 1 teaspoon dried oregano and a sprinkle of feta cheese crumbles. This variation works beautifully as a spring or summer dish.
Smoky BBQ Twist
Infuse the dish with smoky depth by adding 2 tablespoons BBQ sauce (like Sweet Baby Ray's Original) to the marinade and finishing with 1 teaspoon smoked paprika during the final stir.
The caramelized edges of the beef develop a sweet-smoky crust that pairs wonderfully with the crisp gai lan. Serve with a side of pickled jalapeños for extra tang. 🔥
Nutrition facts
Frequently asked questions
Can I substitute gai lan with regular broccoli?
Yes, but the flavor and texture will differ slightly. Regular broccoli has a milder taste and softer stems, so it won't provide the same crisp-tender bite. If substituting, cut florets slightly smaller (1.5-inch pieces) and stir-fry for 1-2 minutes less to prevent overcooking. For best results, use baby broccoli or broccolini, which hold their texture better.
How do I prevent the beef from drying out?
Marinate the beef for no longer than 30 minutes—over-marinating can break down the fibers too much. Use high heat and cook in small batches (2-3 minutes per batch) to develop crispy edges while keeping the center tender. A quick sear in a screaming-hot wok is key—don't overcrowd the pan, or steam will develop instead of caramelization.
Can I make this recipe ahead of time?
Partial prep works best! Marinate the beef and chop the gai lan up to 4 hours ahead, storing separately in the fridge. For full prep, cook the beef and gai lan separately, then refrigerate in airtight containers. Reheat in a wok over high heat for 2-3 minutes to restore texture—microwaving will make the beef soggy. The rice should be cooked fresh for optimal texture.
What's the best way to store leftovers?
Store cooked beef and gai lan in separate airtight containers in the fridge for up to 3 days. Reheat the greens last to maintain crispness—stir-fry for 1 minute in a hot wok with 1 teaspoon oil. The beef reheats best in a skillet over medium heat for 2-3 minutes until just warmed through. Freeze for up to 1 month by wrapping tightly in plastic.
Why does my gai lan turn mushy?
Overcooking is the most common cause—gai lan should cook for only 2-3 minutes over high heat. If using older stems, cut them into smaller pieces (they take longer to tenderize). Also ensure your wok is properly heated before adding oil—cold oil lowers the cooking temperature. For extra insurance, blanch the gai lan in boiling water for 30 seconds before stir-frying.
