Soups & Stews
This beef and tomato stir fry delivers restaurant-quality crispy beef and vibrant tomatoes in just 20 minutes—no takeout required. The secret lies in high-heat wok technique and a tangy sauce that balances sweet, sour, and umami perfectly. I developed this recipe after years of perfecting stir-fry timing, ensuring every bite has that signature wok-hei smokiness while keeping the beef tender-crisp. What sets this dish apart is the two-stage cooking process: first searing the beef in batches to render fat and create crispy edges, then tossing everything together with a sauce that's bright from rice vinegar and deep from soy and oyster sauce. The tomatoes soften just enough to release their natural sweetness while maintaining texture. By the time you plate it, you'll have golden-brown beef strips with glossy, slightly charred edges, surrounded by tender tomatoes and wok-fried aromatics. The sauce clings to everything, creating that perfect balance of sweet, tangy, and savory in every bite—exactly what makes stir-fry so addictive. Serve over steamed jasmine rice or noodles to soak up every last bit of that flavorful sauce. Let's get cooking!
Ingredients for beef and tomato stir fry
Crispy beef and vibrant tomatoes—just 15 ingredients for restaurant-style stir fry magic.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 ¼ lb | Thinly sliced against grain |
| Medium Red Onions 🧅 | 1 whole | Cut into 1/4-inch slices |
| Roma Tomatoes 🍅 | 1 ½ lb | Cut into wedges |
| Fresh Garlic 🧄 | 4 cloves | Minced for sauce |
| Fresh Ginger 🌿 | 1 ½ tbsp | Grated, packed |
| Rice Vinegar 💧 | 3 tbsp | Seasoned preferred |
| Soy Sauce 🍶 | 3 tbsp | Low-sodium preferred |
| Oyster Sauce 🍶 | 1 ½ tbsp | Thick variety |
| Sesame Oil 🫒 | 1 tbsp | Toasted sesame oil |
| Brown Sugar 🍯 | 1 ½ tbsp | Packed lightly |
| Cornstarch 🌾 | 1 tbsp | For tenderizing beef |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point |
| Green Onions 🧅 | 3 whole | Sliced for garnish |
| Sesame Seeds 🌾 | 1 tbsp | Toasted for crunch |
| Salt 🧂 | 1 ½ tsp | Kosher salt preferred |
The flank steak is your star here—look for well-marbled cuts at the butcher counter or pre-sliced Asian market sections. Costco or Trader Joe's usually carry it pre-sliced, which saves time. If you're buying whole, slice it thinly against the grain for that signature tender-crisp texture. The Roma tomatoes should be firm but ripe—Heinz or Muir Glen brands work well when fresh ones are out of season. Ginger and garlic? Fresh is non-negotiable—dried just won't give you that bright, aromatic punch the sauce needs. I always grab extra ginger because it's used in so many dishes.
No sesame oil? Toasted peanut oil works in a pinch, though it'll have a different flavor profile. Short on brown sugar? Honey or agave at half the amount keeps things balanced. The cornstarch is key for tenderizing the beef—don't skip it. For the onions, red onions add color while yellow are milder. The green onions can be swapped for chives if you're out, but they add that fresh aroma that's hard to beat. And if you're making this for a crowd, double the sauce ingredients—it disappears fast.
Prep the beef and sauce components ahead—they keep well for 2 days in the fridge. The cornstarch marinade can go on the beef up to 4 hours before cooking. Store the sauce separately in a jar—it'll keep for 1 week. Freeze the cooked beef in a single layer before transferring to bags for 3 months. I always make extra sauce because it's perfect for drizzling over rice or noodles later. The sesame seeds toast in 30 seconds—don't walk away from them or they'll burn.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe when I’m too tired to wash dishes. Flank steak and onions caramelize right alongside the tomatoes—no flipping pans or extra bowls. Just slice, stir, and let the wok do the work.
- Garlic-Ginger Bomb: That first bite? The fresh ginger and minced garlic hit like a flavor grenade. The tomatoes soften just enough to soak up the umami, while the steak stays tender with a hint of char. It’s the kind of dish that makes you pause mid-bite.
- Lunchbox Hero: Between us, this is my go-to for meal prep. The flavors actually improve the next day—better than sad takeout leftovers. Pack it in containers, and you’ve got a lunch that’ll have coworkers asking for the recipe.
- Budget Power Move: Flank steak stretches far, and Roma tomatoes are cheap this time of year. I feed four people for under $15, and there’s always enough for seconds. Plus, the onions and ginger last for other recipes—zero waste.
Step-by-step instructions for wok-heated beef and tomato stir fry
Here's how to transform simple ingredients into a restaurant-quality stir fry with perfectly crispy beef and vibrant tomato sauce.
Prep the Beef for Maximum Tenderness
Place the 1.25 lb flank steak on a cutting board and slice it thinly against the grain into ¼-inch thick strips. I use a sharp chef's knife and cut at a 45-degree angle for uniform pieces. Transfer the sliced beef to a bowl and sprinkle with 1 tbsp of the 1.5 tsp salt and all 1 tbsp cornstarch. Toss gently to coat evenly - this helps tenderize the meat and creates that signature crispy texture.
Let the beef marinate for 15-20 minutes while you prep the vegetables. The cornstarch creates a light crust while the salt begins breaking down the muscle fibers. Don't skip this step - it makes all the difference in texture. If you're short on time, even 10 minutes helps, but 20 minutes gives the best results.
Build the Flavor Base with Aromatics
Heat 2 tbsp vegetable oil in a wok or large skillet over medium-high heat until shimmering. Add the 1 whole medium red onion cut into ¼-inch slices and cook for 3-4 minutes until softened but not browned. Push the onions to one side of the wok and add 2 tbsp vegetable oil to the empty space.
Add 2 cloves of the 4 cloves fresh garlic (minced) and 1 tbsp of the 1.5 tbsp fresh ginger (grated). Stir constantly for 30 seconds until fragrant - you'll smell that wonderful garlic-ginger aroma. This is where the foundation flavors develop. Don't walk away; garlic burns quickly. Add the remaining 2 cloves garlic and ½ tbsp ginger to the beef mixture now.
Cook the Beef to Perfect Crispiness
Working in batches if needed, add the marinated beef to the wok in a single layer. Cook undisturbed for 1-2 minutes until the edges turn golden brown and crispy. This is crucial - the beef needs that initial sear. Stir and cook for another 1-2 minutes until the beef is 80% cooked through but still slightly pink in the center. Remove the beef and set it aside temporarily.
Here's the thing - if the beef sticks to the wok, don't panic. Just add a splash of water and scrape up those flavorful browned bits. These bits, called fond, are packed with flavor that will enrich your sauce. The beef should be tender but still have a slight bite - it'll finish cooking in the sauce.
Create the Tangy Tomato Sauce
Increase the heat to high and add the 1.5 lb roma tomatoes cut into wedges. Cook for 3-4 minutes until they begin to soften and release their juices. Add the 3 tbsp soy sauce, 3 tbsp rice vinegar, 1.5 tbsp oyster sauce, and 1.5 tbsp brown sugar. Stir well to combine all the ingredients.
Let the sauce simmer for 2-3 minutes until it thickens slightly and the tomatoes break down into a chunky consistency. You want to preserve some texture - this isn't soup. Taste and adjust seasoning - you might want to add a pinch more salt or a splash more vinegar for brightness. The sauce should be tangy, slightly sweet, and perfectly balanced.
Finish and Serve with Crunchy Toppings
Return the beef to the wok and stir everything together for 1-2 minutes until the beef is fully cooked through and coated in the sauce. The internal temperature should reach 145°F for medium doneness. Taste and adjust seasoning one final time if needed.
Remove from heat and stir in 1 tbsp sesame oil and 1 tbsp sesame seeds. Garnish with the 3 whole green onions sliced thinly. Serve immediately over steamed rice or noodles while everything is hot. The beef should be tender yet slightly chewy, the tomatoes bright and juicy, and the sauce perfectly balanced with that tangy kick.
Pro Tips For Making Beef And Tomato Stir Fry
- SLICE THE STEAK AGAINST THE GRAIN: I learned this the hard way—thinly slicing flank steak with the grain makes it chewy, even when cooked perfectly. Cut across the grain into ¼-inch strips, then freeze them for 20 minutes before cooking. This keeps them from curling up like little question marks in your stir-fry.
- CHAR THE ONIONS FIRST: Skip the slow cook—get those red onions caramelized in batches before adding everything else. High heat for 3-4 minutes until they’re golden and slightly crispy. This builds depth without turning the whole dish into onion soup.
- DON’T OVERSTUFF THE PAN: Crowding the wok or skillet steams the beef instead of searing it. Cook in two batches if needed—start with the onions and garlic, then pull them out to make space. The second batch will thank you with better browning.
- SAVE THE TOMATO JUICE: After adding Roma tomatoes, let them soften for 2 minutes before stirring. Then, tilt the pan and scrape up all that concentrated tomato liquid from the bottom—it’s packed with flavor. Don’t waste it.
Dietary considerations for this beef and tomato stir fry
Gluten-Free Adaptation
Replace the soy sauce with 3 tbsp gluten-free tamari—brands like San-J Tamari or Edamame Tamari work perfectly. The oyster sauce can be tricky, so opt for a gluten-free version like Lee Kum Kee Gluten-Free Oyster Sauce. These swaps maintain the umami depth while keeping the dish safe for gluten-sensitive diners. 💛
Low-Carb Options
Swap the rice base for cauliflower rice or shirataki noodles to cut carbs dramatically. I like Lightlife Shirataki Rice Noodles because they hold up well to stir-fry heat. For extra flavor, toss the noodles in 1 tsp sesame oil before adding them to the wok. The beef and tomato stir fry remains satisfying while fitting low-carb diets.
Dairy-Free Considerations
This recipe is naturally dairy-free, but always double-check your oyster sauce label—some brands contain hidden dairy. If you're using a vegetarian oyster sauce alternative (like Annie Chun's Vegetarian Oyster Sauce), verify for dairy traces. The sesame oil and soy-based ingredients remain completely safe for lactose-intolerant eaters.
Protein Swaps
For a vegetarian version, replace the beef with extra-firm tofu pressed for 30 minutes and cubed. Toss the tofu in 1 tbsp cornstarch and 1 tbsp soy sauce before stir-frying. For seafood lovers, shrimp or scallops cook in just 2 minutes—simply add them with the tomatoes and remove when they turn opaque.
Allergen-Friendly Tips
If nut allergies are a concern, avoid sesame oil substitutions containing peanuts or tree nuts. For egg-free needs, this recipe is already safe—no binding agents are required. Always check your cornstarch label, as some brands process in facilities with egg products. I recommend Bob's Red Mill Cornstarch for allergen-free cooking.
Nutrition facts
Frequently asked questions
Can I use ground beef instead of flank steak?
Ground beef works but won't give you that signature tender-crisp texture. For best results, stick with flank steak sliced thinly against the grain. If you must use ground beef, try 80/20 lean-to-fat ratio and cook it separately until browned before adding to the stir-fry. The fat content helps mimic the beefy flavor, but the texture will be softer.
How do I prevent the beef from getting tough?
Three keys: thin slicing, cornstarch marinade, and high heat. Slice against the grain for tenderness, marinate with cornstarch for 15-20 minutes, and use a wok or large skillet over medium-high heat. Cook in batches if needed to avoid overcrowding. The beef should be 80% cooked before adding to the sauce.
Can I make this stir fry ahead of time?
Yes, but with limits. Prep the beef and sauce separately up to 2 days ahead. Store the cornstarch-marinated beef in the fridge and the sauce in a jar. When ready to cook, finish the beef in 1-2 minutes over high heat—it reheats best when fresh from the wok. The sauce can be reheated gently on the stove, but the tomatoes will soften further.
What's the best way to reheat leftovers?
Reheat in a wok or skillet over medium heat with a splash of water to restore moisture. Stir constantly for 3-4 minutes until warmed through. Avoid microwaving—it makes the beef rubbery. For extra flavor, add a dash of soy sauce or a pat of butter while reheating. Store leftovers for up to 3 days in an airtight container.
Can I use canned tomatoes instead of fresh?
Drain and rinse 1 (14.5 oz) can diced tomatoes before using. You may need to reduce the rice vinegar slightly (2 tbsp) since canned tomatoes are less acidic. For extra flavor, add ½ tsp sugar to balance the canned taste. The texture will be slightly softer, but it works perfectly for busy weeknights.
