When you need a quick dinner, this easy beef tomato stir-fry recipe comes together in just 30 minutes. It pairs tender steak with juicy tomatoes in a sweet, savory sauce. Every bite gives rich flavor and comforting textures.

Jump to:
This classic Hong Kong comfort food is a variation of my Chinese Tomato Egg Stir-fry, but upgraded with savory beef slices. Growing up, my mom made this meal at least once a month. This recipe stays true to her original version.
To ensure the beef stays ultra-tender, I use the professional Chinese restaurant technique of velveting. Tossing the meat with a touch of baking soda naturally softens the surface fibers. This prevents the beef from tightening up and losing its juices, keeping every slice moist during high-heat cooking.

Why My Recipe Works
- Flank steak: This lean cut absorbs the savory marinade deeply while remaining tender during rapid cooking.
- Perpendicular slicing: Cutting the meat directly against the natural grain shortens the tough muscle fibers for an effortless bite.
- Roma tomatoes: Choosing meaty Roma varieties provides a naturally sweet flavor profile and thickens the sauce without adding excess water.
Ingredients & Substitutes
Exact ingredient measurements are listed in the recipe card at the bottom of this page.
- Flank Steak: Acts as the lean and tender protein base. Sub: Sirloin steak or tri-tip steak.
- Fresh Roma Tomatoes: Create the sweet, tangy liquid sauce base. Sub: Vine tomatoes.
- Onion: Substitute with yellow onion.
- Fresh Ginger: Substitute with ¼ teaspoon ground ginger.
- Garlic Cloves: Substitute with jarred minced garlic.
- Ketchup: Thickens and sweetens the sauce. I prefer Heinz.
- Green Onion
- White Granulated Sugar: Balances the tomato acidity. Sub: Cane sugar.
- Vegetable Oil: Substitute with avocado oil or canola oil.
Beef Marinade
- Baking Soda: Tenderizes the beef fibers.
- Regular Soy Sauce: Salts and seasons the meat. Sub: Light or low-sodium soy sauce.
- Shaoxing Wine: Adds depth and acidity. Sub: Dry sherry.
- Cornstarch: Retains the meat juices during frying. Sub: Potato Starch.
- Garlic Powder
- Cold Water
Cornstarch Slurry
- Cornstarch: Thickens the simmering pan juices. Sub: Potato starch or tapioca starch.
- Cold Water: Hydrates the thickening starch. Sub: Chicken stock or beef stock.
Note: These ingredients are typically available at most Asian grocery stores, or you can check online.
Instructions
Below are step-by-step instructions on how to make Chinese beef tomato stir-fry:
- Slice the Beef: If time permits, freeze the flank steak for 45 minutes to harden the meat for easier slicing (optional). Slice the beef against the grain at 45-degree angle into ¼-inch thick pieces.
- Marinate the Beef: Place the sliced flank steak into a large bowl. Mix in the baking soda, regular soy sauce, Shaoxing wine, cornstarch, garlic powder, and cold water until the liquids are fully absorbed. Marinate at room temperature for 15 minutes.
- Mix the Slurry: Whisk the cornstarch and cold water together in a small bowl until smooth. Set aside.
- Sear the Beef: Heat vegetable oil in a large pan or wok over medium heat. Add the marinated beef, spread it into a single layer, and stir-fry until brown on the outside and slightly pink on the inside.
- Cook the Aromatics: Add the garlic, onion, ginger, and ketchup to the pan. Stir-fry for 1 minute until the onion softens.
- Thicken the Sauce: Pour in the cornstarch slurry and add the fresh ripe tomatoes. Stir gently and simmer uncovered for 2 minutes until the sauce thickens.
- Season and Garnish: Gently fold the white granulated sugar into the sauce to avoid breaking the tomatoes apart. Remove the pan from the heat. Garnish with chopped green onion. Serve immediately.
Expert Tips
- Use room temperature tomatoes because cold fruit lowers the pan temperature too quickly.
- Pat the meat dry with paper towels before marinating to ensure the seasonings stick.
- Bring marinated beef to room temperature for 10 minutes to guarantee an even sear.
- Whisk the cornstarch slurry right before adding to prevent the starch from settling.
- Adjust with extra ketchup at the very end if your tomatoes taste too tart.
Variations
- Gluten-free: Swap regular soy sauce for tamari, use a certified gluten-free ketchup, and replace the Shaoxing wine with dry sherry.
- Egg upgrade: Whisk 2 eggs and scramble them softly in the pan before frying the beef, folding them back into the finished tomato sauce right before serving.
Pairing Suggestions
Chinese tomato beef stir-fry pairs well with:
- Steamed jasmine rice: Soaks up the tomato gravy perfectly.
- Garlic bok choy: Adds a crisp, fresh contrast to the rich beef.
- Egg drop soup: Provides a mild, warm starter that balances the meal.
Storage & Reheating
- Fridge storage: Store the leftovers in an airtight container for up to 4 days.
- Freezer warning: Avoid freezing this dish because the thawed tomatoes turn completely mushy.
- Reheating: Warm in a skillet over medium heat for 5 minutes with a splash of water, or microwave on high for 2 minutes, stirring halfway through.
FAQ
You used watery round tomatoes or skipped the slurry. Use Roma tomatoes and simmer uncovered to activate the cornstarch.
Yes. Swap the flank steak for chicken breast slices and use the exact same velveting marinade to keep it tender.
Slice them into large wedges and fold them in gently at the end. Simmer for exactly 2 minutes.
📖 Recipe

