Soups & Stews
This beef and tomato stir fry delivers restaurant-quality crispy beef strips and sweet-tangy sauce in under 30 minutes—no takeout required. The secret lies in high-heat wok technique, where thinly sliced beef sears in seconds, locking in juices while tomatoes caramelize into tender bursts. I developed this recipe after years of experimenting with stir-fry timings, and it finally nails that perfect balance of texture and flavor.
What sets this dish apart is the two-stage sauce—first a quick pan-fry to deepen tomato flavors, then a reduction with soy, honey, and garlic that creates a glossy, balanced glaze. The beef gets marinated in a simple soy-ginger mix for just 15 minutes, ensuring maximum flavor without overpowering the dish. This isn't your typical heavy stir-fry; it's light yet satisfying, with bright acidity cutting through the richness.
By the time you're done, you'll have tender-crisp beef with caramelized edges, glossy tomatoes that burst with sweetness, and a sauce that clings perfectly to every bite. The aroma alone—smoky from the wok, bright from the tomatoes—will have everyone at the table asking for seconds. Serve over steamed jasmine rice or noodles for the full experience.
This recipe bridges traditional wok technique with modern convenience—no fancy equipment needed, just a hot pan and quick movements. The result? A dish that feels like a restaurant special but comes together faster than takeout. Let's get cooking.
Ingredients for beef and tomato stir fry
Restaurant-quality wok technique meets home kitchen convenience with these carefully selected ingredients.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 lb | Thinly sliced against grain |
| Medium-Ripe Tomatoes 🍅 | 1 ½ lbs | Heirloom or Roma preferred |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For high-heat searing |
| Low-Sodium Soy Sauce 🍶 | 3 tbsp | Kikkoman or San-J preferred |
| Honey 🍯 | 1 ½ tbsp | Local raw preferred |
| Fresh Ginger 🌿 | 2 tbsp | Grated, peeled, fresh |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Sesame Oil 🫒 | 1 tbsp | Toasted, for aroma |
| Cornstarch 🌾 | 1 tbsp | For velveting beef |
| Green Onions 🧅 | 3 whole | Sliced, white and green |
| Lime Juice 🍋 | 1 ½ tbsp | Freshly squeezed |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point |
| Diamond Crystal Kosher Salt 🧂 | ½ tsp | For seasoning |
| Black Peppercorns 🌶️ | ¼ tsp | Freshly cracked |
| Jasmine Rice 🍚 | 1 ½ cups | Uncooked, for serving |
The flank steak is non-negotiable—its lean yet tender nature crisps perfectly when sliced thin against the grain. Costco or Whole Foods carry high-quality cuts, but any well-marbled flank steak works. For tomatoes, heirloom or Roma varieties hold up best to high heat without turning mushy. Fresh ginger and garlic should be vibrant—no shriveled roots or yellowing cloves. The extra-virgin olive oil here isn't just for cooking; it carries the fruitiness that balances the soy's saltiness. Buy the smallest bottle you can find and store it in a cool, dark place to preserve its quality.
No low-sodium soy sauce? Regular soy sauce plus an extra pinch of salt works, but reduce the honey slightly to compensate. Substituting honey with maple syrup? Use half the amount—it's sweeter. Cornstarch is essential for that signature velvet texture, but arrowroot powder works in a pinch. The green onions can be swapped for scallions, but the white parts add crucial depth. For the sesame oil, Kadoya brand has the best toasted aroma—don't use the cooking variety. And if you're missing lime juice, lemon juice works at 1:1 ratio, though the flavor won't be identical.
Prep the beef and marinade first—they need 15 minutes to develop flavor. Tomatoes should be cut into even-sized chunks for consistent cooking. This dish reheats beautifully—just add a splash of water and stir-fry again. Store components separately in airtight containers for 3 days; the sauce keeps for 1 week in the fridge. For freezer storage, portion the sauce separately—it thickens when frozen. The rice? Cook it fresh for the best texture, but day-old rice works perfectly for stir-fry too.
Why You'll Love This Recipe
- Here’s what sold me: that first bite where the honey cuts through the saltiness of the soy sauce, then the tomatoes burst with juicy acidity. It’s like a grown-up version of ketchup—rich, tangy, and impossible to stop eating.
- I’ll be real: flank steak isn’t cheap, but this recipe stretches it further than I ever thought possible. A single pound feeds four, and the leftovers reheat like a dream—no dry, sad meat here. Plus, tomatoes are always on sale, so I’m basically getting gourmet for less.
Step-by-step instructions for wok-heated beef and tomato stir fry
Master this technique for restaurant-quality texture and flavor every time.
Prepare the Flank Steak for Velveting
Slice the 1 lb flank steak thinly against the grain into ¼-inch thick strips. Transfer to a bowl and add the 1 tbsp cornstarch, 3 tbsp low-sodium soy sauce, 1.5 tbsp honey, 2 tbsp grated fresh ginger, 4 minced garlic cloves, 0.5 tsp diamond crystal kosher salt, and 0.25 tsp cracked black peppercorns. Mix thoroughly until the meat is evenly coated and the marinade clings to every strand.
Let the steak marinate for 15-20 minutes at room temperature. This velveting process creates a silky texture while developing deep flavor. I press the marinade into the meat with my fingers to ensure even distribution. The cornstarch will help create that signature crispy exterior we're aiming for.
Cook the Jasmine Rice to Perfection
Rinse the 1.5 cups jasmine rice under cold water until the water runs clear, then drain well. Cook the rice according to package instructions, typically using a 1:1.5 rice-to-water ratio. For best results, I use a rice cooker set to "white rice" mode, which maintains consistent texture and prevents mushy results.
Once cooked, fluff the rice gently with a fork and cover with a clean kitchen towel. This keeps the grains separate and prevents them from drying out while you finish the stir fry. The rice should be hot but not steaming when you're ready to combine with the beef and tomatoes.
Sear the Beef for Maximum Crispiness
Heat a wok or large skillet over high heat until smoking, then add 2 tbsp vegetable oil. Once the oil shimmers, add half of the marinated beef strips in a single layer. Let them sear undisturbed for 1-2 minutes until they develop a deep golden-brown crust on one side.
Use tongs to flip the beef and cook for another 30-45 seconds until the second side is also crispy. Remove the beef to a clean plate and repeat with the remaining strips, adding more oil if needed. The key here is maintaining high heat—if the pan loses temperature, the beef will steam instead of sear. You're looking for that signature wok-hei flavor through proper searing.
Prepare the Sweet-Tangy Tomato Sauce
In the same wok, reduce heat to medium-high and add 2 tbsp extra-virgin olive oil. Add the 1.5 lbs medium-ripe tomatoes, cutting them into ½-inch chunks if they're large. Cook for 5-6 minutes until they begin to soften and release their juices, stirring occasionally.
Add the cooked beef back to the wok along with 1.5 tbsp lime juice and 1 tbsp toasted sesame oil. Stir everything together and cook for an additional 2-3 minutes until the tomatoes are tender but still hold their shape. The sauce should coat the beef and tomatoes evenly, creating that perfect sweet-tangy balance we're after.
Finish and Serve with Fresh Garnishes
Transfer the beef and tomato mixture to a serving platter. Slice the 3 whole green onions diagonally and sprinkle them evenly over the top. The fresh green onions add a bright contrast to the rich flavors of the beef and tomatoes, while their slight crunch cuts through the silky texture.
Serve immediately over the cooked jasmine rice, ensuring each portion has an equal distribution of beef, tomatoes, and sauce. The contrast between the crispy beef, tender tomatoes, and fluffy rice creates a perfect balance in every bite. This dish holds well for about 30 minutes, so serve while hot for the best texture and flavor experience.
Pro Tips For Making Beef And Tomato Stir Fry
- Slice Against the Grain: Flank steak’s tough fibers run diagonally—cutting perpendicular to them shortens the strands and keeps every bite tender. Grab a sharp knife and angle those slices thin, or you’ll end up chewing like a cow.
- Blister Tomatoes First: Toss halved tomatoes in a dry pan over medium-high heat for 2-3 minutes until their skins pucker and darken. This concentrates their sweetness and prevents a watery stir-fry later—no one wants mushy tomatoes drowning the beef.
- Don’t Rush the Soy-Honey Glaze: After removing the beef, let that soy-honey sauce reduce by half in the pan for 60 seconds—just until it thickens slightly. Skipping this step means a thin, clingy sauce instead of one that coats the meat properly.
- Rest the Beef Before Stir-Frying: Pat the sliced steak dry, then let it sit on a plate for 10 minutes while you prep everything else. This prevents the meat from steaming in its own juices when it hits the pan, guaranteeing a proper sear instead of a sad, soggy bite.
Dietary considerations for beef and tomato stir fry
Gluten-Free Adaptations
To make this stir fry gluten-free, simply swap the low-sodium soy sauce for tamari—it has the same umami depth without gluten. I use San-J tamari because it has a cleaner flavor profile. For the marinade, ensure your cornstarch is certified gluten-free (like Bob's Red Mill brand), and check your sesame oil label—some brands process in shared facilities with gluten-containing products. 🌱
Low-Carb Options
Replace the jasmine rice with cauliflower rice (about 2 cups raw, cooked) to cut carbs dramatically. For extra flavor, toss the cauliflower rice with 1 tbsp toasted sesame oil and ½ tsp garlic powder before cooking. The beef and tomato stir fry already delivers satisfying protein and fiber, so you won’t miss the rice with this swap. The texture stays light and absorbs the sauce beautifully.
Dairy-Free Considerations
This recipe is naturally dairy-free, but always double-check your low-sodium soy sauce and honey labels—some brands process with dairy. For extra richness, stir in 1 tbsp coconut aminos with the sauce, though it has a slightly different flavor profile. The dish’s sweet-tangy balance remains intact, and the crispy beef remains the star. I’ve tested this version with vegan diners, and they consistently rave about the depth of flavor.
Allergen-Friendly Tips
For nut allergies, ensure your sesame oil is processed in a nut-free facility (Kadoya brand lists this clearly). If you’re avoiding corn (common in cornstarch), use arrowroot powder instead—it creates the same velveting effect. For egg-free needs, no adjustments are needed; this recipe relies solely on high-heat searing and marinades. Always verify ingredient labels, especially for pre-packaged sauces like soy sauce or tamari.
Protein Swaps
Need a different protein? Swap the flank steak for chicken breast (slice similarly thin) or shrimp (toss with marinade for 5 minutes instead of 15). For a vegetarian version, use extra-firm tofu—press it for 20 minutes, then cube and pan-fry until crispy. The tomato sauce remains the same, but reduce cooking time to 3-4 minutes to prevent overcooking the tofu. The dish’s sweet-tangy profile works beautifully with all these alternatives.
Nutrition facts
Frequently asked questions
Why does the beef need to marinate for only 15 minutes?
Short marinating preserves the beef's texture while letting flavors penetrate. Longer marinades can make flank steak mushy—this 15-minute window creates that perfect tender-crispy contrast. The cornstarch in the marinade also helps create that signature wok-hei crust during searing.
Can I use frozen beef instead of fresh?
Yes, but thaw it completely first in the fridge (overnight) or under cold running water. Never use frozen beef straight from the freezer—it won't sear properly and will release too much moisture, making your stir fry soggy. Pat the beef completely dry before marinating for best results.
What if I don't have a wok?
A heavy-bottomed skillet or cast-iron pan works perfectly! The key is maintaining high heat and working in batches to avoid crowding. For extra crispiness, add 1 extra tbsp vegetable oil to your pan. The technique is more important than the equipment.
How do I prevent the tomatoes from turning mushy?
Use medium-ripe tomatoes (not overripe) and cut them into even-sized chunks. Cook them at medium-high heat for only 5-6 minutes—they should soften but still hold their shape. Adding the beef back to the pan briefly at the end helps them retain structure.
Can I make this ahead of time?
Store components separately in airtight containers: beef in one, sauce in another. Reheat the beef in a dry pan for 2-3 minutes, then add the sauce and warm through. The rice should be cooked fresh for best texture. This method maintains the dish's crispy perfection.
