Slice the beef. Freeze the steak for 15–20 minutes to firm it up.
Slice thinly against the grain into bite-size strips. Thinner slices cook faster and stay tender.
Mix the marinade. In a bowl, whisk soy sauce, rice vinegar, oyster sauce, honey, sesame oil, black pepper, cornstarch, and water/broth. Set aside 2 tablespoons of this mixture for the beef, and keep the rest as the stir-fry sauce.
Marinate quickly. Toss the sliced beef with the reserved 2 tablespoons of marinade.
Let it sit for 10–15 minutes while you prep the vegetables.
Prep the vegetables. Cut broccoli into small florets. Slice the bell pepper. Mince garlic and ginger.
Separate the green onion whites and greens.
Blanch or steam the broccoli (optional but helpful). For extra-crisp, bright broccoli, steam or blanch for 1–2 minutes until just tender, then drain well. This step speeds up stir-frying and keeps color vibrant.
Heat the pan. Set a large skillet or wok over medium-high heat. Add 1 tablespoon oil and swirl to coat.
The pan should be hot before the beef goes in.
Stir-fry the beef. Add beef in a single layer. Cook undisturbed for 1 minute to sear, then stir-fry for 2–3 minutes until mostly browned but not fully cooked through. Remove to a plate.
Aromatics and veggies. Add the remaining 1 tablespoon oil.
Add garlic, ginger, and the white parts of the green onion. Cook 30 seconds until fragrant. Add broccoli (and bell pepper if using).
Stir-fry 2–3 minutes until crisp-tender.
Sauce and finish. Return beef and any juices to the pan. Stir the sauce once more to recombine, then pour it in. Toss for 1–2 minutes until the sauce thickens and coats everything.
If you like heat, add red pepper flakes now. Turn off heat and sprinkle with green onion tops.
Serve. Spoon over brown rice, quinoa, or cauliflower rice. Garnish with sesame seeds and a squeeze of lime if you like a bright finish.