Go Back Email Link
+ servings

Chinese Sweet and Sour “Pork” (Vegan Recipe)

4.94 from 15 votes
A personal favourite of mine growing up was Sweet and Sour Pork that we’d order at Chinese restaurants during family gatherings and celebrations such as the Lunar New Year.
The pieces of pork (vegan soy chunks, in this case) are coated in a generous amount of cornstarch before being fried to a golden brown crisp.The sauce is a perfect balance of sweet and sour with a little tanginess from the vinegar and hints of fruitiness from the pineapple.
Prep Time 20 mins
Cook Time 25 mins
Total Time 45 mins
Course Main Course
Cuisine Asian, Chinese
Servings 4
Calories 328 kcal



  • 120 g dry soy chunks , dry soy meat, or curls--makes around 500g rehydrated (see notes for other alternatives to soy chunks)

“Pork” Marinade

Sweet and Sour Sauce

Coating for the “Pork” and Frying

For Stir-Fry

  • 1 medium onion sliced into small squares
  • 1 tsp minced ginger
  • 1 tsp minced garlic
  • 1 small red bell pepper seeded and sliced into small squares
  • 1 small green bell pepper seeded and sliced into small squares
  • 3/4 cup pineapple chunks in juice, syrup, or fresh around 120g (see notes)

To Serve

  • Steamed Rice


  • You can watch the video below to see how I made this sweet and sour pork recipe!


  • Rehydrate the pieces of soy chunks. You can do this my leaving it to soak in room temperature overnight.
  • If you’re pressed for time, you can leave it to soak in hot water for 20 to 25 minutes or until doubled in size.
  • Squeeze out the water from each piece of soy chunk then transfer into a large bowl.

“Pork” Marinade

  • Add the soy sauce and garlic into the soy chucks.
  • Mix well and leave to marinade for 10 minutes while you prepare the other ingredients.

Sweet and Sour Sauce

  • Mix all the ingredients for the sauce in a large bowl or measuring cup. Mix until the cornstarch is dissolved. Set aside.

Coating for the Pork and Frying

  • Heat a large pan or wok over high heat. Add enough neutral oil to submerge at least half of the soy chunks. Leave the oil to get very hot.
  • Meanwhile, prepare a large bowl. Add in 6 tbsp fo the cornstarch.
  • Add in the marinated soy chunks into the cornstarch. Mix each piece well into the cornstarch to coat. The pieces will be a solid white at the start because of the starch but the pieces will slowly absorb the starch so they’ll turn a bit brown.
  • When the pieces have absorbed some of the starch, you can add 1-2 tbsp more cornstarch to make sure they’re coated very well. The coating is really important to get really crisp pieces of “pork” after frying.
  • By this time, you can check your oil if it’s hot enough. There will be small bubbles and you can test the heat of the oil by placing a small piece of the “pork”. If it immediately bubbles when you place it, the oil is hot enough.
  • Carefully place the pieces of coated “pork” in the oil. Make sure the pan is not overcrowded. If you’re using a large pan, you can cook everything in one batch. If using a smaller pan, you can cook this in 2-3 batches.
  • Leave the “pork” to fry for 6 to 7 minutes or until golden brown throughout. You can move around and flip the pieces (if your oil doesn’t completely submerge the “pork”) to evenly crisp and cook each side until golden brown.
  • Once the pieces are golden brown, remove them from the oil and place in a strainer to drain out the excess oil.
  • You can also place them on a plate with some paper towels. Set aside. Do not cover to prevent these from sogging.
  • Turn off the heat and remove the oil. You can leave around 1-2 tbsp of the oil in the pan, for stir-frying.

To Store and Reuse Oil

  • You can strain out some of the starch pieces that are left in the oil and leave the oil to cool. I have this oil container with a strainer on top that I use to store my oil. Since these soy chunks are very neutral, I can still use this for another 1-2 times.


  • I used the same pan for frying so I simply heated it over high heat with 1-2 tbsp neutral oil.
  • Once hot, sauté the onion, garlic, and ginger for 1-2 minutes until the onions are cooked. Add in the bell pepper and cook for 2 minutes.
  • Add in the pineapple chunks and cook for 1 minutes.
  • Lower the heat to medium. Give the sauce a good mix again since the starch tends to sit at the bottom.
  • Over medium heat, pour in the sauce to the pan.
  • Mix well and then leave the sauce to boil for 2 to 3 minutes. Continuously mix until the sauce thickens.
  • Once the sauce has thickened, add in the fried “pork” pieces and immediately mix well in the sauce. You’ll want to do this very quickly so the pieces of “pork” can retain its crispness (though let’s be real: no sweet and sour “pork” dish is actually that crispy especially after it soaks in the sauce).
  • Turn off the heat then serve the sweet and sour pork immediately. Enjoy this while hot with some steamed rice.


Substitutes for the Soy Chunks

  • 1 lb (454g)frozen then thawed extra firm tofu

    • Before you freeze your tofu, slice them into 1” (2.5 cm) cubes. NO need to squeeze out the liquid from your tofu.
    • Place the tofu on a flat surface or container and make sure they’re spaced apart so they do not stick.
    • Freeze at least overnight then thaw the next day. When thawed completely at room temperature, carefully squeeze out the liquid from each piece of tofu.
  • 1 lb (454g) Seitan

    • If using seitan, you can slice them into 1” pieces or just break them apart into pieces before marinating and coating the in the starch.
  • Cauliflower Florets

    • Another option would be to use cauliflower florets that you can batter and coat before frying to a crisp and mixing in with the sauce.
    • You can check out my Crispy Cauliflower Recipe here and use the cauliflower base recipe and cook it in the Sweet and Sour Sauce from this recipe. 
  • 1 lb (454 g) Tempeh

    • Make sure your tempeh is fully thawed then slice them into 1” (2.5 cm) cubes. You can opt not to coat your tempeh in cornstarch and just pan-fry these directly.

Pineapple Chunks in Juice or Light Syrup and Adjusting the Sugar

  • Since I used pineapple chunks in juice, the pineapple juice from the pack is already slightly sweetened. If using chunks from syrup, it can be even sweeter so you can adjust the sugar accordingly and start with 3 tbsp. If you'd like it sweeter, you can always add more.
  • If you're using fresh pineapple, slice them into small 1" (2.5 cm) cubes then use pineapple juice of your choice.

Tomato Ketchup

  • Some ketchup brands have more or less sugar and also vary in acidity so you  can also adjust the sugar to suit to your preferred sweetness and acidity for the sauce.


Serving: 1serving | Calories: 328kcal | Carbohydrates: 52g | Protein: 16g | Fat: 6g | Saturated Fat: 1g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 1g | Sodium: 847mg | Potassium: 191mg | Fiber: 6g | Sugar: 26g | Vitamin A: 120IU | Vitamin C: 8mg | Calcium: 113mg | Iron: 4mg
DID YOU MAKE THIS RECIPE?Please leave a rating or comment and share a photo on Instagram, and tag me @thefoodietakesflight or use #thefoodietakesflight :)