I used to think stir-fry was a weeknight shortcut I could wing.
Then I made one too many batches where the beef steamed instead of seared, the vegetables went limp, and the sauce pooled at the bottom of the wok instead of coating anything. The fix wasn’t a fancier ingredient — it was the order of operations.
This is the version I’ve landed on, and it’s the one I return to when I want dinner on the table in half an hour.
The recipe solves the two problems that make homemade stir-fry disappointing: watery beef and a thin sauce that doesn’t cling.
The beef gets patted dry and seared in batches over high heat so it browns instead of steaming, and the sauce gets body from a cornstarch slurry added at the end and simmered for a minute until it turns glossy. The vegetables stay crisp because they hit the wok after the beef comes out and cook for three to five minutes, not ten.
I tested this in my kitchen with sirloin sliced against the grain, and the detail that matters most is the one most recipes skip: keep the cornstarch slurry separate until it goes into the pan.
If you mix it in advance, it settles and clumps. Whisk it fresh and stir it into the sauce right before it hits the wok; it thickens evenly into a coating that clings to every piece of beef and vegetable.
Why This Recipe Works

Slicing against the grain is what makes sirloin feel tender. Sirloin has visible muscle fibers, and slicing across them shortens each one so your teeth don’t have to do the work. Look at the steak, find the direction the fibers run, and cut perpendicular to that — into strips about ¼ inch thick. Sliced with the grain, the same steak feels chewy no matter how briefly you cook it.
Patting the beef dry is what makes it brown instead of steam. Surface moisture has to evaporate before browning can start, and in a hot wok that moisture turns to steam and cooks the beef gray. Patting the strips dry with paper towels takes thirty seconds and is the difference between a sear and a stew.
Searing in batches keeps the pan hot enough to brown. A pound of beef in a single layer in a hot wok drops the pan temperature fast. Two batches, each in a single layer, keep the heat high enough that the beef develops color in a minute or two per side. Crowding the pan is the single most common reason homemade stir-fry turns watery.
Add the cornstarch slurry at the very end, and mix it fresh. Cornstarch mixed with cold water and left to sit settles into a hard layer at the bottom of the bowl. Whisking it fresh and stirring it into the sauce right before it goes into the wok is what gives you an even, glossy coating instead of lumps. The slurry is also what thickens the sauce without reducing it for ten minutes, which would overcook the vegetables.
Add the vegetables after the beef comes out, and add the carrots first. Carrots cut thickly take longer than peppers and snap peas. Starting them first and adding the peppers and snap peas a minute later means everything finishes at roughly the same time — crisp-tender, not limp. If the pan looks dry, a tablespoon of water is enough to keep things moving without steaming the vegetables.
The sauce is balanced on purpose: soy for salt, oyster sauce for depth, rice vinegar for brightness, brown sugar for roundness. Soy sauce alone tastes flat and salty. The oyster sauce adds a savory depth that reads as restaurant stir-fry, the vinegar cuts through the salt, and a teaspoon or two of brown sugar rounds the edges without making it sweet. Add sesame oil at the end, off the heat, so its aroma survives.
Ingredients That Matter

Most of this list is flexible. Three ingredients are easy to get wrong, so those are the ones worth explaining.
Sirloin, sliced against the grain. Sirloin has good beef flavor and cooks quickly, but it’s only tender if you slice it across the fibers into thin strips. Flank steak and flat iron work too, sliced the same way. If you get this wrong, the stir-fry tastes fine, but the beef is chewy — and no amount of extra cooking time fixes it.
Oyster sauce. This adds savory depth and a glossy, restaurant-style finish. Vegetarian mushroom stir-fry sauce is a good substitute if you need it, but plain soy sauce alone will taste thinner and saltier. Check the label — oyster sauce brands vary a lot in salt and sweetness.
Cornstarch. The thickening agent, and the thing that makes the sauce cling instead of pool. Mix it with cold water, not warm, and keep it separate until you add it to the pan. Too much cornstarch makes the sauce gluey; this recipe calls for 1 tablespoon for about 1 lb of beef and 4 cups of vegetables.
How to Make It

