Beef and Broccoli Stir Fry

There is a specific kind of disappointment that comes with takeout beef and broccoli, the kind where the beef is chewy and gray and the sauce tastes mostly of cornstarch and salt. I made this dish at home for years before I understood why mine never matched the glossy, tender version I wanted, and the answer turned out to be technique rather than any secret ingredient. Once you learn to velvet the beef and build a balanced sauce, this becomes one of the fastest and most satisfying dinners in your rotation.
The whole thing comes together in about half an hour, and most of that is hands off resting time while the beef tenderizes. The actual cooking happens in a blistering hot pan over the course of maybe ten minutes. That speed is the point of a stir fry, and it is also why a little preparation up front pays off so generously at the stove.
What sets this version apart is a sauce that clings to every piece without turning gluey, and broccoli that stays bright green with a little bite rather than going soft and drab. You get savory depth from oyster sauce, brightness from fresh ginger, and just enough brown sugar to round the edges. It tastes like the best version of the restaurant classic you have been chasing.
If you have never cooked over truly high heat at home, this recipe is a great place to start building that confidence. A wok or heavy skillet pushed to its limit is what gives stir fries their faint smoky char, the flavor that Cantonese cooks call wok hei, the breath of the wok. You will not replicate a restaurant burner exactly on a home stove, but you can get remarkably close by working in batches and keeping the pan screaming hot.
Below I will walk you through velveting the beef, building the sauce, and the precise order of operations at the stove so nothing overcooks. Master this framework and you can swap in chicken, shrimp, or whatever vegetables you have on hand. The recipe is forgiving once you internalize the rhythm, and it scales up easily when you are feeding a crowd.
Why you will love this
- Velveting works: A quick baking soda and cornstarch marinade raises the pH of the beef so it stays tender and silky even over screaming high heat, the same trick that gives restaurant beef its signature softness.
- Balanced sauce: Oyster sauce, soy, and a touch of brown sugar hit savory, salty, and sweet at once, with cornstarch giving it that glossy restaurant cling that drapes over every piece.
- Bright broccoli: Pre steaming the florets means they finish cooking in seconds in the sauce instead of stewing and turning army green, so they stay vivid and crisp tender.
- Faster than delivery: From fridge to table in about thirty minutes, including the rest time, with no soggy cardboard container in sight and no delivery fee either.
- Endlessly flexible: The same method and sauce carry chicken, pork, tofu, or a pile of mixed vegetables without any rework, so it never gets boring on repeat.
- Better for you: Cooking it yourself means you control the salt, sugar, and oil, ending up with something far lighter than the average takeout portion.
What you will need
Most of this is pantry staples plus one good cut of beef. The few specialty items, oyster sauce and Shaoxing wine, last for months and earn their shelf space across dozens of stir fries.
- Flank steak (1 1/4 lb): Lean, flavorful, and affordable; skirt or sirloin tip work too. The key is slicing thin and against the grain so the muscle fibers stay short and tender.
- Baking soda (1 tsp): This is the velveting workhorse. It tenderizes by raising surface pH, so do not skip the rinse afterward or the beef can taste faintly soapy.
- Oyster sauce (1/4 cup): Provides the deep savory backbone the dish is known for. Look for a brand with oyster extract near the top of the ingredient list rather than mostly sugar and caramel color.
- Shaoxing wine (1 tbsp): A Chinese rice wine that adds aromatic depth; dry sherry is the closest easy substitute. In a pinch, leave it out rather than using cooking wine loaded with salt.
- Fresh ginger (1 tbsp): Bottled ginger lacks the bright heat you want here. Peel a knob with the edge of a spoon and mince it finely so it melts into the sauce.
- Broccoli (1 lb): Cut florets to a uniform bite size so they cook evenly. Save the stems, peel them, and slice into coins to toss in alongside the florets.
Equipment: You need a large carbon steel wok or a wide heavy skillet, a sharp chef’s knife, a small saucepan or steamer for the broccoli, and a whisk for the sauce.
How to make it, step by step
Step 1: Velvet the beef
Slice the flank steak across the grain into pieces about a quarter inch thick. If the steak is floppy and hard to cut cleanly, firm it up in the freezer for twenty minutes first. Cutting against the grain shortens the muscle fibers, which is what keeps each bite tender rather than stringy.
Add the sliced beef to a bowl with the baking soda, one tablespoon cornstarch, one tablespoon soy sauce, and the Shaoxing wine. Massage it all together with your hands until the beef feels tacky and coated, then let it rest for twenty minutes at room temperature.
When the rest is done, rinse the beef briefly under cool water and pat it very dry with paper towels. Drying matters because any surface moisture will steam the meat instead of searing it. Set the dried beef aside on a plate.

