Mains / Recipes

Chinese beef and tomato stir fry recipe

Updated 23rd February 2020

This Chinese beef and tomato stir-fry is something I grew up eating when I was a kid and is a very popular Cantonese dish. It is very warming and the ingredients are quite basic that you can probably grab everything from a standard supermarket. I’ve modified the family’s recipe, which has traditionally used tomato ketchup as the base for the sauce instead of passata.

Chinese beef and tomato stir fry

Servings 4


  • 360 g uncooked rice thai jasmine and/or mixed grain rice
  • Cooking oil
  • 400 g-500g Beef flank steak, sometimes marketed as frying steak
  • 3 large size chicken eggs beaten together
  • 2 inches ginger grated
  • 1 large onion cut into wedges
  • 5-6 cloves of garlic chopped
  • 2 tsp Shaoxing rice wine
  • 3 tsp rice vinegar
  • 1/4 cup 60ml chicken stock
  • 1 can 500g of pasatta (you can use a can of chopped tomatoes instead and leave out the fresh tomatoes)
  • 6 large size tomatoes cut into wedges or a 330g halved cherry tomatoes (you can also use a mixture of the two)
  • 4 tsp sugar
  • 2 tsp corn starch
  • chopped coriander about a dozen prigs (optional)

For Marinade

  • 1 tsp sesame oil
  • 2 tsp oyster sauce can omit
  • 2 tsp Shaoxing rice wine or sherry
  • 2 tsp cornstarch
  • 1 tsp light soy sauce
  • 1 tsp dark soy sauce
  • 1 tsp ground white pepper
  • 1/4 tsp salt


  • Cut the flank steak into thin slices across the grain. Transfer to a small mixing bowl and add the marinade. Mix well, cover and put into the fridge for at least 30 minutes, preferably overnight. If you are rushing, you can skip marinating the beef for any length of time.
  • When you are ready to cook, make the rice according to the instructions on the pack.
  • Set pan or wok on high heat. Add 3 tbsp of cooking oil and cook the eggs, adding a pinch of salt (1/4 tsp) while cooking. Remove and set aside.
  • Heat the wok with 2 tbsp oil and add the beef. Cook on high for 3 minutes, remove and set aside whilst it's still a bit pink.
  • Heat the wok with 2 tbsp oil and add the garlic and ginger and fry for a minute.
  • Add the Shaoxing rice wine and rice vinegar.
  • Add the onion and fry for a minute.
  • Add the chicken stock, tomatoes pasatta and sugar. Bring to a boil and cook until tomatoes soften.
  • Mix the corn starch with 3 tsp water, then add to thicken the sauce if required.
  • Return the beef and eggs to the wok and add coriander if using.
  • Cook for a further 2-3 minutes, and serve with rice (I used mixed rice, hence the purple colour).
  • Garnish with coriander if using.


You can make a quick simpler version of this dish by omitting the garlic and ginger. Simply fry the beef in the marinade, add the tomatoes, add some ketchup and serve with a fried egg on top.
Making this veggie? Use vegetarian oyster sauce or omit it in the marinade and use tofu instead. Use vegetable stock instead of chicken stock. Vegans can leave out the egg.


  • Ellie Dickinson
    24th January 2017 at 1:12 pm

    This looks so yummy! x

    • Elsa Eats
      26th January 2017 at 9:56 am

      It really is, and simple enough to make too!

  • KarenAnita
    24th January 2017 at 8:58 pm

    Looks gorgeous – and definitely something that I don’t eat much of, so one to add to the mid-week menu for sure!

    • Elsa Eats
      26th January 2017 at 9:57 am

      You’d be surprised just how easy and warming this dish is ๐Ÿ™‚

  • Laura Heitzman
    24th January 2017 at 9:26 pm

    This looks so so gorj! I don’t eat meat anymore but I’d love to try it with tofu of quorn! xx

    • Elsa Eats
      26th January 2017 at 9:57 am

      Thanks! Let me know how you get on with tofu or quorn!

  • Food & Baker
    13th February 2017 at 5:23 pm

    This looks and sounds so good! Will defo have to give it a go!

    Jessica & James |

    • Elsa Eats
      13th February 2017 at 8:47 pm

      Thanks! Let me know what you think!


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.