Posted on Leave a comment

Beef and Broccoli Recipe: Tender Beef, Crisp Broccoli & Chinese-Style Stir-Fry Sauce

Finished beef and broccoli stir-fry with browned beef strips and bright green broccoli coated in glossy brown sauce, served with white rice.

When beef and broccoli is right, the beef bends easily under your fork, the broccoli stays bright with some bite in the stalks, and the brown sauce catches along the edges before slipping into the hot rice underneath.

It can also look perfectly respectable and disappoint at the first bite. Pink beef can be chewy. Wet broccoli can loosen a sauce that seemed fine moments earlier. And a skillet set to “high” can cool so quickly under a pile of cold meat that searing quietly turns into steaming.

Only a few things really need your attention: thin slices across the grain, enough heat under the pan, dry broccoli and sauce that thickens before the final toss. This version of the Chinese-American takeout staple keeps the brown sauce savory rather than sweet, with oyster sauce, soy sauce and Shaoxing wine plus a brief tenderizing marinade for flank steak.

It is built for an ordinary home stove, whether you’re using a wok or a wide skillet. Keeping the pan hot matters more than trying to imitate a restaurant wok. The beef rests while you prepare everything else, so dinner can be on the table in about 30 minutes once the steak is ready to slice.

How to Make Beef and Broccoli Stir Fry

Serves4 with rice
DifficultyEasy, but fast-moving
PrepAbout 20 minutes
CookingAbout 10 minutes
Elapsed timeAbout 30 minutes once the steak is ready to slice
Best pan12-inch (30-cm) heavy skillet or well-heated wok

Beef and Marinade

  • 1 lb (450 g) flank steak
  • 1 tablespoon (15 ml) water
  • 1 teaspoon light or regular soy sauce
  • ¼ teaspoon (about 1 g) baking soda
  • 1 tablespoon (about 8 g) cornstarch
  • 1 teaspoon neutral cooking oil

Using sirloin or flat iron? Both are naturally tender, so you can reduce or omit the baking soda. Firmer cuts need more care; chuck steak can work, while round and stew meat are less forgiving.

Stir-Fry Sauce

  • ½ cup (120 ml) unsalted or low-sodium chicken stock, beef stock or water
  • 2 tablespoons (30 ml) oyster sauce
  • 1 tablespoon (15 ml) light or regular soy sauce
  • 1 tablespoon (15 ml) Shaoxing wine
  • 1 teaspoon dark soy sauce
  • 1½ teaspoons (about 6 g) sugar
  • ½ teaspoon toasted sesame oil
  • ⅛ teaspoon white pepper, or a small pinch

Cornstarch slurry: mix 2 teaspoons (about 6 g) cornstarch with 1 tablespoon (15 ml) cold water.

Broccoli, Aromatics and Oil

  • 1 lb (450 g) broccoli florets, weighed after trimming and cut into fairly even pieces
  • 2–3 tablespoons (30–45 ml) neutral high-heat cooking oil, divided as needed
  • 3 garlic cloves, finely chopped or minced
  • 2 teaspoons finely grated fresh ginger
  • Steamed rice, for serving

Before the pan gets hot: have the beef, broccoli, sauce, slurry, garlic and ginger beside you. Once stir-frying starts, there is very little waiting around.

1. Slice and Marinate the Beef

If the steak is already cold and easy to slice, go straight to the knife. Very soft steak is easier to cut after 15–30 minutes in the freezer, just until it firms up. That optional firming time is extra and is not included in the roughly 30-minute recipe time.

Find the long muscle fibers and cut across them into strips about ⅛–¼ inch (3–6 mm) thick. Keep the slices reasonably even so they cook at about the same rate.

Put the beef in a bowl. Add the water, soy sauce and baking soda and mix until the liquid coats the meat. Mix in the cornstarch, then work in the teaspoon of oil. Leave the beef for about 20 minutes while you prepare the sauce and broccoli.

Two-panel guide showing flank steak sliced perpendicular to its visible grain into thin strips, beside raw beef strips with a light glossy marinade coating in a stainless-steel bowl.
Across the grain shortens the long muscle fibers; after marinating, the strips should still separate easily with only a light sheen.

2. Mix the Sauce