30-min. Easy Chinese Beef Tomato Stir-fry
Ingredients
- 0.5 lb flank steak
- 4 medium roma tomatoes cut into quarters
- 1 small onion diced
- 2 green onions finely chopped for garnishing
- ½ tablespoon ginger thinly sliced
- 1 garlic clove minced
- ¼ cup ketchup
- 1 tablespoon white granulated sugar
- 1 tablespoon vegetable oil or any neutral oil
Beef Marinade:
- 2 teaspoon regular soy sauce or light soy sauce
- 1 tsp Shaoxing Cooking Wine or dry sherry
- 1.5 teaspoon cornstarch
- ¼ teaspoon baking soda
- ¼ teaspoon garlic powder
- 2 teaspoon water cold
Cornstarch Slurry:
- 1 tablespoon cornstarch
- 1 cup water cold
Instructions
- If time permits, freeze the flank steak for 45 minutes to harden the meat for easier slicing (optional). Slice the beef against the grain at 45-degree angle into ¼-inch thick pieces.
- Marinate the beef: Place the sliced flank steak into a large bowl. Mix in the baking soda, regular soy sauce, Shaoxing wine, cornstarch, garlic powder, and cold water until the liquids are fully absorbed. Marinate at room temperature for 15 minutes.
- Mix the Slurry: Whisk the cornstarch and cold water together in a small bowl until smooth. Set aside.
- Heat vegetable oil in a large pan or wok over medium heat. Add the marinated beef, spread it into a single layer, and stir-fry until brown on the outside and slightly pink on the inside.
- Add the garlic, onion, ginger, and ketchup to the pan. Stir-fry for 1 minute until the onion softens.
- Pour in the cornstarch slurry and add the fresh ripe tomatoes. Stir gently and simmer uncovered for 2 minutes until the sauce thickens.
- Gently fold the white granulated sugar into the sauce to avoid breaking the tomatoes apart. Remove the pan from the heat. Garnish with chopped green onion. Serve immediately.






Kay Atchley
This was really good! I didn't have fresh tomatoes, but I wanted to try this so I used canned stewed tomatoes (2 cans). It was still very good. I'll try it again soon with fresh.
Christie Lai
Thanks so much for making my recipe, Kay! So glad you enjoyed it.
Halina
Amazing
Christie Lai
Thanks so much for making my recipe, Halina! Glad you enjoyed it!
Orlando Delos Reyes
Very delicious menu.. 😋😋😋
Christie Lai
Thank you so much for the kind comment and positive rating!
Leanne
Such a winner, success first time, really was like restaurant quality, thanks Christie!
Christie Lai
Thank you so much for making it and for sharing your positive experience, Leanne! Glad you enjoyed it 🙂
Chloe
Can I use canned tomatoes in this recipe? Or do you think it's important to use fresh for the texture?
Christie Lai
For best texture, fresh ripe tomatoes work best. I also find that canned tomatoes are more tangier than fresh ones so it can alter the taste of the stir fry. Hope this helps!
HG Li
This recipe is spot on. I grew up eating this dish. The beef came out perfect. The flavors were terrific and my family loved it!
Christie Lai
Thanks so much for making my recipe and so happy it was spot on! Glad your whole family enjoyed it too. Have a wonderful day!
Sharon
Love this recipe. Better than the Chinese takeaway. I’ve made this many times now, everybody loves it.
christieathome
Thanks so much for making my recipe, Sharon! I appreciate you making it so many times 🙂
Tiffany
Really delicious and simple recipe. I cooked the onions for an extra five minutes to get them soft. And let the entire dish simmer for about 10 minutes to thicken the sauce. Also added a 1/2 tsp of salt at the end and it was perfect! Next time I’m going to add a scrambled egg. Yum!!!
christieathome
Thanks so much for making my recipe, Tiffany! So glad you liked it and yes it's soo good with some scrambled eggs 🙂
Gary
Absolutely loved it! I don't think I'll ever need to order Chinese again. I only order this for the veg and sauce. Might even try it with chicken next time. Thank you Christie for sharing this recipe
christieathome
Thanks so much for making my recipe, Gary! Glad you enjoyed it!
Robert
Excellent recipe! Thank you!
christieathome
Thanks so much for making my recipe! Glad you enjoyed it!
Heidi | The Frugal Girls
The sweet and savory elements of your sauce compliment the steak so perfectly. This is one dish that would make all of the men in my life very happy!!
Katherine | Love In My Oven
Flank steak is so great, isn't it?! This looks super flavorful, Christie! And tomato is always a hit with my family. We'd enjoy this!