Soups & Stews
This authentic Thai beef and broccoli recipe delivers the bold, umami-packed flavors of street-side Thai cuisine right to your kitchen. The secret lies in balancing sweet, salty, and spicy elements—oyster sauce, soy sauce, and chili—while achieving that signature wok-hei (breath of the wok) through high-heat stir-frying. I’ve perfected this dish over years of testing, ensuring the beef stays tender and the broccoli retains its crisp texture, all while building layers of flavor through a quick marinade and aromatic sauce.
The recipe begins with a simple but essential marinade of soy sauce, garlic, and ginger, which tenderizes the beef while infusing it with foundational Thai flavors. As the beef cooks, it’s tossed with vibrant broccoli florets and a sauce thickened with just a touch of cornstarch—this creates the signature glossy, clinging coating without making the dish heavy. The finishing touch? A sprinkle of crushed peanuts, adding both crunch and a nutty depth that ties everything together.
What you’ll end up with is a dish that’s restaurant-quality at home: tender, slightly charred beef, bright green broccoli with crisp edges, and a sauce that’s sticky, savory, and just spicy enough to linger. The aroma alone—garlicky, umami-rich, with a hint of chili—will have everyone at the table asking for seconds. This isn’t just a stir-fry; it’s a flavor experience that transports you to Bangkok with every bite.
Whether you’re serving it over steamed jasmine rice or as a standalone dish, this recipe is designed to impress. The beauty of it? It comes together in under 30 minutes, making it perfect for weeknights or weekend entertaining. Let’s get cooking—your taste buds (and dinner guests) will thank you.
Ingredients for authentic thai beef and broccoli
These bold ingredients transform simple proteins into restaurant-quality Thai beef and broccoli.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 ¼ lb | Thinly sliced against grain |
| Fresh Broccoli Florets 🥦 | 4 cups | Tight florets, stems trimmed |
| Oyster Sauce 🍶 | 3 tbsp | Thick, high-quality brand |
| Soy Sauce 🥫 | 2 tbsp | Light or dark variety |
| Garlic Cloves 🧄 | 6 cloves | Minced, aromatic |
| Fresh Ginger 🌿 | 1 ½ tbsp | Finely grated, peeled |
| Cornstarch 🌾 | 1 tbsp | For sauce thickening |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point |
| Red Chili Flakes 🌶️ | 1 tsp | Adjust to taste |
| Crushed Peanuts 🥜 | ¼ cup | Toasted for crunch |
| Sesame Oil 🫒 | 1 tsp | For finishing aroma |
| Green Onions 🧅 | 3 whole | Sliced, white and green |
| Salt 🧂 | ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ¼ tsp | Freshly ground |
The flank steak is non-negotiable—it’s lean, flavorful, and slices beautifully when cut against the grain. Look for USDA Choice or Prime at Whole Foods or your local butcher, and ask for it pre-sliced if you're short on time. Fresh broccoli should be bright green with tight florets—avoid those sad, yellowing heads. The oyster sauce is where the magic happens: Lee Kum Kee is my go-to, but any thick, high-quality brand works. Skip the watery stuff. For the garlic and ginger, Asian markets often have pre-minced versions, but fresh is always better if you've got the time.
No oyster sauce? Substitute with 2 tbsp soy sauce plus 1 tbsp fish sauce—it won’t be identical, but it’ll get you close. Swapping broccoli for snap peas? Go for it, but blanch them first to keep that crisp texture. Running low on cornstarch? Arrowroot powder works 1:1. The red chili flakes can be adjusted—if you want heat, add more; if you're sensitive, use half. For the peanuts, store-bought crushed peanuts are fine, but toasting them in a dry pan for 2-3 minutes adds serious flavor. And if you can’t find sesame oil, toasted sesame oil is a worthy upgrade—just use half the amount.
Prep the beef and broccoli ahead—they’ll keep for 2 days in the fridge if stored separately. The sauce can be made 1 day in advance, but add the cornstarch slurry fresh before cooking. Peanuts? Store them in an airtight container for up to 3 months—they go rancid fast. This dish reheats beautifully, but avoid microwaving the broccoli—it turns mushy. Instead, warm it gently in a pan with a splash of water. Leftovers keep for 3-4 days, but honestly, it’s even better the next day as the flavors meld.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe when I’m too tired to scrub a million dishes—just sear the steak, toss in the broccoli, and let the soy and oyster sauce work their magic. That garlic sizzle? It’s the only cleanup I’ll do.
- Umami Bomb: The combo of oyster sauce’s deep richness and soy’s salty punch turns this into something special—like a Thai takeout dish, but with actual tenderness in the steak. My picky eaters actually ask for seconds.
- Lunchbox Hero: Between us, this is my go-to for meal prep. The flavors hold up for days, and I pack it in containers with rice—no soggy broccoli here, just crisp florets and perfectly sliced steak. (Yes, even on a Tuesday night.)
- Budget Stretch: Flank steak’s affordable, and a single head of broccoli feeds the whole family. I’ll often double the batch, freeze half, and save it for nights when I’m too exhausted to cook. Leftovers taste just as good reheated.
Step-by-step instructions for authentic Thai beef and broccoli
Here's how to create a restaurant-quality Thai beef and broccoli with perfect tenderness and bold flavors.
Prepare the Flank Steak for Maximum Tenderness
Slice the 1.25 lb flank steak thinly against the grain into ¼-inch strips. This is crucial—thin slices ensure quick cooking and tender bites. Place the sliced steak in a bowl and combine with 0.5 tsp salt, 0.25 tsp black pepper, and 1 tsp red chili flakes. Toss gently to coat evenly. Let it marinate for 15 minutes at room temperature while you prep the rest. The chili flakes add heat upfront, but don't worry—the sauce will balance it perfectly.
While the steak marinates, trim the stems from the 4 cups fresh broccoli florets and cut them into tight clusters. The smaller florets will cook faster and stay more tender. Set aside in a separate bowl. This prep ensures everything cooks uniformly and you won't have overcooked broccoli or undercooked beef.
Build the Umami-Packed Sauce Base
In a small bowl, whisk together the 3 tbsp oyster sauce, 2 tbsp soy sauce, 1.5 tbsp finely grated fresh ginger, and 6 cloves minced garlic. This combination creates the authentic Thai flavor profile—sweet, salty, and aromatic. The oyster sauce provides that signature umami depth while the ginger and garlic add freshness. Taste the mixture now—it should be tangy and complex, not bland.
In a separate small bowl, mix the 1 tbsp cornstarch with 2 tablespoons cold water. This slurry will thicken the sauce beautifully when added at the right moment. Keep both mixtures nearby—the sauce comes together quickly once the steak hits the pan.
Stir-Fry the Beef to Perfect Doneness
Heat a wok or large skillet over high heat until it's smoking hot. Add the 2 tbsp vegetable oil and swirl to coat the pan. When the oil shimmers, add the marinated beef in a single layer. Let it sear undisturbed for 1-2 minutes until the edges turn golden brown. This initial sear locks in juices and builds flavor. Don't crowd the pan—work in batches if needed to maintain high heat.
Stir-fry the beef for 2-3 minutes total, just until it's cooked through but still tender. The steak should be light pink in the center—it will finish cooking in the sauce. Remove the beef to a clean plate and set aside. The residual heat in the pan will help build the sauce, so don't wipe it clean.
Cook the Broccoli and Combine with Sauce
Add the broccoli florets to the same hot pan in a single layer. Stir-fry for 2-3 minutes until they're bright green and just tender-crisp. You want them to retain some bite—they'll finish cooking when everything comes together. Add the garlic-ginger sauce mixture and stir vigorously for 1 minute until it begins to bubble and thicken slightly.
Pour in the cornstarch slurry and stir constantly for 30-45 seconds until the sauce thickens to a glossy, coatable consistency. Return the beef to the pan and toss everything together for 1-2 minutes until evenly coated. The sauce should cling beautifully to both the beef and broccoli, creating that signature glossy finish.
Finish with Crunch and Aroma
Lower the heat to medium and stir in the 0.25 cup crushed peanuts and 3 whole green onions (sliced). The peanuts add delightful texture contrast while the green onions bring freshness. Drizzle with 1 tsp sesame oil and toss gently to combine. Taste and adjust seasoning if needed—you might want to add a splash more soy sauce for saltiness or a pinch of sugar to balance acidity.
Serve immediately over steamed jasmine rice to soak up that incredible sauce. The dish should be vibrant, with tender beef, crisp-tender broccoli, and a perfect balance of sweet, salty, spicy, and umami flavors. Each bite delivers that authentic Thai restaurant experience at home.
Pro Tips For Making Authentic Thai Beef And Broccoli
- Slice Thin, Sear Fast: Flank steak fights back when you cut against the grain—do it before cooking, while the meat’s still cold, and slice it paper-thin. Then sear it in a screaming-hot wok or skillet for 30 seconds per side max; any longer and you’ll turn it into shoe leather. I learned this the hard way after serving rubbery strips to my in-laws.
- Blanch Broccoli First: Toss broccoli florets in boiling water for 30 seconds before stir-frying—just enough to soften the core. Drain, shock in ice water, and pat very dry. This keeps them crisp-tender and prevents a soggy mess when they hit the sauce. (Yes, even if you’re impatient like me.)
- Marinate the Garlic: Mince the garlic fine—like, almost paste-level—and toss it into the oyster and soy sauce mix at least 10 minutes early. The flavor melds better, and you won’t end up with raw garlic chunks that taste like a punch to the palate. I skip this, and the dish feels half-finished.
- Deglaze with Heat: After searing the beef, don’t just dump the sauce in cold. Splash in a splash of water or dry sherry, then let it bubble hard for 30 seconds to scrape up those browned bits—those are flavor bombs. Scrape the pan with a wooden spoon if you’re lazy, but don’t skip this step. Your future self will notice.
Pro cooking tips for authentic thai beef and broccoli
Wok-Hei Mastery
This dish thrives on the breath of the wok, so use a carbon steel or cast iron wok if possible—they retain and distribute heat better than stainless steel. Heat your wok until it’s smoking hot before adding oil, then work in batches if needed to avoid overcrowding. I swear by my Mauviel M’Cook carbon steel wok—it gives that perfect char and smoky aroma. If you don’t have a wok, a heavy-bottomed cast iron skillet works in a pinch, but preheat it for 5 minutes on high heat first. 🔥
Protein Prep Secrets
Slice the flank steak thinly against the grain—this is non-negotiable for tenderness. Use a sharp chef’s knife and cut at a 45-degree angle for even strips. For extra insurance, pound the steak lightly with a meat mallet before slicing if it feels tough. I also recommend marinating the beef for 15-20 minutes with a touch of cornstarch (just ½ tsp) in the marinade—it helps create a better sear and keeps the edges crisp. 🥩
Sauce Thickening Hacks
The cornstarch slurry is your secret weapon for that glossy, clinging sauce. Mix it with cold water to prevent clumping, then add it when the sauce is bubbling vigorously. Stir constantly for 30-45 seconds—any longer and the sauce will turn gluey. For a restaurant-style finish, I like to add ½ tsp sugar to the sauce just before serving. It balances the acidity and adds a subtle caramel note that elevates the dish. 💫
Broccoli Perfection
Broccoli is the star here, so handle it with care. Cut florets into even-sized clusters (about 1.5-inch diameter) so they cook uniformly. Stir-fry them for just 2-3 minutes—they should stay vibrant green and retain a slight crunch. Overcooking turns them mushy, which kills the dish. Pro tip: Toss the broccoli with ½ tsp baking soda before cooking if you’re worried about bitterness—it neutralizes sulfur compounds and keeps them bright. 🥦
Peanut Crunch Technique
Toast your peanuts in a dry pan over medium heat for 2-3 minutes until fragrant and lightly golden. This amplifies their flavor dramatically compared to raw peanuts. Add them to the pan in the final 30 seconds of cooking so they stay crisp. For extra crunch, pulse them in a food processor before toasting—this creates smaller, sharper pieces that add texture without overpowering. 🥜
Heat Control Adjustments
If you prefer less heat, reduce the red chili flakes to ½ tsp in the marinade and skip adding any to the sauce. For a spicy kick, add ½ tsp chili flakes directly to the sauce at the end. Balance is key—taste as you go! I also keep a small bowl of rice vinegar nearby to cut through any excess heat if needed. The goal is harmony, not pain. 🌶️
Nutrition facts
Frequently asked questions
Can I substitute flank steak with another cut of beef?
Yes! Flank steak is ideal for its tenderness when sliced thinly, but you can use sirloin or ribeye instead. Just slice against the grain and avoid overly fatty cuts like ribeye. For a leaner option, lean ground beef (85/15) works too—just shape it into small patties and sear them quickly to maintain texture.
How do I adjust the spice level for sensitive eaters?
Reduce the red chili flakes to ½ tsp in the marinade and omit any from the sauce. For extra mildness, add 1 tsp sugar to the sauce to balance flavors without heat. If you want to keep some spice but mellow it, blend the chili flakes with the crushed peanuts before adding them at the end.
What’s the best way to store leftovers?
Store in an airtight container for up to 3-4 days in the fridge. Reheat gently in a skillet over medium heat with a splash of water to restore moisture. Avoid microwaving—it makes the broccoli soggy. For longer storage, freeze for up to 2 months, but thaw overnight in the fridge before reheating.
Can I make this dish vegetarian?
Swap the beef for extra-firm tofu or mushrooms. Press tofu to remove excess water, then cube and pan-fry until crispy. For mushrooms, use shiitake or oyster mushrooms sliced into strips—they absorb flavors beautifully. Keep the sauce and broccoli the same for that authentic taste.
Why does my sauce turn out too thick or too thin?
Too thick? You likely added the cornstarch slurry too early or stirred too long. Too thin? The sauce wasn’t bubbling enough when you added it. The fix: For next time, add the slurry when the sauce is actively bubbling and stir for exactly 30-45 seconds. If needed, thin with 1 tsp warm water or thicken with ½ tsp more cornstarch mixed with water.