Check your Shaoxing bottle first. Some bottles sold as cooking wine contain added salt; if yours does, use unsalted stock and be cautious with any extra soy later.

Combine the stock, oyster sauce, light soy sauce, Shaoxing wine, dark soy, sugar, sesame oil and white pepper.

Taste only to catch an obviously over-salty combination—the uncooked sauce should taste stronger than the finished dish. Don’t worry about the sharp edge of the Shaoxing; that softens as it cooks.

Give the slurry a quick stir and leave it beside the stove. The cornstarch will settle again before you use it. That’s normal.

3. Give the Broccoli a Head Start

Bring a large saucepan or pot of unsalted water to a strong boil. Add the broccoli and cook for about 30–60 seconds for small-to-medium florets. Larger pieces can need closer to 90 seconds.

Trust the stalk more than the clock. Take the broccoli out when it has turned vivid green and looks almost ready to eat, but the stalks still have some firmness.

Drain thoroughly and let the steam escape. If the florets still look wet, spread them over a clean kitchen towel or paper towels for a minute.

Two-panel comparison showing bright green broccoli just after blanching in a stainless strainer and drained broccoli resting on a rack with dry-looking surfaces.
Pull the broccoli while the stalks still resist slightly, then spread it out so steam and surface moisture can escape.

Water on the broccoli becomes water in the sauce.

4. Sear the Beef

Heat a 12-inch (30-cm) heavy skillet over medium-high to high heat until hot. A carbon-steel wok can go hotter; with nonstick cookware, stay within the manufacturer’s recommended heat range.

Add about 1 tablespoon oil and spread the beef into a mostly single layer. Your first batch will tell you a lot about the pan. If the beef keeps sizzling, carry on. When the sound dies and liquid gathers around the slices, cook less meat at once.

Side-by-side skillets showing crowded beef strips steaming in released liquid and spaced beef strips browning against a drier hot pan.
Use exposed pan as a batch-size check: if the beef would cover almost the whole skillet, split the batch. Open hot metal gives moisture somewhere to escape, helping the beef sear instead of steam.

Give the first side a moment of uninterrupted contact, then toss. Cook until the surfaces are browned and the meat is nearly done, usually about 2 minutes for thin slices.

Transfer the first batch to a plate. Wipe away blackened marinade residue, add fresh oil if the pan looks dry, then cook the remaining beef in another batch if needed.

5. Finish the Sauce

Turn the heat down slightly if the empty pan is fiercely hot. Add a splash of oil when needed, followed by the garlic and ginger. Stir for about 15 seconds. The kitchen should smell of garlic and ginger almost immediately. That’s enough.

Pour in the sauce and bring it to a lively simmer. As it bubbles, the color deepens and the sharp edge of the Shaoxing softens.

Stir the slurry again—cornstarch settles quickly—then pour in about three-quarters while stirring the bubbling sauce. Give it 20–30 seconds before deciding whether it needs the rest.

Glossy brown stir-fry sauce simmering in a black wok while a metal spoon moves through the thickening sauce.
A spoon trail should close again quickly. If the channel stays sharply open behind the spoon, stop adding slurry—the sauce is already heading toward too thick.

The sauce is ready when it leaves a light coating on a spatula and moves easily around the skillet. Don’t chase thickness after that point.

6. Bring Everything Together

Return the broccoli and beef, along with any small amount of juices on the plate, while the sauce is bubbling. If there is an unusually large watery puddle from the beef, leave most of it behind. Toss until the beef has just cooked through and everything is evenly coated, usually 30–60 seconds.

Thin beef strips and bright green broccoli being tossed above a hot wok with glossy brown sauce droplets and visible steam.

The sauce should catch along the edges of the broccoli and beef without burying them. Take the pan off the heat while it is slightly looser than you want on the plate; cornstarch sauces tighten as they cool.

Taste before adding more seasoning. A few drops of soy can fix a sauce that needs salt; a tablespoon of hot water or unsalted stock can loosen one that has become too intense or thick.

Serve Over Hot Rice

Spoon it over hot rice. The best bites have a strip of beef, a floret and enough sauce underneath to soak into the grains.

A spoonful of beef and broccoli held above white rice as glossy brown sauce flows from the spoon into the rice.
The finished sauce should slip between the rice grains rather than sit on top in a sticky mound.

