Stuffed Tofu in Spicy Tomato Sauce

4.84 from 6 votes
Jump to Recipe24 Comments

This post may contain affiliate links. Please read our disclosure policy.

Chewy on the outside and tender on the inside, this Vietnamese stuffed tofu features a savory filling of hearty mushrooms and carrots. It’s simmered in a homemade tomato sauce that hits all the right notes: sweet, salty, and just spicy enough. If you are looking for a fun way to cook tofu, this recipe is well worth trying!

Six pieces of stuffed tofu in tomato sauce in a skillet.

Say goodbye to boring tofu. Stuffed tofu is the new favorite!

Let me explain the concept quickly: Thick blocks of tofu are fried (or air-fried!) until golden brown. This creates a crust around the tofu and strengthens it. The inside is scooped out, seasoned, and mixed with sautéed vegetables and aromatics, then stuffed back into the tofu shell.

Finally, the tofu is gently simmered in a sweet-and-spicy tomato sauce until the crust turns chewy and soaks up all of that bold, savory flavor. It’s SUPER tasty and definitely different from your regular baked or sautéed tofu!

Just a quick heads-up: this is not a quick recipe. While it’s not difficult to make, it’s more time-consuming than my other recent tofu recipes. For quicker tofu recipes, check out my lemongrass air fryer tofu, General Tso’s tofu, or this saucy gochujang tofu.

⭐️ Why You Should Try It

A vegan take on the classic dish.

For those new to Vietnamese cuisine, this recipe is the plant-based version of a dish called “đậu hũ dồn thịt”. The principle stays the same: stuffed tofu served in a flavorful tomato sauce. What differs is that the original calls for stuffing the tofu with ground meat. In my version, I omit the ground meat, generously season the carved-out tofu, and return it to the tofu pockets. It’s not trying to replicate the original dish, but rather a plant-based twist inspired by it.

Sweet, salty, & spicy flavors.

Fans of sweet and salty dishes? You’re going to love this dish. The sauce is not your regular Italian tomato sauce. It’s seasoned with chili, plenty of garlic, green onions, and balanced with just the right amount of soy sauce and sugar. Here is what some readers have to say about it:

Moon says: “Made this today and it was great! I had some leftover filling, so we also added some stuffed cabbage rolls with it too. The sauce is sooooo good! Thank you! 🙂 ★★★★”

Emy, a reader, says: “This stuffed tofu recipe is amazing. My whole family loved it as it had the perfect amount of spiciness for us. ★★★★★”

🥕 What You’ll Need

For The Tofu

Ingredients like firm tofu, mushrooms, carrots, and shallot.
  • Tofu – For this recipe, I recommend using firm tofu, as it’s the one I got the best results with. Silken tofu is too soft and breaks easily, while extra-firm tofu tends to yield a gritty texture.
  • Mushrooms – To create an interesting texture, I went with two different types of mushrooms. You’ve got fresh cremini mushrooms that bring heartiness and chewiness. Additionally, wood ear mushrooms add a subtle layer of crunch. Those are sold dried in well-stocked Asian supermarkets and must be rehydrated before using.
  • Shallot – You can substitute it with half a small onion.
  • Carrots – When it comes to the carrots, please avoid using the ones sold in plastic bags, those are not good quality and barely taste anything. Instead, pick fresh carrots from your local farmer’s market.
  • Soy sauce – It brings umami and saltiness. Use coconut aminos or tamari for a gluten-free option.
  • Salt, pepper, and sugar – To season the tofu and the vegetables. I used granulated white sugar, but you can replace it with maple syrup or coconut sugar for a refined-sugar-free alternative.

For The Tomato Sauce

