Go Back
+ servings
Sweet and Sour Tofu

Sweet and Sour Tofu

Sweet and Sour Tofu, crispy tofu in a sticky homemade sweet and sour sauce with pineapple and peppers. Just serve with rice for a very tasty vegan dinner.
Course Dinner
Cuisine Chinese
Prep Time 30 minutes
Cook Time 30 minutes
Servings 4
Calories 375kcal


  • 280 g (1 x 10 oz pack)) extra firm tofu
  • 1 tablespoon light soy sauce
  • 2 tablespoon cornflour (cornstarch)
  • 1 ½ tablespoon grapeseed oil divided
  • 1 medium brown onion cut into thick wedges
  • 3 cloves of garlic finely grated or put through a garlic press
  • 1 x 5cm piece (2 inches) of fresh root ginger finely grated
  • ¼ teaspoon dried red chilli flakes more if you want it hotter
  • 2 medium red bell peppers seeds and pith removed then cut into chunks
  • 1 x 227g can ( 1 x 8 oz can) of pineapple chunks in juice

For the sauce

  • 120 g (½ a cup) of tomato ketchup
  • 3 tablespoon malt vinegar
  • 4 level tbsp dark soft brown sugar
  • 1 tablespoon light soy sauce
  • 1 tablespoon sesame oil

For serving

  • Rice
  • Sesame seeds
  • Spring onions (scallions)


  • Drain the tofu - Dry the tofu with kitchen paper. Slice the tofu into 4 even slices. Line a baking tray with 2 layers of kitchen paper, place the tofu on the paper. Cover with another 2 layers of kitchen paper. Place a smaller baking tray over the covered tofu then place 4 cans of beans on top. Leave the tofu to drain for at least 15 minutes, 30 minutes if you have more time.
  • Cut the tofu into chunks of about 2 cm or 1 inch.
    Place the tofu into a large bowl. Add 1 tablespoon of light soy sauce and toss the tofu so that it absorbs the soy sauce.
    Then add 2 tablespoons of cornflour (cornstarch) to the tofu and toss gently until all the tofu is covered in the cornstarch.
  • Heat 1 tablespoon of oil in a wok. Start frying the tofu. Use tongs to turn the tofu so that it is crispy on all side. Transfer the crispy tofu to a plate and cover to keep warm.
    You may need to cook the tofu in two batches.
  • Add 180g or half a cup of ketchup to a bowl, stir in 3 tablespoons of malt vinegar, 1 tablespoon of sesame oil and 1 tablespoon of light soy sauce.
    Add 4 tablespoons of dark brown sugar to the bowl and stir until the sugar dissolves.
  • Add ½ a tablespoon of oil to the wok then add the onion and cook until translucent.
    Add the chopped bell peppers and cook for a further 2 or 3 minutes.
    Next, add the garlic, ginger and ¼ pinch of dried red chilli flakes.
  • Pour the sauce into the wok then add the canned pineapple and the juice.
    Stir well, bring the sauce to a fast simmer. It should be getting thick now.
    Add the tofu and toss it in the sauce until it is covered in sauce. Cook for a minute or two until the tofu is hot and the sauce is thick.
  • Serve immediately with boiled or steamed rice, some sesame seeds and some sliced green spring onion (scallions).


  • Tofu - extra firm tofu is best for this recipe. You should find it in all the big supermarkets. 
  • Draining the tofu - you will need to drain the tofu by pressing it. Slice the tofu into 4 even slices. Line a baking tray with two layers of kitchen paper. Place the tofu on the paper. Cover the tofu with another two layers of kitchen paper. Place a baking tray over the covered tofu. Place at least four cans of beans on top of the tray. Leave the tofu to drain for at least 30 minutes.
  • Canned Pineapple - I use canned pineapple chunks in juice not syrup for this recipe. You can use fresh pineapple if you wish. I prefer the canned pineapple as the juice is added to the sauce and adds some extra flavour to the sauce. 
  • Sugar -  Dark brown soft sugar is best for this it adds the sweetness to the sauce and gives the sauce a lovely rich flavour.
  • Swaps - If you don't like tofu or are allergic to soy you can swap the tofu for cauliflower. You might need to cook the cauliflower slightly before you fry it though.
  • Pro-Tip - To make sure your tofu stays crispy, keep it warm while you stir fry the veggies. If the tofu is in the sauce for too long it will start to get soggy.
  • Recipe inspiration - this recipe was inspired by and adapted from this recipe and this recipe
  • Nutritional information - is calculated using an online tool and is approximate. It does not include rice or garnishes
  • Weights and measurements - For US readers, I use Cuisipro measuring cups and spoons, and a Pyrex measuring jug for liquids. These are the industry standard. Cup/spoon volumes can differ from brand to brand, for accuracy, I recommend weighing all ingredients if possible.


Calories: 375kcal | Carbohydrates: 63.5g | Protein: 7.7g | Fat: 11.9g | Saturated Fat: 1.6g | Sodium: 447mg | Potassium: 384mg | Fiber: 2.7g | Sugar: 53.5g | Calcium: 169mg | Iron: 2mg