Soups & Stews
This beef and tomato stir-fry delivers restaurant-quality umami crunch in under 30 minutes—no takeout required. The secret lies in high-heat searing of beef strips followed by a silky tomato sauce that balances sweetness and acidity.
I perfected this technique after years of testing, ensuring every bite has that signature wok-hei (breath of the wok) aroma that makes stir-fry unforgettable.
The magic happens with three key steps: first, searing the beef until caramelized for deep flavor; second, building a rich tomato base with garlic, ginger, and a touch of sugar; and third, finishing with quick-cooked vegetables that stay crisp-tender.
This method transforms simple ingredients into a dish that's bold, satisfying, and packed with texture—crispy beef, silky sauce, and vibrant vegetables in every bite.
What makes this recipe stand out is its versatility—serve it over steamed rice for a complete meal or as a vibrant side dish. The sauce clings perfectly to the beef, creating a harmonious blend of sweet, savory, and slightly tangy flavors.
With just 10 ingredients and one pan, you'll have dinner ready faster than delivery.
The result is a dish that's easy to master but feels like a gourmet creation. Whether you're cooking for weeknight dinners or weekend gatherings, this stir-fry delivers consistent, flavorful results. Let's get started—your taste buds will thank you.
Ingredients for beef and tomato stir fry
Ten ingredients deliver restaurant-quality wok-hei aroma and silky tomato sauce in 30 minutes.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 lb | Thinly sliced against grain |
| Yellow Onion 🧅 | 1 whole | Thinly sliced, outer layers removed |
| Carrots 🥕 | 2 medium | Julienned into matchsticks |
| Garlic Cloves 🧄 | 4 cloves | Minced, vibrant color |
| Fresh Ginger 🌿 | 1 inch | Peeled, finely grated |
| Canned Crushed Tomatoes 🍅 | 1 can | San Marzano preferred, 14 oz |
| Soy Sauce 🥢 | ½ cup | Low-sodium preferred |
| Sesame Oil 🫒 | 1 tbsp | Toasted, for aroma |
| Brown Sugar 🍚 | 1 tbsp | Lightly packed |
| Cornstarch 🌾 | 1 tbsp | For sauce thickening |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point |
| Salt 🧂 | 1 tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly cracked |
The flank steak is non-negotiable here—its lean yet tender texture caramelizes beautifully under high heat. Ask your butcher to slice it thinly against the grain (about 1/4-inch thick) for maximum tenderness. If pre-sliced isn't available, Costco's pre-sliced flank steak works perfectly. For the tomatoes, San Marzano cans from Trader Joe's deliver the sweetest, most consistent flavor. The ginger and garlic should be vibrant—bright yellow ginger and firm, unspotted garlic indicate freshness. Store-bought pre-minced garlic lacks punch, so invest 30 seconds to mince it fresh.
No San Marzano tomatoes? Any quality canned crushed tomatoes will work—just taste and adjust sugar/salt to balance. Substituting soy sauce? Coconut aminos at 1:1 ratio gives a cleaner flavor. The sesame oil is purely for aroma—add it last to preserve its delicate nutty notes. For extra umami, 1 tsp fish sauce (if vegetarian, use 1 tsp soy sauce) boosts depth. The brown sugar isn't just sweetness—it helps caramelize the beef during searing. If you've got muscovado sugar, its molasses notes add complexity. The cornstarch is optional but ensures that silky sauce consistency that clings perfectly to the beef.
Prep the vegetables first—they cook fastest. Store carrots in airtight containers for up to 2 weeks or freeze julienned pieces for 6 months. Fresh ginger keeps 3 weeks in the fridge wrapped in a damp towel. The cooked stir-fry reheats beautifully—5 minutes in a wok or skillet restores that wok-hei aroma. For meal prep, portion into glass containers with a thin layer of oil on top to prevent drying. Keeps 4 days refrigerated or 3 months frozen. The sauce thickens as it cools, so add 1 tsp water when reheating if needed.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe when I’m too tired to scrub pots. Sear the flank steak, toss in the onions and carrots, and let the garlic and ginger work their flavor spell—all in one pan. The tomatoes caramelize right along with the beef, so you’re left with minimal cleanup and maximum satisfaction.
- Umami Bomb: That first bite? The tender flank steak with its crisp edges, the sweet-tart tomatoes, and the deep, warm punch of fresh ginger—it’s the kind of combo that makes you pause mid-bite. Honestly, I’ve tried store-bought sauces, but nothing beats the simplicity of a splash of soy, a drizzle of honey, and a squeeze of lime over this.
- Meal Prep MVP: Between us, this is my go-to for lunches all week. Cook a big batch, and the flavors only get better as the beef gets more tender. Pack it in containers with rice, and you’ve got a lunch that feels fancy but costs next to nothing. (Yes, even on a Tuesday night.)
- Budget-Friendly Powerhouse: Flank steak stretches further than you’d think, and the veggies—onion, carrots, garlic—are pantry staples. I’ll be real: this feeds four for under $15, and the leftovers reheat like a dream. It’s the kind of dish that makes you feel like you’re eating well without breaking the bank.
Step-by-step instructions for wok-fired beef and tomato stir fry
Master this technique and you'll achieve perfect texture contrast—crisp-tender beef, silky tomato sauce, and vibrant vegetables.
Prep the Flank Steak for Maximum Tenderness
Slice the 1 lb flank steak thinly against the grain using a sharp chef's knife. You should end up with approximately 12-16 slices, each about ¼-inch thick. The key here is to keep the slices uniform in thickness—this ensures even cooking throughout.
Season both sides generously with the 1 tsp salt and 0.5 tsp black pepper. I like to press the seasoning into the meat lightly with my fingers so it adheres well. Let the seasoned steak sit at room temperature for 15-20 minutes before cooking. This resting period allows the meat to develop a better sear and cook more evenly.
Build the Flavor Base with Aromatics
Heat the 2 tbsp vegetable oil in a wok or large skillet over medium-high heat until shimmering but not smoking. Add the 1 whole yellow onion and 2 medium carrots (previously julienned) and stir-fry for 3-4 minutes until the onions become translucent and the carrots begin to soften slightly.
Add the 4 cloves minced garlic and 1 inch finely grated fresh ginger, stirring constantly for 30 seconds until fragrant. Here's where it gets important—don't let the garlic burn. It should smell sweet and pungent, not bitter. Remove the aromatics to a small bowl and set aside temporarily. The wok should still have some oil remaining—this is your cooking medium for the beef.
Sear the Beef to Perfection
Working in batches if needed, add the seasoned flank steak slices to the hot wok. Cook undisturbed for 1-2 minutes per side until the beef develops a beautiful brown crust. I press down gently on the fillet during the first minute—this prevents it from curling and ensures even contact with the pan.
Transfer the cooked beef to a clean plate and set aside. The beef should be cooked to medium-rare at this stage—it will finish cooking when the sauce is added. If you prefer well-done beef, you can cook it longer here, but I recommend keeping it rare for the best texture.
Create the Silky Tomato Sauce
Return the wok to medium heat and add the 1 can crushed tomatoes. Stir in the 0.5 cup soy sauce and 1 tbsp brown sugar, allowing the mixture to simmer for 3-4 minutes until slightly thickened. This is where the umami flavors develop and meld together.
In a small bowl, whisk together the 1 tbsp cornstarch with 2 tablespoons of water to create a slurry. Slowly pour this into the simmering tomato mixture, stirring constantly for 1-2 minutes until the sauce thickens to a glossy, coating consistency. The sauce should be smooth with no lumps—if you see any, strain it through a fine-mesh sieve.
Combine and Finish with Sesame Oil
Return the beef and reserved aromatics to the wok, tossing everything together gently to coat with the sauce. Cook for an additional 1-2 minutes just to heat through and allow the flavors to meld. The beef should be cooked to your desired doneness—it should be tender but still slightly resistant to a fork.
Remove from heat and stir in the 1 tbsp sesame oil. This final step adds a beautiful aroma and subtle nutty flavor that complements all the other components. Taste and adjust seasoning if needed—you might want to add a pinch more salt or a splash of water to achieve your preferred consistency.
Pro Tips For Making Beef And Tomato Stir Fry
- Slice Steak Against Grain: Flank steak’s fibers run long—cutting perpendicular to them shortens the strands so every bite is tender, not chewy. Use a sharp knife and don’t rush; I’ve seen people hack through it unevenly, and the result? A mouthful of rubbery resistance. Aim for ¼-inch slices, then stack them before adding to the pan so they don’t scatter like nervous fish.
- Blanch Carrots First: Toss diced carrots in boiling water for 30 seconds, then shock in ice water. This softens them just enough to cook through in the stir-fry without turning to mush—no more sad, limp orange bits at the bottom of the pan. Works especially well with larger chunks; smaller pieces can go straight in, but this guarantees even cooking.
- Salt Onions Before Cooking: Toss sliced onions with a pinch of salt and let them sit for 5 minutes before hitting the pan. The salt draws out moisture, so they caramelize faster and deeper, adding sweetness that cuts through the acidity of tomatoes. I learned this the hard way—dry, pale onions just don’t hold a candle to the golden, jammy ones you get this way.
- Use Two Stages for Heat: Start with the pan screaming hot to sear the beef, then drop the heat to medium-low once everything’s in. High heat all the way through turns tomatoes to mush and burns the garlic before the steak’s done. Medium-low finishes the dish without sacrificing flavor—your stir-fry will taste like it came from a wok, not a neglected burner.
Dietary considerations for this beef and tomato stir fry
Gluten-Free Adaptations
Swap the soy sauce for tamari or coconut aminos—both are naturally gluten-free while delivering the same umami punch. Use ½ cup of either in place of the soy sauce. I recommend San-J Tamari from Trader Joe's for its rich flavor and consistency.
The cornstarch thickening agent can also be replaced with arrowroot powder at the same measurement (1 tbsp) for a gluten-free alternative. 🌱
Low-Carb Options
For a lower-carb version, reduce the carrots to 1 medium carrot or omit them entirely. The onions provide enough natural sweetness without needing extra carbs. If you want to keep the dish hearty, add ½ cup sliced mushrooms—they add umami and bulk without many carbs.
The beef remains the star, so focus on maximizing its flavor with extra garlic and ginger.
Vegetarian Swap
Replace the beef with extra-firm tofu or mushrooms for a meatless version. Press and slice 1 lb firm tofu into strips, then marinate in 2 tbsp soy sauce and 1 tbsp cornstarch for 15 minutes before cooking.
For mushrooms, use 8 oz shiitake or portobello slices—they hold up well to stir-frying. The tomato sauce remains the same, ensuring the dish stays flavorful and satisfying.
Allergen Awareness
Check your sesame oil for allergen warnings—some brands process in facilities that handle nuts or soy. If sesame is a concern, finish with ½ tsp toasted sesame seeds instead for aroma. For a nut-free option, add 1 tsp toasted pumpkin seeds at the end.
Always verify ingredient labels, as cross-contamination can occur even in dedicated facilities. When in doubt, I opt for Kirkland Signature sesame oil for its clean label.
Dairy-Free Notes
This recipe is naturally dairy-free, but always double-check your soy sauce and brown sugar for hidden dairy additives. Some brands of brown sugar may contain milk powder as an anti-caking agent.
If concerned, use organic cane sugar instead. The dish remains rich and satisfying without any dairy components, making it perfect for lactose-intolerant diners.
Nutrition facts
Frequently asked questions
Why does my stir-fry sauce turn out watery?
The cornstarch slurry needs proper cooking time—simmer for 1-2 minutes after adding it to fully thicken. For extra insurance, use 1 tbsp cornstarch and reduce the water to 1 tbsp in the slurry. If the sauce still seems thin, remove from heat and let it sit 5 minutes—it'll thicken as it cools. Never add raw cornstarch directly to cold sauce!
Can I use ground beef instead of flank steak?
Ground beef works but loses the signature texture—it'll be more uniform and less tender. For best results, use 80/20 ground chuck and brown it thoroughly before adding to the sauce. The fat content helps create a richer flavor, but you'll miss that beautiful crust from flank steak slices. If you prefer ground beef, reduce soy sauce to 0.3 cup to avoid saltiness.
How do I prevent the beef from sticking?
Keep your pan smoking hot and avoid overcrowding. Cook in single layers and don't stir the beef until you're ready to flip. A 12-inch cast iron wok works best—it retains heat better than nonstick pans. If using nonstick, ensure it's properly preheated and add just 1 tbsp oil instead of 2. Pat beef slices completely dry before cooking!
What's the best way to reheat leftovers?
Reheat in a hot wok or skillet over medium-high heat for 3-4 minutes with 1 tsp water to restore moisture. Stir constantly to prevent drying. For microwave reheating, cover with a damp paper towel and heat in 30-second bursts, stirring between each. The sauce may thicken further—add 1 tsp water if needed. Never reheat in the fridge overnight!
Can I make this ahead of time?
Yes! Assemble everything except the sesame oil, then refrigerate for up to 3 days in an airtight container. Reheat as directed above. For freezing, cool completely, portion into glass containers, and freeze for up to 3 months. The sauce may separate slightly—just stir vigorously when reheating. Add fresh sesame oil when serving for maximum aroma!
