Beef and broccoli is the takeout order everyone loves and nobody needs to order. The restaurant version leans on a vat of pre-made sauce and beef of mysterious tenderness; this one is faster than the delivery driver, built on thinly sliced flank steak seared ripping-hot, broccoli with actual char on the edges, and a glossy garlic-ginger sauce you whisk together in two minutes. Thirty minutes, one pan plus a pot of rice, and bowls with about 35g of protein each.

Why you’ll love it
- Faster than takeout. Thirty minutes flat — no delivery fee, no soggy cartons.
- The velvet trick. A quick cornstarch toss gives the beef that silky takeout texture without any mystery.
- ~35g protein per serving (estimated), from flank steak plus a full serving of broccoli.
- One sauce, endless stir-fries. The garlic-ginger glaze works on chicken, shrimp, or tofu too.

Ingredients
- 1.25 lb flank steak, thinly sliced against the grain (about 1/8-inch strips)
- 1 tbsp low-sodium soy sauce, plus 1/3 cup for the sauce
- 1 tbsp cornstarch, plus 1 tablespoon for the sauce
- 2 tbsp oyster sauce
- 1 tbsp honey
- 1 tbsp rice vinegar
- 2 tsp toasted sesame oil
- 1/3 cup water or low-sodium beef broth
- 5 cups broccoli florets, about 2 medium heads
- 3 tbsp neutral oil, avocado or canola; divided
- 4 cloves garlic, minced
- 1 tbsp fresh ginger, grated
- 0.25 tsp red pepper flakes, optional
- 3 cups cooked jasmine rice, for serving (start 1 cup dry rice first)
- Toasted sesame seeds and sliced green onions, for serving


Equipment
A large wok or 12-inch skillet (cast iron or carbon steel is ideal), a small bowl and whisk for the sauce, and tongs.
Instructions
- Start the rice and slice the beef. Get the rice going first — it cooks while you stir-fry. Slice the flank steak thinly against the grain into 1/8-inch strips (partially freezing it for 15 minutes makes this much easier). Toss the strips with 1 tablespoon soy sauce and 1 tablespoon cornstarch; set aside while you prep everything else.
- Whisk the sauce. In a small bowl, whisk the remaining 1/3 cup soy sauce, oyster sauce, honey, rice vinegar, sesame oil, 1 tablespoon cornstarch, and the water until smooth. Cut the broccoli into bite-size florets and mince the garlic and ginger.
- Sear the beef. Heat 2 tablespoons oil in a wok or large skillet over high heat until shimmering and just starting to smoke. Sear the beef in a single layer in two batches, 1–2 minutes per side, until browned at the edges and cooked through. Transfer to a plate — don’t crowd the pan or the beef steams instead of sears.
- Char the broccoli. Add the remaining 1 tablespoon oil to the same pan. Add the broccoli and 2 tablespoons of water, cover, and steam 2 minutes. Uncover and cook 2–3 minutes more, stirring occasionally, until bright green with charred edges and crisp-tender bite.
- Sauce it up. Push the broccoli to the sides. Add the garlic, ginger, and red pepper flakes to the center; cook 30 seconds until fragrant. Return the beef to the pan, pour in the sauce, and toss everything 1–2 minutes until the sauce turns glossy and thick enough to coat a spoon.
- Bowl it up. Spoon over hot jasmine rice, shower with sesame seeds and green onions, and serve immediately.



Doneness cues: The beef is done when the thin strips show browned edges and no pink — at this thickness, 1–2 minutes per side over high heat is plenty. The broccoli is right when it’s vivid green with a few charred spots and still has bite; mushy broccoli means it went too long. The sauce is ready when it coats the beef with a shine instead of pooling thin.


30-Minute Beef & Broccoli Stir-Fry Bowls
Ingredients
Equipment
Method
- Get the rice going first — it cooks while you stir-fry. Slice the flank steak thinly against the grain into 1/8-inch strips (partially freezing it for 15 minutes makes this much easier). Toss the strips with 1 tablespoon soy sauce and 1 tablespoon cornstarch; set aside while you prep everything else.
- In a small bowl, whisk the remaining 1/3 cup soy sauce, oyster sauce, honey, rice vinegar, sesame oil, 1 tablespoon cornstarch, and the water until smooth. Cut the broccoli into bite-size florets and mince the garlic and ginger.
- Heat 2 tablespoons oil in a wok or large skillet over high heat until shimmering and just starting to smoke. Sear the beef in a single layer in two batches, 1–2 minutes per side, until browned at the edges and cooked through. Transfer to a plate — don’t crowd the pan or the beef steams instead of sears.
- Add the remaining 1 tablespoon oil to the same pan. Add the broccoli and 2 tablespoons of water, cover, and steam 2 minutes. Uncover and cook 2–3 minutes more, stirring occasionally, until bright green with charred edges and crisp-tender bite.
- Push the broccoli to the sides. Add the garlic, ginger, and red pepper flakes to the center; cook 30 seconds until fragrant. Return the beef to the pan, pour in the sauce, and toss everything 1–2 minutes until the sauce turns glossy and thick enough to coat a spoon.
- Spoon over hot jasmine rice, shower with sesame seeds and green onions, and serve immediately.
Notes
Nutrition note
Protein is estimated at about 35g per serving, calculated from USDA FoodData Central values for the listed ingredients — this is an estimate, not a lab analysis. Actual values vary by brand and preparation.
Substitutions and tips
- Other cuts: Sirloin or skirt steak work the same way. Chicken thighs cut into strips need 3–4 minutes per side.
- Frozen broccoli: Thaw it completely and pat very dry, or it will steam instead of char. Add 1 minute to step 4.
- No oyster sauce? Use hoisin, or add 1 extra tablespoon soy sauce plus 1 teaspoon brown sugar.
- Gluten-free: Swap in tamari and a gluten-free oyster sauce; everything else is naturally GF.
- Don’t crowd the pan — the single biggest stir-fry mistake. Two quick batches beat one steamy pile.
- Slice against the grain. Look for the lines running through the flank steak and cut across them; it’s the difference between tender and chewy.

Storage and reheating
Refrigerate leftovers within 2 hours in an airtight container for up to 4 days (store rice separately if you can — it reheats better). Reheat in a hot skillet for 2–3 minutes until steaming, or microwave in 60-second bursts, stirring between. Freezes well for up to 3 months, though the broccoli softens — thaw overnight in the fridge. For meal prep, portion rice and stir-fry into separate compartments.

Frequently asked questions
What’s the best cut of beef for stir-fry? Flank steak is the sweet spot: affordable, beefy, and tender when sliced thin against the grain. Sirloin and skirt steak are close seconds.
How do I keep the beef from getting tough? Three things: slice thin against the grain, get the pan genuinely hot before the beef goes in, and don’t overcook — 1–2 minutes per side is all thin strips need.
Can I use frozen broccoli? Yes. Thaw fully and pat dry first so it chars instead of steaming.
Is this gluten-free? As written, no — but it gets there with tamari instead of soy sauce and a gluten-free oyster sauce.
Can I double the sauce? Absolutely — if you like things extra saucy over rice, make 1.5x the sauce. It thickens fast, so have everything ready before it hits the pan.

More 30-minute high-protein dinners
Another takeout fakeout: our 30-Minute Bang Bang Chicken & Broccoli brings the sweet heat. For a chicken version of the one-pan magic, try 25-Minute Honey Garlic Chicken & Green Beans. More high-protein pasta nights: 30-Minute Garlic Parmesan Chicken Pasta is all one pot.