Ah, sweet and sour, my old take-out friend. It is possible to get vegan sweet and sour tofu where I live, but the restaurant is just far enough away that they don’t deliver, and it’s quicker to make my own than it is to drive over there and pick up, anyway. Rather than spend time in a car, I’d prefer to be in my own home, cooking it up (and then immediately scarfing it down).

Servings: 4 servings

Prep Time: 15 mins

Cook Time: 30 mins

Total Time: 45 mins


  • large saute pan

INGREDIENTS US CustomaryMetric

  • 2 teaspoons vegetable oil, divided – See Notes section for oil-free tips.
  • 3 Tablespoons low-sodium tamari or soy sauce, divided
  • 3 Tablespoons rice vinegar or white wine vinegar, divided
  • 1 (14 ounce) package extra firm tofu, drained, pressed, and cubed
  • 1 small sweet onion, chopped
  • 1 red bell pepper, seeded and chopped
  • 1 green bell pepper, seeded and chopped
  • 1 cup canned diced pineapple, juice reserved
  • 1 Tablespoon tomato paste or ketchup – I had an open bottle of BBQ sauce in the fridge so I used that instead.
  • 2 Tablespoons maple syrup
  • 1 Tablespoon corn starch
  • 4 cups cooked rice of choice


  • Heat 1 teaspoon of oil in a large pan over medium-high heat, along with 1 tablespoon tamari and 1 tablespoon vinegar. Add the tofu to the pan and cook, stirring frequently, until it begins to brown on all sides, about 10 minutes. Transfer the tofu to a plate and cover to keep warm.
  • Add the remaining 1 teaspoon of oil to the pan along with the onion. Cook, stirring frequently, until it begins to brown, about 5 minutes. Add the bell peppers and the pineapple to the pan. Cook, stirring occasionally, until the vegetables have softened, about 10 more minutes. Add the tofu back into the pan.
  • Whisk together the tomato paste, maple syrup, cornstarch, remaining 2 tablespoons tamari, 2 tablespoons vinegar, and ½ cup of the reserved pineapple juice in a small bowl. Pour the mixture into the pan and gently stir to coat everything well. Cook for a few more minutes, until the sauce thickens and is heated through.
  • Serve over the cooked rice.


First-Timer tip: If you’re pressed for time, you can used store-bought baked tofu and a bag of frozen stir-fry vegetables in this recipe. Baked tofu is already seasoned, so you can skip step 1. Just add it to the pan with the frozen veggies in step 2 and add the sauce after they’re both heated through.

My Notes-

Need to make it oil-free?  Instead of cooking the tofu in oil in the first step, dry-broil it as described in this post. Another option is to season the tofu with tamari and rice vinegar, then bake. Or simply sauté it as described above and add a bit of broth or water, as needed. Thoroughly pre-heating the pan is also very important to prevent sticking.

Storage: Store leftover sweet and sour tofu in an airtight container in the refrigerator for up to 4 days.

Estimated Nutrition (per serving)

Calories: 426kcalCarbohydrates: 76gProtein: 14gFat: 7gSodium: 470mgFiber: 3gIron: 5mg