Ingredients like tomatoes, ketchup, garlic, and sugar.
  • Tomatoes – Use large, ripe tomatoes for optimal flavor. The sauce tastes especially good in summer when tomatoes are in season, but it can be made year-round.
  • Ketchup – Not only does it add a touch of sweetness, but it also helps deepen the color of the sauce.
  • Garlic – Fresh garlic works best here. Don’t replace it with garlic powder.
  • Green onions – For freshness and a mild onion-y flavor.
  • Chili – Use half of a bird’s eye chili, also known as Thai chili.
  • Soy sauce – For saltiness.
  • Salt, pepper, and sugar – Again, you will find this trio of seasonings in the sauce. Sugar helps balance the tomatoes’ acidity and the chili’s spiciness. Note: If you’re using ripe summer tomatoes, you may want to slightly reduce the sugar.
Vân Tips

Taste the filling. It’s essential to try the filling before stuffing the tofu pouches. It should be well-seasoned: salty and peppery. If it tastes bland, add more salt or soy sauce. Mix and taste it again.

Adjust the spiciness. I use about half a Thai chili for medium heat, but because the spiciness tolerance varies from person to person, I suggest starting with 1/4 of a chili and adding more if needed.

Double the sauce. The tofu tends to absorb the sauce very quickly, so if you want a really saucy dish, you’ll have to double the sauce. You can even blend half of the tomatoes for a smoother consistency.

🥣 Step-by-Step Instructions

1. Tofu

Air-Frying Vs. Deep-Frying

You have two options for cooking the tofu: deep-fry or air-fry. Deep frying yields the best results in terms of appearance and texture. The tofu skin is smoother, and the interior is less spongy than in the air-fried version. But considering that deep-frying requires a lot of oil and will make your kitchen smell like a fast-food chain, I believe the air-frying option is a pretty strong alternative. That’s the one I’ll show you in the instructions below. For a deep-frying guide, check out my article on how to deep-fry tofu here.

  1. Air fry the tofu. Preheat your air fryer to 355°F (180°C). Then, remove the basket and line it with parchment paper. Arrange the tofu blocks on top and generously brush all sides with oil. Air fry for about 40 minutes, flipping halfway through.
  1. Scoop out the inside. Using a knife, carve out the inside of each tofu piece, making sure you don’t go all the way through. Set the scooped-out tofu aside, as you will need it for the filling.
  1. Sauté the vegetables. Sauté the minced shallots for 2-3 minutes. Then add the carrots, mushrooms, and wood ear mushrooms. Sauté for another 5-7 minutes, or until the carrots are tender.
  1. Add the tofu. Slightly mash the scooped-out tofu using your hands and add it to the skillet. Stir to mix it with the mushrooms and carrots.
  2. Season and cook. Add the soy sauce, sugar, salt, and pepper. Toss to coat and cook for another 3-5 minutes.
  1. Stuff the tofu. Carefully fill each tofu pouch with the mashed tofu mixture and set aside.

2. Tomato Sauce

Now onto the tomato sauce!

  1. Sauté the aromatics. Sauté the minced garlic, chili, and chopped green onions in the oil for 2-3 minutes.
  1. Add the tomatoes. Add the diced tomatoes and cook for about 10 minutes, or until they have melted.
  1. Season. Add the ketchup, sugar, water, soy sauce, ground black pepper, and salt. Stir to combine.
  2. Add the tofu. Finally, add the stuffed tofu to the tomato sauce and cover the skillet with a lid. Simmer for about 5 minutes, flipping halfway through. Your tofu is now ready to be served!

🥬 Variations

When it comes to the filling, nothing is set in stone here! Feel free to use the vegetables you have on hand. You can use finely chopped cabbage, kale, green peas, or even cooked chickpeas for added texture. And if you want a meatier texture, you can mix the tofu with vegan ground meat, just remember to adjust the seasonings accordingly.

🍚 What to Serve It With

We love to serve it over jasmine rice, but any grain will work. Quinoa, farro, pearl barley, or this clay pot rice!

❄️ Storing and Reheating

  • To store: This tofu tastes best when served the same day, as it’s still soft and chewy. However, you can store it in the refrigerator for up to 3 days.
  • To reheat: Cover and reheat in a nonstick skillet for 7-10 minutes. If the sauce has thickened too much, add a splash of water and a pinch of salt.
  • Freezing: I do not recommend freezing this tofu, as it becomes too spongy.
