Sweet and Sour Tofu (糖醋豆腐)

A favorite Chinese dish with a meatless twist that gives you the contrast of sweet and sour for a healthy meal any night of the week. {Vegetarian, Vegan, Gluten-free}

Homemade sweet and sour tofu in a skillet

Are you having fun during the holidays? I know I am! With all the activities and events, family and friends, it’s been pretty chaotic. And then there are all the heavy holiday foods. Extravagant and divine, a little indulgence here and there doesn’t hurt, but it’s nice to lighten things up in between all those robust holiday meals.

My Sweet and Sour Tofu is just the thing to help you fill up without filling out. It’s hearty and filling, yet it’s light and healthy so you can escape that overstuffed feeling for an evening. Plus, it’s easy to make. All you need is one pan and you can cook up protein, greens, and tons of nutrition deliciously.

Homemade sweet and sour tofu plated with steamed rice

Cooking notes

Sweet and sour made easier

I know, with a name like “sweet and sour tofu,” you might be concerned about sugar content. In this recipe, my sauce uses a tomato paste base to create a wonderful flavor with minimal sugar content. You’re getting 1 tablespoon of sugar compared to other sweet and sour recipes which give you anywhere from 1/4-cup to 1/2-cup of added sugar, which is so much better. You’re going to love the taste and you won’t miss all that added sugar, believe me!

How to prep tofu

There are a few approaches to making tofu crispy without deep frying it. In this recipe, I used a less time consuming approach by simply draining the water from the tofu.

Tofu is already soaked in water when you buy it. It’s OK to use it directly in stew dishes such as Mapo Tofu, but I prefer to squeeze the water out if I’m making a stir-fry. To do this, simply wrap the whole chunk of tofu with a couple layers of paper towel. Then use both of your hands to gently and slowly squeeze, so the paper towel will soak up and drain the extra water. Be careful not to squeeze too hard or else you’ll break the tofu apart. Once you cut the tofu, more water might seep out on the cutting surface. Simply pat the pieces dry with more paper towels. Then you can go ahead and sear the tofu in a hot pan for crispy, delicious results.

Homemade sweet and sour tofu in a skillet close up

How to make your tofu extra flavorful and crispy

If you want the tofu to have an extra crispy crust like the one you’d get from a Chinese restaurant, here is a great way to do it without deep-frying. Simply cut the tofu into small chunks and put them in a gallon-sized zipper bag. Then marinate your tofu with soy sauce and a little bit of syrup. From there, drain all the liquid. Then add cornstarch in and shake to coat. Two tablespoons of oil is all you need in your pan to get the crispy, browned tofu just right! You can see the detailed process in this post.

One last bit of advice…make sure you use firm or extra firm tofu. Anything softer will break apart and you don’t want that to happen with this dish.

Sweet and Sour Tofu cooking process

What pan to use

A nonstick skillet is always my top choice when it comes to cooking with tofu. It yields crispy results without making the tofu stick to the pan. On the other hand, a carbon steel skillet and a cast iron pan are great options, too. In either of these cases, you might need to use a bit more oil.

Plated homemade sweet and sour tofu close up

Serve this Sweet and Sour Tofu with steamed white rice or some tender noodles for a perfectly complete meal that tastes better than takeout (and is faster, too), even on a busy night. Happy Holidays!

More delicious tofu recipes

If you give this recipe a try, let us know! Leave a comment, rate it (once you’ve tried it), and take a picture and tag it @omnivorescookbook on Instagram! I’d love to see what you come up with.

Sweet and Sour Tofu - A favorite Chinese dish with a meatless twist that gives you the contrast of sweet and sour for a healthy meal any night of the week. {Vegetarian, Vegan, Gluten-free}

Sweet and Sour Tofu (糖醋豆腐)