How to Keep the Beef Tender

Velveting helps, but beef that stays chewy even with a pink center usually points to the cut, slicing direction or thickness. A thick strip cut with the grain won’t become tender just because it spent a few fewer seconds in the skillet.

What Is the Best Steak for Beef and Broccoli?

CutWhat to expectHow to use it
Flank steakLean, beefy, clearly grainedThe default here. Slice thinly across the grain and use the light marinade.
SirloinTender and forgivingAn easy substitute; little or no baking soda is needed.
Flat ironVery tenderExcellent for quick cooking; little or no baking soda is needed.
Skirt steakDeep flavor, strong visible grainSlice thinly and clearly across the grain.
Chuck steakBeefy and firmer than flank or sirloinSlice very thinly across the grain. It can work here, but expect a little more chew with this light marinade.
RoundLean and fairly firmSlice very thinly. Flank or sirloin is easier for this quick method.
Pre-cut stir-fry stripsConvenient, variable qualityChoose thin, even strips intended for fast cooking.
Chuck roast or stew beefUsually better suited to slower cookingSkip it for this quick stir-fry.
Beef grain guide showing flank and skirt with strong visible grain, sirloin and flat iron with finer grain, firmer chuck steak and round, and chuck roast or stew beef for slower cooking.
Use the label to identify the cut, then use the visible fibers to decide slicing direction. Grain direction matters more than the steak’s trimmed shape.

What the Beef Marinade Actually Does

This is a light velveting treatment, not an aggressive tenderizing soak. Soy seasons the surface, water gives the beef some moisture to absorb, and the modest amount of baking soda helps flank steak stay tender during fast cooking. Cornstarch forms a thin coating before the oil goes in.

Baking soda tenderizes. Cornstarch coats. That’s the useful distinction.

For flank steak, ¼ teaspoon baking soda for 1 lb (450 g) is deliberately modest. Sirloin or flat iron may not need it. Too much baking soda—or leaving the beef in it much longer than intended—can create an alkaline taste and an unnaturally soft texture.

Beef and Broccoli Sauce: Savory and Not Too Sweet

Oyster sauce does most of the heavy lifting here, giving the brown sauce its depth and body. Soy brings the salt, while the teaspoon of dark soy is mainly there for deeper color. Shaoxing adds its characteristic wine aroma, and the small amount of sugar rounds everything without turning the sauce sweet.

If you want a sweeter, more glaze-like sauce, that’s closer to homemade teriyaki sauce. Here, the sauce stays looser and less sweet so it can coat the beef, broccoli and rice without turning sticky.

How Thick Should the Sauce Be?

Think coating, not pudding. The sauce should cling lightly to the beef and broccoli, then flow back into the pan when you move a spatula through it. If it barely moves, loosen it before the final toss.

Three-panel comparison showing thin brown sauce running quickly from a spoon, correctly thickened sauce lightly coating and flowing, and overly thick sauce clinging in a slow heavy ribbon.
Thin sauce usually needs more simmering before more starch; overly thick sauce needs hot water or unsalted stock. The middle is the stopping point.

Want Extra Sauce for Rice?

Increase the stock to ¾ cup (180 ml) and the oyster sauce to 2½ tablespoons. Keep the light soy, Shaoxing wine, dark soy, sugar, sesame oil and white pepper at their original amounts.

This version is deliberately a little lighter rather than simply scaling every salty ingredient upward. You get more for the rice without making the whole bowl overly salty.

For the larger slurry, mix 1 tablespoon (about 8 g) cornstarch with 2 tablespoons (30 ml) cold water. Add it gradually; you may not need all of it. The consistency should still be glossy and coating, but you’ll have more left in the pan to spoon over the rice.

Fresh or Frozen Broccoli?

Frozen broccoli is useful here too. Skip the blanch. Heat it separately only until thawed and barely hot, then drain and blot away obvious moisture before it meets the sauce.

It won’t have the firmness of fresh broccoli, and that’s fine. The important part is keeping its extra water out of the skillet.

Side-by-side comparison of fresh broccoli after a brief blanch and thawed frozen broccoli with visible released water on a stainless-steel tray.
With frozen broccoli, moisture control matters more than extra cooking: thaw, drain and blot before the florets meet the sauce.

Wok or Skillet?