Holding a piece of stuffed tofu using chopsticks.

💬 FAQ

Can I bake the tofu instead of air frying it?

Yes, baking works as well with a similar baking time as air frying. Just keep in mind that the tofu is slightly drier.

Can I make this dish ahead of time?

You can make the tomato sauce up to 3 days ahead, but I would recommend preparing the tofu on the day you plan to serve it.

If you love sweet and salty flavors, you will love this dish! The stuffed tofu is super chewy, loaded with vegetables, and the sauce takes it to the next level by adding the perfect amount of heat!

⭐️ Did you like this recipe? Let us know in the comments below, and tag us on Facebook, Instagram, or Pinterest!

Close-up of stuffed tofu in tomato sauce topped with chopped green onions and ground black pepper.
full of plants in envelope

Save this recipe!

Save Recipe

Six pieces of stuffed tofu in tomato sauce.

Stuffed Tofu in Spicy Tomato Sauce

4.84 from 6 votes
Author: Thomas Pagot
Chewy on the outside and tender on the inside, this Vietnamese stuffed tofu features a savory filling of hearty mushrooms and carrots. It's simmered in a homemade tomato sauce that hits all the right notes: sweet, salty, and just spicy enough.
Prep Time : 45 minutes
Cook Time : 1 hour 15 minutes
Total Time : 2 hours
Servings 6 pieces

Ingredients

Stuffed Tofu

  • 30 ounces (850 g) of firm tofu
  • 2 tbsp (30 ml) oil to brush the tofu
  • 1 tbsp (15 ml) oil to sauté the vegetables
  • 1 shallot minced
  • 1/2 (50 g) carrot peeled and finely diced
  • 3 cremini mushrooms finely diced
  • 2 small (4 g) wood ear mushrooms rehydrated in hot water for about 15 minutes and finely diced
  • 1 tsp (5 ml) soy sauce
  • 1 tsp (4 g) sugar
  • 1/2 tsp salt
  • 1/4 tsp ground black pepper

Tomato Sauce

  • 2 tbsp (30 ml) oil
  • 3 cloves of garlic minced
  • 1/2 Thai chili thinly sliced
  • 2 tbsp chopped green onions
  • 3 (450 g) large ripe tomatoes finely chopped
  • 3 tbsp (45 ml) ketchup
  • 2 tbsp (30 ml) water
  • 1 tbsp (12 g) sugar (adjust to your liking)
  • 1 tsp (5 ml) soy sauce
  • 1/8 tsp ground black pepper
  • 1/8 tsp salt (adjust to taste)

Instructions
 

Stuffed Tofu

  • Slice the tofu. Start by slicing the tofu into six blocks, each 3×2 inches (8x5cm) and 1.5 inches (4cm) thick.
  • Preheat your air fryer. Preheat your air fryer to 355°F (180°C).
  • Brush the tofu with oil. Once the air fryer is hot, remove the basket and line it with a piece of parchment paper. Arrange the six blocks of tofu on top and generously brush all the sides with oil (I used about two tablespoons).
  • Air-fry the tofu. Place the basket back in the air fryer and cook for 40 minutes, flipping the tofu halfway through. Let the tofu cool completely.
  • Scoop out the inside. Next, using a knife, carefully carve out the inside of each tofu piece, making sure you don’t go all the way through. You want to make some tofu pouches by not cutting through the crust. Set the scooped-out tofu aside.
  • Sauté the aromatics. Heat the oil in a non-stick skillet over medium heat. Once hot, add the minced shallots and sauté for 2-3 minutes.
  • Add the vegetables. Then add the diced carrots, mushrooms, and wood ear mushrooms. Sauté for an additional 5-7 minutes, or until the carrots are tender.
  • Add the tofu. Scramble the scooped-out tofu into a bowl and mash it with your hands. Transfer the mashed tofu to the skillet and mix it with the mushrooms and carrots.
  • Season and cook. Add the soy sauce, sugar, salt, and pepper. Toss to coat and cook for another 3-5 minutes. Taste and adjust the saltiness to your liking. Remove from the heat and let it cool.
  • Stuff the tofu. Fill each tofu pouch with the mashed tofu mixture. Each pouch should be packed, but not too tightly, or you won’t have enough to fill all the pouches. Also, be gentle, so you don’t break the tofu pouches. Set aside.