A favorite Chinese dish with a meatless twist that gives you the contrast of sweet and sour for a healthy meal any night of the week. {Vegetarian, Vegan, Gluten-free}
Course Main
Cuisine Chinese
Keyword takeout
Prep Time 10 minutes
Cook Time 15 minutes
Total Time 25 minutes
Servings 4 servings
Calories 160kcal
Author Maggie Zhu



  • 1/4 cup vegetable stock
  • 2 tablespoons light soy sauce
  • 2 tablespoons Shaoxing wine (or vegetable stock)
  • 1 tablespoon rice vinegar
  • 4 tablespoons tomato paste
  • 1 tablespoon maple syrup (or sugar) (*Footnote 1)


  • 1/2 head small broccoli , cut into bite size florets
  • 2 tablespoons vegetable oil
  • 1 pack (16-oz. / 450-g) extra-firm or firm tofu , drained and cut into bite size pieces
  • 1/2 small onion , sliced
  • 3 cloves garlic , minced
  • 1 teaspoon ginger , minced


  • Mix all the ingredients for the sweet and sour sauce in a bowl. Set aside.
  • Heat 1/4 cup water in a large nonstick skillet over medium-high heat until boiling. Spread broccoli and cook covered for 1 minute, or until it reaches the desired texture. Transfer the broccoli to a plate and wipe the extra water from the skillet with a few paper towels held in a pair of tongs.
  • Heat a tablespoon of oil (more oil if using a carbon steel or a cast iron pan, to prevent sticking) in the same skillet over medium-high heat. When the oil is hot, carefully spread the tofu in the skillet. Cook the tofu without disturbing it until the bottom side turns golden brown, about 5 minutes. Flip tofu with a spatula and grill the other side to the same doneness. Transfer the tofu to a plate and set aside.
  • Add a tablespoon of oil into the same skillet and heat on medium-high heat. Add onion. Stir and cook for 2 minutes, until the edge of the onion turns slightly golden.
  • Add the garlic and ginger. Stir a few times until fragrant.
  • Add the sweet and sour sauce. Add the cooked tofu back into the skillet. Stir gently to mix well with the sauce. Cook until the sauce has reduced to the desired thickness, another 2 to 3 minutes.
  • In a large bowl, add the cooked broccoli. Pour the tofu and all the sauce on top. Serve with steamed rice or noodles on the side.


  1. Although most recipes use quite a lot of sugar in this type of dish, I personally think 1 tablespoon of maple syrup creates a great sweet-sour profile with the tomato paste. Adjust the sweetness by adding another 1 to 3 tablespoons of syrup to suit your taste.


Serving: 4g | Calories: 160kcal | Carbohydrates: 8g | Protein: 9.7g | Fat: 11g | Saturated Fat: 2.2g | Sodium: 486mg | Potassium: 385mg | Fiber: 2.2g | Sugar: 3.3g | Calcium: 160mg | Iron: 2.3mg
Sweet and Sour Tofu - A favorite Chinese dish with a meatless twist that gives you the contrast of sweet and sour for a healthy meal any night of the week. {Vegetarian, Vegan, Gluten-free}


Omnivore's Cookbook is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.
Meet Maggie

Hi I'm Maggie Zhu! Welcome to my site about modern Chinese cooking - including street food, family recipes, and restaurant dishes. I take a less labor-intensive approach while maintaining the taste and look of the dish. I am originally from Beijing, and now cook from my New York kitchen.

FREE 5-Day Chinese Cooking Crash Course

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating

29 thoughts on “Sweet and Sour Tofu (糖醋豆腐)

    1. Maggie Post author

      Me too! I forget about tofu all the time. But thinking about how healthy it is, I’m trying to use tofu to create more dishes lately. Let me know how the cooking goes! 🙂

    1. Maggie Post author

      Yep, it’s so easy to cook, and definitely a no-fail dish! Tofu will be filling and give you satisfaction like meat if you make some appetizing sauce. Happy cooking! 🙂

    1. Maggie Post author

      Thanks Sarah! Tofu is indeed very versatile, great in stir-fry, soup or stew. I really need to look into this and to use tofu more. It’s a very healthy ingredient and low in calories too.

  1. Thomas

    5 stars
    I just cooked this and it totally rocks!

    I didn’t realize how much better tofu gets if you press it with paper towels to get the water out. That made a huge difference in the texture, and I’m going to do that to all my stir fried tofu from now on.

    Also – tomato paste in sweet-n-sour? Who knew? It adds a perfect slightly sweet umami to the dish that I hadn’t tasted in Chinese food before. Great recipe!

    1. Maggie Post author

      Thanks! So glad you like this dish 🙂
      Yes, the tofu will get quite firm during cooking if you press the water out. If you want the tofu become drier, you could put is in a drainer (I often use 2 chopsticks to do this) to let the water drip in about 30 minutes. Same idea for draining normal yogurt to get Greek yogurt. 🙂

    2. joslin

      You can buy tomato paste in large cans then freeze excess in ice cube trays or plastic wrap. I keep tomato paste blocks in my freezer to add to soups, curries, stew….tofu marinade!

  2. riska

    5 stars
    Hi Maggie,

    This is so perfect dish for beginner and very easy, such no fail dish. Can i replace tomato paste with tomato sauce? if can will it be the same amount as tomato paste? thank you.

    1. Maggie Post author

      Hi Riska, yes, you can use 1/2 cup tomato sauce to replace the tomato paste and skip the water. The dish might end up a bit sweeter, since tomato paste is a bit sour than tomato sauce. What you can do is only adding 1/2 tablespoon sugar when you’re mixing the sauce and taste it. You can add the rest sugar if it’s not sweet enough. Hope this could help and happy cooking! 🙂

    1. Maggie Post author

      Hi Janet, if you’re based in the US, you can try “House Foods” (you should be able to find it at most Asian market, Whole Foods or other upscale supermarket). If you cannot find this brand, actually you won’t go very wrong with the dish if you just pick any packaged tofu with the right type. If this is your first time cooking with tofu, you can get the firm type (http://www.house-foods.com/product/PREMIUM+TOFU+FIRM+16+oz./). When you get used to handling tofu, I will suggest using medium firm type (http://www.house-foods.com/product/PREMIUM+TOFU+MEDIUM+FIRM+16+oz./). It’s a bit delicate, so you need to pay some attention not to break them during the cooking. But it will generate a very tender texture with a crispy surface, which I enjoy the most. Hope this is helpful.
      Happy cooking and let me know how the dish turns out 🙂

  3. Od

    5 stars
    Made this tonight and it turned out great. Its a bit different take on sweet and sour sauce but overall the taste is excellent. Gah I uou so much for sharing this recipe!

  4. lauren

    reading this and am so glad i came across your site maggie 🙂
    i’m a student living away from asia for the first time, and sadly my asian cooking skills are near zero.
    i’ll be trying some of your recipes, i’m glad youve made them so easy to follow, even for novices like me



  5. Sophie

    5 stars
    I made this recipe yesterday for dinner and I was pleasantly surprised with the result! This is a super quick, tasty and simple recipe that I will add it to my regular rotation. I used 1tbsp of maple sirup as suggested and it was perfect.

  6. joslin

    I never squeeze my tofu. But to make a meatier texture … have you or your husband tried freezing and refreezing your tofu before use? I do this to get a layered meaty texture (from the water crystals forming and melting). When I lived in Asia, I had a strong little toaster oven. I could marinade then bake tofu squares…they always came out puffy and delicious. My large convection oven doesn’t work as well! I LOVE tofu!

    1. Maggie Post author

      I do! I love frozen tofu because it absorb more sauce and becomes more flavorful. I should do it more often but sometimes I’m not so organized to thaw it in advance. Thanks for sharing the tip on refreezing. Can’t wait to try it out next time 🙂