Soups & Stews
This beef and gai lan recipe delivers the perfect balance of wok-fired umami crunch and silky broth, a dish that transforms simple ingredients into something deeply satisfying.
The secret lies in high-heat stir-frying the beef until it achieves that signature tender-yet-firm texture, while the gai lan—Chinese broccoli—gets just enough time in the wok to retain its vibrant green color and crisp-tender bite.
What makes this dish special is the broth base, where aromatics like garlic, ginger, and fermented black beans build layers of flavor that deepen with every bite.
The recipe begins with a quick sear of beef strips, ensuring they stay juicy while developing a caramelized crust. Gai lan, with its slightly bitter stems and tender florets, gets its moment to shine when stir-fried separately to maintain its texture.
The broth ties everything together—rich yet light, with just enough saltiness from the black beans to complement the beef's natural umami. This is the kind of dish that feels both restaurant-quality and weeknight-friendly, requiring just 30 minutes of active prep and a little patience for the flavors to meld.
By the time you plate it—beef and gai lan nestled in the fragrant broth, garnished with fresh cilantro and a drizzle of sesame oil—you’ll have a dish that’s visually stunning and bursting with texture.
The contrast of silky beef, crisp gai lan, and velvety broth creates a harmony that’s hard to resist. Serve it over steamed jasmine rice or with a side of garlic noodles to soak up every last drop of that flavorful sauce.
Whether you're cooking for a family dinner or meal prepping for the week, this recipe scales effortlessly and tastes even better the next day. The silky broth keeps the gai lan from wilting, and the beef remains tender, making it a foolproof dish that always delivers.
Let’s get cooking—your taste buds will thank you.
Ingredients for beef and gai lan
Here's everything you need to create that restaurant-quality wok-fired beef and gai lan with velvety broth.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 ½ lb | Thinly sliced against grain |
| Gai Lan (Chinese Broccoli) 🥬 | 1 lb | Stems and florets separated |
| Garlic Cloves 🧄 | 6 cloves | Minced for aromatics |
| Fresh Ginger 🌿 | 2 tbsp | Finely grated, peeled |
| Fermented Black Beans 🫘 | ¼ cup | Rinsed, chopped (or sub 2 tbsp soy sauce) |
| Light Soy Sauce 🍶 | ½ cup | Kikkoman preferred |
| Dark Soy Sauce 🍶 | 1 tbsp | For color depth |
| Sesame Oil 🫒 | 1 tbsp | Toasted for aroma |
| Cornstarch 🌾 | 1 tbsp | For velveting beef |
| Green Onion 🧅 | ¼ cup | Sliced, white and green parts |
| Fresh Cilantro 🌿 | ¼ cup | Chopped for garnish |
| Jasmine Rice 🍚 | 1 ½ cups | Uncooked, for serving |
| Vegetable Oil 🫒 | ½ cup | High smoke point |
| White Pepper 🌶️ | ½ tsp | Freshly cracked |
| Sugar 🍯 | 1 tsp | Balances flavors |
The beef is where this dish shines, so don't skimp. Flank steak is ideal—lean but flavorful, and it slices beautifully. Grab it from the butcher counter if possible (they'll slice it thin for you), or ask the meat department to do it. Look for good marbling—it keeps the beef juicy during that quick sear. Asian markets often carry pre-sliced beef for stir-fry, which saves time. Gai lan? Most stores now stock it fresh—pick bunches with bright green florets and firm stems. If you can't find it, sub regular broccoli, but you'll lose that signature bitter-sweet flavor.
No fermented black beans? Substitute 2 tbsp soy sauce plus 1 tsp black vinegar—it mimics that funky depth. Fresh ginger must be grated, not minced (the oils release better). Trader Joe's carries pre-grated ginger in jars if you're in a rush, but it's not the same. The cornstarch is non-negotiable for velveting—it keeps the beef tender despite the high heat. For the soy sauces, Kikkoman light and Lee Kum Kee dark are my go-tos, but any good-quality brands work. Pro tip: Taste your soy sauce before buying—some brands are saltier than others, and you'll need to adjust seasoning later.
This dish reheats like a dream—better the next day, honestly. Store the beef and gai lan separately in airtight containers with a splash of broth to keep them moist. The broth base keeps for 5 days in the fridge, or freeze it for 3 months. I always make double portions because leftovers are even better cold, served over rice. For meal prep, portion the beef and veggies into containers with a little extra broth—just reheat gently on the stove. The sesame oil should be stored in the fridge after opening to preserve its flavor, and fresh cilantro stays bright for 5 days wrapped in damp paper towels.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe on busy nights—just sear the flank steak, toss in the gai lan, and let the garlic and fermented black beans work their savory magic. No chopping boards left in the sink, no extra pots to wash.
- Umami Bomb: That fermented black bean paste? It’s the secret weapon—deep, funky, and addictive. The ginger and garlic caramelize right into the beef, giving every bite a punch that lingers.
- Leftover Hero: This dish actually improves the next day. The gai lan gets even more tender, the beef stays juicy, and I’ll honestly take it cold in a rice bowl just as happily as hot. Packs perfectly for lunches.
- Budget Flex: Flank steak stretches farther than you’d think when sliced thin, and gai lan is one of the most affordable greens out there. I’ve made this for four people for under $15—no compromises on flavor, just smart shopping.
Step-by-step instructions for wok-fired beef and gai lan
Here's how to achieve that perfect balance of tender beef, crisp-tender gai lan, and a glossy, umami-rich sauce.
Prepare the Flank Steak and Velveting Marinade
Place the 1.5 lb flank steak between two sheets of plastic wrap and pound it to an even ¼-inch thickness using a meat mallet. Slice it thinly against the grain into strips about ¼-inch wide. In a bowl, combine the 1 tbsp cornstarch, ½ cup light soy sauce, 1 tbsp dark soy sauce, 1 tsp sugar, and ½ tsp white pepper. Add the sliced steak and toss to coat evenly. Let it marinate for 20-30 minutes at room temperature—this ensures maximum tenderness and prevents the beef from curling during cooking.
While the steak marinates, separate the 1 lb gai lan into stems and florets. Blanch the stems in boiling water for 1 minute and the florets for 30 seconds, then shock in ice water. This pre-cooking step ensures the gai lan stays crisp-tender during the stir-fry. Drain and set aside, reserving ½ cup of the blanching water.
Build the Flavor Base and Cook the Beef
Heat a wok or large skillet over high heat until smoking, then add the ½ cup vegetable oil. Once the oil shimmers (around 375°F), add the 6 cloves minced garlic and 2 tbsp finely grated ginger. Stir-fry for 30 seconds until fragrant but not browned—this prevents bitterness. Add the ¼ cup rinsed, chopped fermented black beans and cook for another 30 seconds, stirring constantly.
Push the aromatics to one side of the wok and add the marinated beef in a single layer. Let it sear undisturbed for 1-2 minutes until the edges turn golden brown. Stir-fry for another 2-3 minutes until the beef is 70% cooked but still slightly pink in the center. Remove the beef to a plate and set aside—it'll finish cooking in the sauce.
Stir-Fry the Gai Lan and Combine
Return the wok to high heat and add the gai lan stems first, stir-frying for 1 minute until they begin to soften. Add the florets and toss for 30 seconds until they're vibrant green and just tender. Pour in the reserved ½ cup blanching water and scrape up any browned bits from the bottom of the wok—this creates a silky sauce base.
Return the beef to the wok along with any accumulated juices. Add the 1 tbsp toasted sesame oil and toss everything together for 1-2 minutes until the gai lan is crisp-tender and the beef is fully cooked through. The sauce should coat the ingredients lightly without being soupy.
Finish and Serve Over Jasmine Rice
Taste and adjust seasoning if needed—you might want to add a splash more light soy sauce for saltiness or a pinch of sugar to balance. Divide the 1.5 cups cooked jasmine rice among plates and top with the beef and gai lan mixture. Garnish with ¼ cup sliced green onion and ¼ cup chopped fresh cilantro for freshness and color.
This dish is best served immediately while the gai lan is still crisp-tender and the beef retains its juices. The contrast of textures—silky beef, crunchy gai lan, and glossy sauce—makes every bite exciting. Serve with extra soy sauce on the side if you prefer more sauce.
Pro Tips For Making Beef And Gai Lan
- SLICE AGAINST THE GRAIN: Flank steak’s tough fibers need a friend—cut it perpendicular to the grain before cooking, or you’ll end up with chewy bites that fight back. I used to skip this and wondered why my beef felt like boot leather; now I do it first thing, even if it’s a pain.
- SOAK BLACK BEANS: Fermented black beans pack a punch, but dried ones need a quick soak in warm water (10 minutes max) to soften their edges before stir-frying. Skipping this means they’ll burn faster than your patience—trust me, I’ve watched it happen.
- STIR-FRY IN BATCHES: Crowd the wok with gai lan and garlic, and you’ll steam instead of sear. Work in two batches: cook half the greens first, then set aside while you finish the rest. Your stir-fry will stay crisp, not soggy—no one likes sad vegetables.
- SEAR STEAK FIRST: Don’t toss the raw beef in with everything else—get it screaming hot in the wok for 1-2 minutes until deeply browned. That crust locks in flavor and keeps it juicy while the rest of the dish cooks. I learned this after serving dry steak twice; now I start with the meat.
Flavor customization for these flavors
Spicy Kick
Add 1-2 tsp of chili crisp or ½ tsp of chili flakes when tossing the beef with the marinade. For a smoky heat, swap 1 tbsp of the light soy sauce for 1 tbsp of chili garlic sauce—it adds a tangy, fiery depth.
If you love fresh heat, stir in 1 tbsp of finely chopped Thai bird’s eye chilies after removing the wok from heat. Always taste first—some chilies pack serious heat! 🌶️
Sweet & Tangy Twist
Balance the umami with 1 tbsp of honey or maple syrup and 1 tsp of rice vinegar in the marinade. This sweet-tangy combo brightens the dish, especially if you're using a bold soy sauce.
For extra depth, add ½ tsp of grated star anise to the flavor base—it infuses a subtle licorice note that pairs beautifully with the beef. Finish with a sprinkle of toasted sesame seeds for crunch.
Creamy & Rich
Swap the blanching water for ½ cup of coconut milk in the final step to create a silky, creamy sauce. Add 1 tbsp of peanut butter (yes, really!) to the flavor base for a Thai-inspired richness.
For a vegetarian-friendly option, stir in 2 tbsp of cashew butter after cooking the gai lan. Garnish with crushed peanuts and lime wedges for a Southeast Asian fusion twist.
Herb-Infused Freshness
Boost the dish with 2 tbsp of chopped Thai basil or Italian parsley instead of cilantro. For a fragrant touch, add 1 tbsp of minced lemongrass to the flavor base—it infuses a citrusy aroma that complements the beef.
Finish with ½ tsp of fish sauce (if you're not avoiding it) for an extra layer of depth. The herbs add a bright, fresh contrast to the rich, savory flavors.
Smoky BBQ Fusion
Swap the fermented black beans for 2 tbsp of BBQ sauce (like Sweet Baby Ray’s Original) and add 1 tsp of smoked paprika to the marinade. Use ½ cup of beef broth instead of blanching water to deepen the smoky flavor.
Top with pickled red onions for a tangy crunch. This fusion keeps the dish’s essence but adds a bold, smoky-sweet twist that’s perfect for a hearty meal.
Vegetarian Swap
Replace the beef with 1 lb of extra-firm tofu pressed and cubed, or shiitake mushrooms sliced into strips. Marinate the tofu in the same sauce for 15 minutes, then pan-fry until golden.
For mushrooms, sauté them separately until tender before combining with the gai lan. The umami from mushrooms or tofu absorbs the flavors beautifully, making this a satisfying vegetarian option. 🌱
Nutrition facts
Frequently asked questions
Why do I need to slice the beef against the grain?
Slicing flank steak against the grain shortens the muscle fibers, making each bite more tender. The grain runs horizontally across the cut, so slicing perpendicular creates smaller, softer pieces. If you skip this step, the beef will be chewier—especially important for quick-cooking stir-fries.
Can I use regular broccoli instead of gai lan?
Yes, but you’ll lose that signature bitter-sweet flavor and crisp-tender texture. Gai lan’s stems stay firm while the florets remain vibrant green. If substituting, blanch broccoli florets for 1 minute (not 30 seconds) to mimic gai lan’s texture, and add ½ tsp of baking soda to the blanching water to preserve color.
What’s the best way to reheat leftovers?
Reheat gently in a skillet over low-medium heat with 1 tbsp of water or broth to prevent drying. Cover for 2-3 minutes
How do I avoid overcooking the beef?
Cook the beef in two batches if needed to avoid crowding the pan. Remove it when it’s 70% cooked (slightly pink inside) and finishes in the sauce. Overcooking makes it tough—high heat and quick cooking are key. Use a meat thermometer for precision (135°F for medium-rare).
What’s the deal with blanching gai lan?
Blanching pre-cooks the gai lan so it stays crisp-tender during stir-frying (not mushy). The ice bath stops cooking instantly. Skip this step only if you’re serving it immediately after stir-frying—otherwise, the stems will turn rubbery. Reserve the blanching water for the silky sauce!