Step 2: Mix the stir fry sauce
In a measuring cup or small bowl, whisk together the low sodium soy sauce, oyster sauce, broth, brown sugar, and toasted sesame oil. Then whisk in the remaining one and a half tablespoons of cornstarch until no lumps remain.
Give it a taste on a clean spoon. It should read clearly savory with a faint sweetness and a slight back of throat saltiness; if it tastes flat, a few more drops of soy will sharpen it. Keep the whisk handy because the cornstarch settles and you will want to stir it again right before it hits the pan.
The ratio here matters more than the exact brands. You are aiming for a sauce that is mostly savory with sweetness in a supporting role, never the other way around. If your oyster sauce is on the sweeter side, hold back a little of the brown sugar to keep the balance in check.
Step 3: Pre cook the broccoli
Bring an inch of water to a boil in a saucepan and add the broccoli florets, or use a steamer basket. Cook for about two minutes, just until the florets turn vivid green and a fork meets slight resistance at the stem.
Drain the broccoli thoroughly and spread it out so it stops cooking from its own steam. You want it crisp tender now because it will get a final brief toss in the hot sauce later. Overcooking at this stage is the most common way broccoli goes soft and dull.
If you peeled and sliced the broccoli stems into coins, add them to the water about thirty seconds before the florets since they take a touch longer to soften. They are sweet and crunchy and far too good to throw away.
Step 4: Sear the beef in batches
Heat your wok or skillet over the highest flame until it just begins to smoke, then add one tablespoon of oil and swirl. Lay in half the beef in a single layer and let it sit undisturbed for about forty five seconds so it can form a brown crust.
Flip and cook another thirty to forty five seconds until the beef is mostly browned but not cooked all the way through; it will finish later in the sauce. Crowding the pan drops the temperature and steams the meat, which is exactly why you work in two batches.
Transfer the first batch to a clean plate, add another tablespoon of oil, and repeat with the remaining beef. Pull it out the moment it is seared and set it aside with the first batch.

Step 5: Bloom the aromatics
Reduce the heat to medium and add the last tablespoon of oil to the now empty pan. Add the minced garlic and ginger and stir constantly for about thirty seconds, until they smell fragrant and just begin to turn golden at the edges.
Watch them closely because garlic goes from fragrant to bitter and burnt in a matter of seconds over residual high heat. If the pan seems too hot, pull it off the burner for a moment while you stir.
The goal of this step is to perfume the oil so that flavor carries through the entire sauce. Raw garlic stirred in at the end would taste harsh, while burnt garlic turns the whole dish acrid, so this brief, attentive bloom is the sweet spot.
Step 6: Build and thicken the sauce
Give the sauce a final whisk to redistribute the cornstarch, then pour it into the pan all at once. Bring it up to a brisk simmer, stirring, and let it bubble for about a minute until it turns glossy and thick enough to coat the back of a spoon.
If the sauce thickens past the point you want, splash in a tablespoon or two of broth or water to loosen it. The texture should be pourable but clingy, the kind that drapes over the beef rather than pooling at the bottom of the pan.
Cornstarch needs to reach a simmer to fully activate and lose its raw, chalky taste, so do not pull it off too early. Once it turns glossy and translucent rather than cloudy, you know it has thickened properly.
Step 7: Combine and finish
Return the seared beef along with any juices on the plate, then add the drained broccoli. Toss everything together for about a minute so the beef finishes cooking through and every piece gets lacquered in sauce.
Taste one more time and adjust with a pinch of sugar or a few drops of soy if needed. The beef should be just cooked and tender, the broccoli hot and still crisp at the core, and the sauce thick and shiny throughout.
Pull the pan off the heat the instant the broccoli is heated through. Lingering on the burner only risks overcooking the beef you worked to keep tender.

