Slice the beef: Freeze the steak for 15–20 minutes to firm it up.
Slice thinly against the grain into bite-size strips. This ensures tenderness and quick cooking.
Make the sauce: In a bowl, whisk soy sauce, oyster sauce, rice vinegar, honey, sesame oil, broth, cornstarch, black pepper, and red pepper flakes if using. Scoop out 2 tablespoons of this mixture and pour it over the sliced beef to marinate.
Let the beef rest for 10 minutes while you prep the vegetables.
Prep the broccoli: Cut florets into similar sizes so they cook evenly. If using the stalks, peel the tough outer layer and slice thinly—they’re delicious and reduce waste.
Blanch or steam (optional but recommended): To keep broccoli vibrant and crisp-tender, quickly blanch in boiling water for 1 minute, then drain and rinse under cold water. Pat dry.
If skipping this step, just add a minute or two to the stir-fry time.
Heat the pan: Set a large skillet or wok over medium-high heat. Add 1 tablespoon of oil and swirl to coat.
Sear the beef: Working in batches, add a single layer of beef and sear 1–2 minutes per side until browned but not fully cooked through. Transfer to a plate.
Avoid overcrowding to keep a good sear.
Sauté aromatics: Add the remaining 1 tablespoon of oil. Toss in the onion (if using) and cook 1–2 minutes. Add garlic and ginger and stir just until fragrant, about 30 seconds.
Don’t let them burn.
Cook the broccoli: Add the broccoli to the pan. Stir-fry 2–3 minutes until heated through and crisp-tender. If the pan looks dry, splash in a tablespoon of water to create steam.
Add beef and sauce: Return the beef and any juices to the pan.
Whisk the sauce again (cornstarch settles), then pour it in. Stir constantly as it thickens and coats everything, 1–2 minutes.
Finish and serve: Taste and adjust seasoning. Garnish with green onions and sesame seeds.
Serve over brown rice, cauliflower rice, or noodles.