Step 1: Slice the beef and pat it dry.
Slice 1 lb of sirloin thinly against the grain into strips about ¼ inch thick. Pat the strips dry with paper towels — they should look matte, not shiny. Set aside.
Step 2: Mix the sauce and the slurry separately.
In a small bowl, whisk together ¼ cup low-sodium soy sauce, 2 tablespoons oyster sauce, ¾ cup water or unsalted beef broth, 1 tablespoon rice vinegar, 1 to 2 teaspoons brown sugar, ½ to 1 teaspoon toasted sesame oil, and a pinch of red pepper flakes if you want heat. In a separate small bowl, mix 1 tablespoon cornstarch with 2 tablespoons cold water until smooth and set it aside. Do not combine the two yet.
Step 3: Sear the beef in batches.
Heat a large wok or heavy skillet over high heat until a drop of water sizzles on contact. Add about half the neutral oil and swirl to coat. Add half the beef in a single layer and sear for 1 to 2 minutes per side, until browned on the edges but not cooked through — the center should still be slightly pink. Transfer to a clean plate and repeat with the remaining oil and beef.
Step 4: Stir-fry the vegetables.
Add the carrots first if they’re cut thickly, and stir-fry for 1 to 2 minutes. Then add the bell peppers and snap peas and stir-fry for another 2 to 3 minutes, tossing frequently, until the vegetables are brightly colored and crisp-tender — they should still snap when you bite one. If the pan looks dry, add 1 tablespoon of water. Add 3 cloves minced garlic and 1 teaspoon grated ginger (if using), and cook for 30 seconds, stirring constantly, until fragrant.
Step 5: Add the sauce and finish.
Whisk the cornstarch slurry again, then stir it into the prepared sauce. Return the beef and any juices on the plate to the wok. Pour in the sauce and toss to coat everything. Bring to a gentle simmer, stirring for 1 to 2 minutes, until the sauce thickens and coats the beef and vegetables in a glossy layer. If it’s thicker than you like, add a splash of water and toss again.
Step 6: Serve immediately.
Spoon over warm cooked rice or noodles and finish with sesame seeds and sliced green onions if you have them. The sauce thickens as it sits, so serve it right away — a splash of water loosens it if it tightens in the bowl.
Tips and Troubleshooting

The beef turned out gray and steamed instead of browned. The pan wasn’t hot enough, the beef was wet, or the pan was crowded. Pat the beef dry, heat the wok until a drop of water sizzles, and sear in two batches in a single layer.
The stir-fry is watery. The vegetables released moisture, the pan was overcrowded, or the sauce didn’t simmer long enough. Cook the beef in batches, keep the heat high, and let the sauce bubble for the full 1 to 2 minutes so the cornstarch can thicken it.
The sauce is gluey or lumpy. You used too much cornstarch, or the slurry went in cold and clumped. Use 1 tablespoon of cornstarch for this quantity, mix it fresh with cold water, and whisk it into the sauce right before it goes into the wok.
The vegetables went limp. They cooked too long, or the pan wasn’t hot enough. Stir-fry them for 3 to 5 minutes total over high heat — they should be crisp-tender, not soft. Add the carrots first if they’re cut thickly.
The garlic burned. It went in too early, or the pan was too hot. Add the garlic and ginger in the last 30 seconds of cooking the vegetables, stirring constantly, and pull the pan off the heat as soon as it smells strongly fragrant.
The sauce tastes too salty. Soy sauce and oyster sauce brands vary a lot in saltiness. Use low-sodium soy sauce, taste the sauce before it goes into the wok, and add a splash more water or a pinch more brown sugar if it’s too intense.
The beef is chewy. It was sliced with the grain or overcooked. Slice against the grain into ¼-inch strips, sear it only until browned (it finishes in the sauce), and pull it as soon as the center is no longer pink.
A Few Substitutions