Step 8: Serve
Spoon the beef and broccoli over bowls of hot jasmine rice, making sure to scrape every bit of sauce from the pan. The rice soaks up the extra and is honestly one of the best parts.
Serve right away while the broccoli still has snap and the sauce is glossy. A scattering of toasted sesame seeds or sliced scallion on top is a nice finishing touch if you have it.
Tips for the best results
- Slice while cold: A semi frozen steak slices into clean, even strips far more easily than a fully thawed one, which helps every piece cook at the same rate.
- Get the pan ripping hot: A stir fry needs aggressive heat for that signature wok char; if the beef releases liquid and simmers, your pan was not hot enough.
- Work in batches: Crowding drops the temperature and steams the meat. Two quick batches give you a real sear and better texture.
- Stir the sauce again: Cornstarch settles fast, so whisk the sauce one more time right before it goes into the pan or you will get uneven thickening.
- Mise en place is everything: Have the beef, sauce, broccoli, and aromatics all measured and at the stove before you turn on the heat, because there is no time to chop mid cook.
Variations and substitutions
- Chicken or shrimp: Swap the beef for thin sliced chicken thigh or peeled shrimp, using the same velveting step for the chicken and skipping it for the shrimp.
- Spicy version: Add a tablespoon of chili garlic sauce or a few dried red chiles with the aromatics for a warming kick.
- Extra vegetables: Toss in sliced bell pepper, snap peas, or mushrooms; pre cook denser vegetables alongside the broccoli.
- Gluten free: Use tamari in place of soy sauce and a gluten free oyster sauce to keep all the savory depth without the wheat.
How to store and reheat
Store leftovers in an airtight container in the refrigerator for up to three days. The broccoli softens a bit over time but the flavor actually deepens overnight, making this a great next day lunch.
I do not recommend freezing this dish because the broccoli turns mushy and the velveted beef loses its texture. To reheat, warm it in a skillet over medium high with a splash of water or broth to revive the sauce, stirring just until hot.
What to serve it with
- Over steamed jasmine or short grain white rice
- With a side of garlicky stir fried bok choy
- Alongside pork or vegetable potstickers
- Topped with toasted sesame seeds and sliced scallions
Frequently asked questions
Tough beef almost always comes from slicing with the grain or skipping the velveting step. Slice thinly against the grain so the muscle fibers stay short, give it the baking soda treatment, and sear it fast over high heat rather than cooking it slowly, which dries it out.
You can, though it is the source of much of the savory depth. Substitute a mix of hoisin sauce and a little extra soy, or use a vegetarian mushroom based oyster sauce, and add a pinch more sugar to balance it.
Flank steak is the classic choice for its flavor and value, but skirt steak, sirloin tip, or even ribeye all work well. Whatever you choose, slice it thin and against the grain for the most tender result.
Pre cook it only until bright green and crisp tender, about two minutes, then drain it well and spread it out to stop the carryover cooking. It gets a final brief toss in the hot sauce, so any longer at the start leaves it soft.
Yes, and it makes the cooking nearly instant. Velvet the beef, mix the sauce, and blanch the broccoli up to a day in advance, storing each separately in the fridge, then just sear and toss everything together at dinnertime.
Beef and Broccoli Stir Fry
Tender velveted flank steak and crisp broccoli tossed in a glossy garlic ginger sauce, faster than takeout and far better.
Ingredients
- 1 1/4 lb flank steak, sliced 1/4 inch thick against the grain
- 1 tsp baking soda
- 1 tbsp cornstarch (for the beef)
- 1 tbsp soy sauce (for the beef)
- 1 tbsp Shaoxing wine or dry sherry
- 1 lb broccoli, cut into bite size florets
- 3 tbsp neutral oil, divided
- 4 cloves garlic, minced
- 1 tbsp fresh ginger, minced
- 1/3 cup low sodium soy sauce
- 1/4 cup oyster sauce
- 1 cup low sodium beef or chicken broth
- 1 tbsp brown sugar
- 1 tsp toasted sesame oil
- 1 1/2 tbsp cornstarch (for the sauce)
- Steamed jasmine rice, for serving
Instructions
- Toss sliced beef with baking soda, cornstarch, soy sauce, and Shaoxing wine; rest 20 minutes, then rinse and pat dry.
- Whisk the sauce: soy sauce, oyster sauce, broth, brown sugar, sesame oil, and cornstarch.
- Steam or blanch broccoli until bright green and barely tender, about 2 minutes, then drain well.
- Sear the beef in batches over high heat until browned, about 90 seconds per batch; remove.
- Stir fry garlic and ginger 30 seconds, pour in the sauce, and simmer until thickened.
- Return beef and broccoli, toss to coat, and serve immediately over rice.
Notes
- Slicing against the grain is the single biggest factor in tenderness; freeze the steak 20 minutes first for easier cuts.
- Rinsing the baking soda off after the rest keeps the beef from tasting soapy.
- Have everything prepped and within arm's reach before the pan gets hot; stir frying moves fast.
