This vegan sweet and sour stir fry is a take on a classic that is typically served at restaurants, or something you might make from a bottle. But this is a healthier version that uses a lot more whole food focused if you want it to be. This recipe also adds some cranberry into the mix to both add some color and texture, but also take advantage of the pectin that will help thicken up the sauce a bit more too. This recipe isn’t identical to the bright red sweet and sour sauce you get, as you can see by the photos, but the taste is nearly the same.

I am a fan of (almost) any kind of sauce on top of rice. There is something about the combination that speaks to me. So recipes like this are always a hit, and this one is particularly easy to make. You simply blend the sauce ingredients, and add them to vegetables that you water saute in a pan – stir, and serve. That’s it.

This recipe is really quick and easy to make on the stovetop. Here’s how.

Vegan Sweet and Sour Stir Fry
Ingredients
Sauce:
- 6 oz Pineapple juice Drained juice from ~14oz can of chunks. (or chunks if prefer)
- 1/2 cup Dates Pitted. Sub brown sugar.
- 1/2 cup Tomato Jam Sub tomato paste or ketchup (homemade or store bought)
- 1/4 cup Rice Vinegar Sub apple cider vinegar.
- 3 Tbsp Tamari Low sodium. Sub coconut aminos or soy sauce.
- 3 Tbsp Minced ginger
- 3 Tbsp Minced garlic
- 2 Tbsp Arrowroot powder
- 1 Tbsp Worcestershire sauce (vegan) Optional
- 1 tsp black pepper Ground.
- 1 tsp onion powder
- 1 tsp Red pepper flakes Optional, to taste.
Stir Fry:
- 1 can Pineapple chunks In juice, ~14oz can.
- 1 cup Green beans
- 1 cup Bell pepper
- 1 cup Mushrooms
- 1 cup Tomato Large chunks.
- 1 cup Cranberry Optional.
- 1/2 cup Chopped onion
Your choice:
- 2 cups Soy curls, tofu cubes, or more vegetables. Your choice. See notes.
Instructions
- Add all ingredients for the sauce to a blender and blend until smooth.
- Chop all vegetables for the stir fry into large chunks. Add a small amount of water to the bottom of a pan on the stovetop, and saute the green beans and onions for about 5 minutes or until starting to go tender. Add the remaining vegetables except for the tomatoes, and your choice of additions (such as soy curls), and saute for another few minutes.
- Add the sauce and bring to a simmer, and stir occasionally for about 10 minutes. In the final couple minutes of cooking, add the tomatoes and allow them to warm in the sauce.
- Serve over rice.
Notes
Adjustments, swaps, and alternatives
This is not a spicy recipe (unless you add a lot more cayenne or red pepper flakes), but you could make it spicy by adding some chopped jalapeno to the stir fry, or to the sauce if you wish. Alternatively you could add sriracha on top when serving if you don’t want to make the entire batch spicy.
You could use tomato paste instead of ketchup or tomato jam. Start with about 1/4 cup or so and blend to taste.
This recipe makes a LOT of sauce, so you can always cut back if you want to or keep adding vegetables until you’re happy with the ratio. I like a little extra sauce to have on the rice, but it is entirely up to your preference. You can also reserve a bit of the sauce to use at a later time (freeze it, etc).
See the recipe notes for adjustments to sodium. Note that if you use ketchup, it may contain a lot of sodium and sugar depending on the brand and type (so make sure you consult the labels if you’re using ketchup).

- Pad Thai Protein Salad recipe from The Plant-Based Cookbook + Book Review and Giveaway! - December 9, 2020
- Lemon ginger bowl sauce with miso recipe (Oil free, no added sodium) - November 30, 2020
- New vegan bacon at Whole Foods Market – 300 store roll-out - November 15, 2020
Celeste
Made this tonight after a long day at work. It tasted fantastic, was easy to make, and my husband loved it. I served it on cauliflower rice.
Jen @ PlantBasedRecipe
Awesome! So glad you liked it, and cauliflower rice is delicious – great idea for serving!
Tiffani Henry
Made this last night for the hubby who is always looking for the meat. He gave it a thumbs up. I subbed mushrooms for the meatyness. Shii-take, Baby Bellas, Trumpet, & oyster. Browned them well in a dry pan and added them at the end. I also used the veggie I had on hand – asparagus instead of green beans. It turned out awesome!! I also left out the tomato paste by accident, but it really didn’t’ need it. Iit was great without it but I may add it next time to see if it changes it much. I also had a fresh pineapple that was super ripe and yummy, so I just pureed some of it with water for the juice. If you do not like a lot of spice I would cut down on the red pepper flakes. This was a pretty spicy dish. Loved it and it will go on my rotation. I love that you can do whatever you want for veggies.
Jen @ PlantBasedRecipe.com
Those modifications sound *wonderful*! Asparagus – wonderful. And glad to hear it also works well without the tomato paste 🙂 So glad that you both liked it, thanks for letting us know!