A carbon-steel wok shines over a strong gas flame. On many electric and induction stoves, a broad 12-inch (30-cm) skillet gives the beef a larger hot surface underneath it. If your burner is weaker, smaller batches matter more than pan shape.

Doubling the recipe means doubling the batches too. The skillet doesn’t get larger because the ingredient list did.

Side-by-side comparison of beef and broccoli cooking in a carbon-steel wok over a strong blue gas flame and in a broad skillet on a flat electric or induction cooktop.
Strong gas suits a wok; flat electric or induction heat often gives a broad skillet the more useful contact area.

Ingredient Substitutions

Some swaps barely change the dish; others can throw off the beef texture or the balance of the sauce.

Instead of…Try…What changes
Flank steakSirloin or flat ironUsually needs little or no baking soda.
Oyster sauceMushroom-style vegetarian oyster sauceThe closest easy substitute; use it in roughly the same way. Check labels if allergies matter.
Oyster sauceHoisinNot a direct substitute. If it is all you have, expect a sweeter, different sauce and reduce or omit the added sugar.
Soy sauceCoconut aminosSweeter and usually less salty. Reduce the sugar. Check the other condiments too if the entire dish needs to be soy-free.
Shaoxing wineDry sherryThe easiest close substitute.
Shaoxing wineMirinSweeter and less savory. Start with slightly less than the Shaoxing amount and omit the recipe sugar; adjust after tasting.
No cooking wine availableUnsalted stockThe sauce will be simpler and less aromatic.
Dark soyOmit itThe sauce will be lighter. Don’t replace it measure-for-measure with regular soy.

Don’t confuse rice wine with rice vinegar. Rice vinegar is much more acidic and is not a substitute for Shaoxing wine here.

For a gluten-free version: use gluten-free tamari, a gluten-free oyster-style sauce and gluten-free stock. Shaoxing wine is traditionally made with a wheat-based starter, so dry sherry is the simpler choice unless you know your bottle is gluten-free. Check the other packaged sauces too, since brands vary.

Variations

Mushrooms. After the beef comes out of the pan, brown sliced mushrooms until their released water has cooked away. Then continue with the garlic, ginger and sauce.

Carrots. Slice them thin and add them to the blanching water shortly before the broccoli so they get extra time to soften.

Bell peppers. After the beef comes out, stir-fry thinly sliced bell pepper briefly, then continue with the garlic and ginger; leave the pepper slightly crisp.

Spicy. Add crushed red pepper with the garlic and ginger, or finish individual bowls with chili oil or chili crisp.

What to Serve With Beef and Broccoli

Steamed jasmine rice or long-grain white rice is the easiest pairing. Brown rice works too. If you’d rather not guess at the rice, the guide to cooking rice has ratios and timings for the common varieties.

A cold cucumber salad gives the meal something completely different: crisp, cool and acidic against the warm brown sauce.

Complete beef and broccoli dinner with glossy beef strips and green broccoli on a dark serving plate, with white rice and a separate cucumber salad.

Storage, Reheating and Prep Ahead

This stir-fry is best straight from the pan. The next day it can taste very good, but the broccoli softens and the sauce loses some of its freshly cooked texture.

Refrigerate leftovers within 2 hours of cooking, or within 1 hour when the surrounding temperature is above 90°F / 32°C. Use refrigerated leftovers within 3–4 days.

The USDA leftovers guidance recommends reheating leftovers to 165°F / 74°C.

Warm only what you plan to eat. A skillet over moderate heat gives you good control, and a spoonful of water or unsalted stock can loosen sauce that tightened in the refrigerator.

You can cut the broccoli, slice the steak and mix the sauce earlier in the day and refrigerate them separately. Add the baking soda and the rest of the short beef marinade closer to cooking.

Freezing works, but it isn’t the best storage choice for this dish. The broccoli softens noticeably after thawing, which takes away much of the texture that makes the stir-fry good.

Troubleshooting Beef and Broccoli

Start with what changed. Did the sauce thin only after the broccoli went in? Did the beef turn gray as soon as it hit the pan? Is it chewy even though the center isn’t overcooked? Those clues tell you more than simply adding heat, starch or cooking time.

Beef Problems