I often make this with chicken breast or tofu instead of beef, and the timing would differ for both—chicken needs to cook through before it comes out of the pan, and tofu needs to be pressed and browned first. If you try either, I’d love to hear how it turns out.
I have also made this with a gluten-free version myself. Tamari and gluten-free oyster sauce should work, but check every label, because soy sauce and oyster sauce are both common sources of hidden gluten.
Storage and Make-Ahead
Mix the sauce (minus the cornstarch slurry) and refrigerate in a sealed container for up to 3 to 4 days. Whisk the slurry fresh right before cooking.
Store the finished stir-fry in a sealed container in the refrigerator for up to 3 days. Reheat gently in a skillet over medium heat with a splash of water, stirring until the sauce loosens — the microwave works but can make the beef rubbery. Reheat to 165°F before serving.
I don’t recommend freezing the finished stir-fry. The vegetables go soft, and the sauce separates on thawing. If you freeze it anyway, thaw overnight in the refrigerator and reheat gently, accepting that the texture will be softer.
Store leftovers in the refrigerator within 2 hours of cooking, and discard anything left at room temperature for more than 2 hours.
Beef Stir Fry with Homemade Stir Fry Sauce
Tender sirloin, crisp bell peppers, snap peas, and carrots tossed in a glossy homemade stir—fry sauce— soy, oyster sauce, rice vinegar, and a touch of brown sugar- thickened at the end with a cornstarch slurry. Ready in 30 minutes.
Ingredients
For the stir fry:
- 1 lb sirloin steak, thinly sliced against the grain
- 4 cups mixed stir-fry vegetables (bell peppers, snap peas, carrots)
- 1 tbsp neutral oil (avocado or canola), divided
- 3 cloves garlic, minced
- 1 tsp freshly grated ginger (optional)
- Cooked rice or noodles, for serving
- Sesame seeds and sliced green onions, for garnish (optional)
For the homemade stir fry sauce:
- ¼ cup low-sodium soy sauce or tamari
- 2 tbsp oyster sauce or vegan mushroom stir-fry sauce
- ¾ cup water or unsalted beef broth
- 1 tbsp rice vinegar
- 1–2 tsp brown sugar
- ½–1 tsp toasted sesame oil
- 1 tbsp cornstarch
- 2 tbsp cold water
- Red pepper flakes (optional)
Instructions
- Slice the sirloin thinly against the grain into ¼-inch strips and pat dry with paper towels.
- Whisk the soy sauce, oyster sauce, water or broth, rice vinegar, brown sugar, sesame oil, and red pepper flakes if using in a small bowl. In a separate bowl, mix the cornstarch with 2 tablespoons cold water until smooth. Keep separate.
- Heat a wok or heavy skillet over high heat. Add half the oil, then half the beef in a single layer. Sear 1 to 2 minutes per side until browned but not cooked through. Transfer to a plate and repeat with the remaining oil and beef.
- Add the carrots to the hot wok and stir-fry 1 to 2 minutes. Add the bell peppers and snap peas, then stir-fry for another 2 to 3 minutes, until crisp-tender. Add the garlic and ginger and cook for 30 seconds, until fragrant.
- Whisk the slurry again and stir it into the sauce. Return the beef and its juices to the wok, pour in the sauce, and toss. Simmer 1 to 2 minutes until the sauce thickens and coats everything in a glossy layer.
- Serve immediately over rice or noodles, garnished with sesame seeds and green onions.
Notes
Notes: The sauce (without the slurry) keeps refrigerated up to 3 to 4 days. Leftovers keep refrigerated up to 3 days; reheat gently with a splash of water. Not recommended for freezing. Nutrition information is an estimate and excludes rice or noodles.
Nutrition (per serving, estimated): About 300–360 calories, 28–32g protein, 12–17g carbs, 12–17g fat, 2–4g fiber, 700–1,000mg sodium.
FAQ
What is the best cut of beef for stir-fry?
Sirloin is a good choice because it has beef flavor and cooks quickly. Flank steak and flat iron steak also work well when sliced thinly against the grain. Avoid stewing cuts like chuck, which stay tough in a quick stir-fry.
Can I make the stir-fry sauce ahead of time?
Yes. Mix everything except the cornstarch slurry and refrigerate in a sealed container for up to 3 to 4 days. Whisk the cornstarch with cold water fresh, right before cooking, and stir it into the sauce just before it goes into the wok.
Why is my beef stir-fry watery?
The pan was overcrowded, the heat was too low, or the vegetables released moisture. Sear the beef in batches over high heat, pat it dry first, and let the sauce simmer for the full 1 to 2 minutes so the cornstarch can thicken it.
Can I use frozen vegetables?
Yes, but use them straight from frozen and expect them to release more water. Add them to the wok and cook a minute or two longer than fresh vegetables so the excess moisture cooks off before the sauce goes in.
Can I serve beef stir-fry without rice?
Yes. Serve it on its own, over cauliflower rice, or with noodles. The stir-fry itself is low in carbohydrates; the rice or noodles are what add them.
Is this stir-fry spicy?
Not unless you add the red pepper flakes or a little chili-garlic sauce. As written, the sauce is savory and slightly sweet, with no heat.
More High-Protein Recipes You’ll Love
Budget-Friendly Asian Ground Chicken Stir Fry — 29g Protein, 20 Minutes
Crispy Tofu Vegetable Stir-Fry — 30-Minute Vegan Meal Prep
15-Minute Ground Beef Stir-Fry – Better Than Takeout
Crispy Potsticker Noodle Bowl — Frozen Gyoza, Rice Noodles, 3-Ingredient Sauce
Closing
Make this beef stir-fry on a night when you want something fast that still tastes like you put in effort.
The technique in the recipe card — slicing against the grain, patting the beef dry, searing in batches, and whisking the cornstarch slurry fresh at the end — is what makes it come out glossy instead of watery.
I’ve made this more times than I can count, and it’s the version I reach for when I want takeout flavor without the takeout wait.
Try it with chicken or tofu, or add chili-garlic sauce for heat, and let me know how it turns out.