Tomato Sauce

  • Sauté the aromatics. Heat the oil in a non-stick skillet over medium heat. Once hot, add the minced garlic, chili, and chopped green onions. Sauté for 2-3 minutes or until the garlic is slightly golden.
  • Add the tomatoes. Add the diced tomatoes to the skillet and cook for about 10 minutes, or until they have melted.
  • Add the seasonings. Pour in the ketchup, water, sugar, soy sauce, ground black pepper, and salt. Stir to combine.
  • Simmer the tofu. Finally, add the stuffed tofu to the tomato sauce, cover the skillet with a lid, and simmer for about 5 minutes, flipping halfway through. Serve with white rice!
  • This tofu tastes best when served the same day, as it’s still soft and chewy. However, you can store it in the refrigerator for up to 3 days.

Notes

Taste the filling. It’s essential to try the filling before stuffing the tofu pouches. It should be well-seasoned: salty and peppery. If it tastes bland, add more salt or soy sauce. Mix and taste it again.
Adjust the spiciness. I use about half a Thai chili for medium heat, but because the spiciness tolerance varies from person to person, I suggest starting with 1/4 of a chili and adding more if needed.
Double the sauce. The tofu tends to absorb the sauce very quickly, so if you want a really saucy dish, you’ll have to double the sauce. You can even blend half of the tomatoes for a smoother consistency.
Course : Main Course
Cuisine : Vietnamese
Did you make this recipe? Tag @fullofplants on Instagram and hashtag it #fullofplants

Note: This recipe was first released in October 2019 and updated with new process shots and detailed instructions in January 2026. You can see the older photos below.

Share this recipe!

About the Author

Thomas Pagot is the founder, photographer, and recipe developer behind Full of Plants. He created the blog in 2016 as a personal cookbook for vegan recipes. Through years of recipe development, Thomas has successfully grown Full of Plants into a trusted resource for plant-based recipes.

Learn more ➜

Leave a Comment

Subscribe
Notify of
Did you make this recipe? Rate it!




24 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

5 stars
I was looking for a new way to cook tofu and this one looked perfect. Turned out great. Saving this for sure.

5 stars
These stuffed tofu were scrumptious. A bit time-consuming for me to prepare since I’m not great at cooking, but totally worth trying.

5 stars
Fascinating recipe – I love all stuffed foods!

Would this work for Japanese pre-made inari pockets, or are those something completely different?

Inari is fried tofu skins seasoned with sugar, sake, mirin, and dashi, and is Japanese in origin, so the flavor will be different

You’d also have to use extra tofu to make the filling

I think it’d be a good way to save time; alternatively try premade 油豆腐 fried or puffed tofu

4 stars
Made this today and it was great ! I had some left over filling so we also added some stuffed cabbage rolls with it too. The sauce is sooooo good!Thank you ! 🙂

5 stars
This stuffed tofu recipe is amazing. My whole family loved it as it had the perfect amount of spiciness for us.

Great recipes!!!!! Thank you so much!!

I Love your recipes! New follower. Thank you so much!
Coralie

5 stars
Wow! This recipe tasted as good as the đậu hủ dồn thịt (non-vegan) my mom usually cooked for the whole family. Your recipes are always amazing, Thomas. 🙂

Wow this sounds good and very different. What could you eat it with? Plain jasmin rice perhaps? Great page lovin the recipes gotta try some!

That looks delicious I’m loving your plant based goodness so creative

I am constantly amazed at your creativity. Most unique vegan blog out there. Love it! Thanks for all you do. 🙂

I 100% agree, some really great recipes. New and exciting, some things I have never heard of. Yay!