What happenedWhat to do
The beef is chewy, even though it may still be pink inside.
A firmer cut, slices running with the grain or pieces that are too thick can all stay chewy before the beef looks obviously overcooked. Dry, gray beef may simply have cooked too long.
Now: If the beef is still underdone, finish cooking it only as much as needed; extra cooking won’t fix chewiness caused by the cut, grain or thickness. Keep it well coated with sauce and cut unusually large strips smaller before serving.
Next time: Choose a suitable cut, slice about 3–6 mm across the grain and remove the beef while it is still just shy of done.
Some pieces are tender and others are tough.
Uneven slicing is the usual reason.
This can’t really be evened out after cooking. Next time, keep the slices as consistent in thickness as practical.
The beef tastes alkaline or feels strangely soft.
Too much baking soda was used, or the beef sat in it for too long.
The texture can’t really be reversed. Extra unsalted sauce, vegetables and rice may soften an alkaline taste. Next time, measure the baking soda carefully and keep to the short marinade rest.
The beef is gray and sitting in liquid.
The pan lost too much heat.
Now: Stop adding beef, let the moisture cook away and finish the remaining meat separately.
Next time: Use smaller batches and let the pan recover between them.

Sauce Problems

Thickness and Texture Problems

What happenedWhat to do
The sauce won’t thicken.
The slurry may have settled, the sauce may not be simmering, or there may be too little starch for the liquid in the pan.
Now: Remove already-cooked beef and broccoli if necessary. Mix 1 teaspoon cornstarch with 2 teaspoons cold water and add it gradually to the bubbling sauce.
Next time: Re-stir the slurry immediately before pouring and give it a moment to cook.
The sauce was thick until the broccoli went in.
The vegetables probably carried water into the skillet.
Now: Remove finished beef and broccoli and reduce the sauce briefly before reaching for more starch.
Next time: Drain and dry the broccoli thoroughly.
The sauce is gummy.
Too much starch went in, or the sauce reduced too far.
Now: Add unsalted stock or water 1 tablespoon (15 ml) at a time until it flows again.
Next time: Add the slurry gradually.

Flavor Problems

What happenedWhat to do
The sauce is too salty.
Soy, oyster sauce, stock and sometimes salted Shaoxing cooking wine can add up.
Now: Slightly salty? Loosen it with unsalted stock or water. Badly oversalted? Spoon out some sauce first, then replace that volume with unsalted liquid. Plain rice or extra unseasoned broccoli can soften the overall saltiness.
Next time: Check condiment labels and taste the uncooked sauce only for an obviously over-salty combination.
The sauce is too sweet.
Too much sugar went in, or a sweeter substitute such as hoisin or mirin wasn’t accounted for.
Now: Add a splash of unsalted stock or water first. If the sauce then tastes flat, add oyster sauce or soy a few drops at a time.
Next time: Reduce the added sugar when using sweeter substitutes.
The sauce tastes bitter.
The garlic, ginger or dark residue in the pan probably scorched.
Now: Remove the burned pieces and taste. A few scorched flecks may not ruin the sauce. If the bitterness has spread through it, wipe the pan clean and remake the sauce mixture.
Next time: Lower the heat before adding the aromatics and move on as soon as they smell fragrant.

Broccoli and Pan Problems

What happenedWhat to do
The broccoli is hard.
The florets were large or needed more of a head start.
Now: Take the beef out, add a splash of water, cover the pan briefly and let the broccoli steam until the stalks begin to yield. Uncover, let excess water cook away, then return the beef.
Next time: Cut the florets more evenly and use stalk tenderness as the cue, not only the clock.
The broccoli is mushy.
It cooked too far before or during the final toss.
The texture can’t be restored once it becomes soft. Next time, take it out of the blanching water earlier and remember that it cooks again during the final toss.
The second beef batch tastes burned.
Marinade residue from the first batch scorched in the pan.
Now: Remove burned solids before continuing.
Next time: Wipe away blackened residue between batches and add fresh oil when needed.
A doubled recipe turns watery.
Twice the cold food went into the same-size skillet.
Now: Remove some of the food and finish it in batches.
Next time: Double the ingredients, not the amount your pan is expected to sear at once.

Once it looks right, stop fussing with it. Spoon everything over hot rice and eat it while the pan is still steaming.

Leave a Reply

Your email address will not be published. Required fields are marked *