Vegan Butter Chicken (With Tofu)

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

This vegan butter chicken features tofu simmered in a rich and creamy curry sauce made with coconut milk, tomatoes, fresh ginger, and warm spices. The tofu is torn into thick pieces and double air-fried with a yogurt marinade in between, resulting in chewy, well-seasoned pieces with slightly charred edges!

Tofu in a creamy tomato curry sauce with rice and chopped cilantro in a plate.

I’m back with another plant-based take on one of the most loved Indian dishes in the world, butter chicken! Despite the name, there is obviously no chicken here. Instead, I rely on tofu that is torn into thick pieces and air-fried twice to create chewy, slightly charred, and meaty pieces that even tofu skeptics will find convincing. I might be wrong, but I truly believe that it’s the recipe that can change the minds of tofu haters.

Oh, and the perfectly-spiced sauce is just as rich and flavorful as what you’d get at a restaurant. Arguably better, because you made it and it’s much less oily!

⭐️ Why This Recipe Works

  1. Double air-fry technique. Traditional butter chicken gets its distinctive flavor from tandoor-charred chicken. The high heat caramelizes the marinade, creating a thin crust with charred edges. Here, the tofu is air-fried once to create a golden-brown crust that absorbs the marinade better. The second air-fry caramelizes the yogurt marinade and creates crispy edges. Better flavor, meatier texture!
  2. Tearing the tofu rather than cutting it into cubes helps it hold the marinade more effectively. It results in tofu pieces that are seasoned all the way through.
  3. Blending the diced tomatoes before adding them to the pan creates a silky-smooth, restaurant-style sauce without any chunks. Plus, simmering it before adding the coconut milk cooks out the raw tomato and concentrates flavors.

🥫 What You’ll Need

Here are the ingredients you’ll need to make this vegan butter tofu. Remember that you can find the exact measurements in the recipe card located at the bottom of this post.

Ingredients like firm tofu, yogurt, spices, vegan butter, and diced tomatoes.
  • Tofu – For the best texture, use firm tofu. Extra-firm tofu would yield a dryer texture, while silken tofu would fall apart in the sauce.
  • Yogurt – Use plain, unsweetened vegan yogurt. I like soy yogurt, but coconut or cashew yogurt also works.
  • Butter – For that buttery richness. I used Flora plant butter, but any vegan butter works.
  • Garlic, ginger, and shallots – The golden trio of aromatics! You can replace the shallots with half of an onion. For the ginger, pick fresh ginger with smooth skin and no wrinkles.
  • Spices – Cumin, coriander, garam masala, turmeric, and a pinch of chili powder for some heat.
  • Diced tomatoes – Use a 14-ounce (400g) can of diced or crushed tomatoes.
  • Coconut milk – Pick full-fat coconut milk over the light kind for a rich and creamy sauce.

📔 Pro Tips

  1. Tear the tofu, don’t cut it. This one’s important. Tofu pieces with irregular edges hold the marinade better than cubes. They also brown better during baking/air-frying.
  2. Marinate the tofu while it’s still hot. Since hot tofu is more porous than cold tofu, I recommend adding it to the marinade while it’s still warm. Then let it cool in the marinade and allow it to absorb the flavors for at least 30 minutes, preferably 2 hours.
  3. Simmer the tomato sauce before adding the coconut milk. To avoid a raw tomato flavor and too much acidity, simmer the tomato sauce for a few minutes before adding the milk.

🥣 How to Make It

Tofu pieces in an air fryer basket.
  1. Toss the tofu. Using your hands, tear the tofu into thick, irregular pieces, approximately 1.5 inches (3.8cm) each. Toss them with the oil and salt.
Golden brown tofu pieces in an air fryer basket.
  1. Air fry. Arrange the tofu pieces into an even layer inside the air fryer basket and air-fry for 20 minutes.
Yogurt, lime juice, spices, and chopped ginger in a bowl.
  1. Prepare the marinade. In the meantime, combine the marinade ingredients in a deep plate.
Stirring yogurt, lime juice, and spices in a bowl.
  1. Use a spoon to mix everything.
Yogurt marinade and golden brown tofu in a bowl.
  1. Add the tofu. Add the hot tofu to the bowl containing the marinade.
Tossing golden-brown tofu with a yogurt marinated in a bowl.
  1. Marinade. Toss to coat the tofu evenly, then marinate it for at least 30 minutes.
Marinated tofu pieces in an air fryer basket.
  1. Air fry. Then air-fry the tofu a second time.
Charred tofu pieces in an air fryer basket.
  1. The tofu should have slightly charred edges. Keep an eye on it to ensure it doesn’t burn, though.
Minced garlic, shallot, and ginger in a skillet.
  1. Sauté the aromatics. Melt the butter over medium heat. Then, add the minced shallot, garlic, and ginger. Sauté for 2-3 mins.
Sautéed garlic, shallot, ginger, and spices in a skillet.
  1. Bloom the spices. Add the spices and cook them for one minute. This helps the spices release more flavor.
Tomato sauce in a skillet.
  1. Cook the tomato sauce. Add the blended tomatoes and cook the sauce for 3-4 minutes.
Tomato sauce and coconut milk in a skillet.
  1. Pour in the coconut milk. Add the coconut milk, salt, and sugar. Simmer for another 5 minutes.
Curry sauce and charred tofu pieces in a skillet.
  1. Add the tofu. Finally, add the air-fried tofu.
Tossing tofu pieces with a creamy curry sauce in a skillet.
  1. Toss to coat. Toss to coat it with the sauce and let it simmer for another 5 minutes.

🔥 Oven-Baked Option

No air-fryer? No problem! You can easily bake the tofu instead. First bake: spread the tofu on a baking sheet lined with parchment paper and bake at 375°F (190°C) for 25-27 minutes, flipping halfway, until golden brown. Second bake: Bake at 400°F (200°C) for 15-17 mins, flipping halfway, until the edges are slightly charred.

🍚 Serving Suggestions

  • With grains: Basmati rice is our fav, but quinoa, farro, or even couscous would pair well too.
  • With naan: Use naan bread to scoop out the sauce and some pieces of the tofu!

❄️ Storing and Reheating

  • To store: You can refrigerate the tofu with the sauce for up to 4 days.
  • To reheat: Reheat gently over medium heat in a skillet or saucepan for about 5 minutes.
Close-up of a spoonful of tofu in a creamy tomato-based sauce.

💬 FAQs

Can I use silken tofu to make vegan butter chicken?

No, silken tofu won’t work here. It’s too soft and won’t hold its shape during air frying.

Can you make this recipe nut-free?

Yes. You can replace the coconut milk with your favorite plant-based cream (soy cream, for example).

Can you make this ahead of time?

Of course! This vegan butter chicken keeps and reheats very well. You won’t even have to thin the sauce, making it great for meal prep.

Can you freeze this vegan butter chicken?

No. For optimal taste and texture, I advise against freezing it – it would completely change the texture of the tofu.

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

Close-up of creamy vegan butter chicken with rice and chopped cilantro in a plate.
full of plants in envelope

Save this recipe!

Save Recipe

Vegan Butter Chicken (With Tofu)

Author: Thomas Pagot
This vegan butter chicken features tofu simmered in a rich and creamy curry sauce made with coconut milk, tomatoes, fresh ginger, and warm spices. The tofu is torn into thick pieces and double air-fried with a yogurt marinade in between, resulting in chewy, well-seasoned pieces with slightly charred edges!
Prep Time : 30 minutes
Cook Time : 50 minutes
Total Time : 1 hour 20 minutes
Servings 2 servings

Ingredients

  • 13 ounces (370 g) firm tofu
  • 1 tbsp (15 ml) oil
  • 1/8 tsp salt

Yogurt Marinade

  • 1/4 cup (60 ml) unsweetened vegan yogurt
  • 1 tbsp (15 ml) lime juice
  • 2 cloves of garlic (finely chopped)
  • 1 tsp finely chopped fresh ginger
  • 1 tsp garam masala
  • 1/2 tsp ground cumin
  • 1/4 tsp ground chili powder
  • 1/4 tsp salt

Curry

  • 3 tbsp (42 g) vegan butter
  • 2 shallots (finely minced)
  • 2 cloves of garlic (finely chopped)
  • 2 tsp finely chopped fresh ginger
  • 2 tsp garam masala
  • 1/2 tsp ground cumin
  • 1/2 tsp ground coriander
  • 1/4 tsp ground turmeric
  • 1 14-ounce can (1 400-g can) diced tomatoes (blended into a smooth sauce)
  • 3/4 cup (180 ml) full-fat coconut milk (or plant-based cream)
  • 1 tsp (4 g) sugar
  • 3/4 tsp salt
  • 1/4 cup fresh cilantro for topping

Instructions
 

  • Toss the tofu. Using your hands, tear the tofu into thick, irregular pieces, approximately 1.5 inches (3.8cm) each. Transfer to a large mixing bowl and add the oil and salt. Toss until evenly coated.
  • Air fry. Preheat your air fryer to 365 °F (185°C) and set the time to 20 minutes. Once hot, spread the tofu pieces into an even layer in the air fryer basket and air-fry for 20 minutes, flipping halfway.
  • Prepare the marinade. In the meantime, add the yogurt, lime juice, garlic, ginger, spices, and salt to a deep plate. Stir to combine.
  • Add the tofu. Once the tofu is golden brown, remove it from the air fryer and let it cool for about 5 minutes. Then, add the warm tofu to the bowl containing the marinade and toss to coat. Let it marinate for at least 30 minutes, preferably 2 hours.
  • Air fry again. Preheat your air fryer to 400 °F °F (200°C) and set the time to 12 minutes. Once hot, spread the marinated tofu in an even layer in the air fryer basket. Do not add the leftover marinade, just the tofu pieces. Air fry, flipping halfway through, until the tofu is just slightly charred on the edges. Set aside.
  • Sauté the aromatics. Add the butter to a deep non-stick skillet and melt it over medium heat. Once melted, add the minced shallot, garlic, and ginger. Sauté for 2-3 minutes.
  • Bloom the spices. Add the spices and stir to combine with the aromatics. Cook for one minute, stirring constantly.
  • Cook the tomato sauce. Add the blended tomatoes and cook for 3-4 minutes, stirring regularly.
  • Pour in the coconut milk. Then, add the coconut milk, sugar, and salt, and stir to combine. Simmer for another 5 minutes.
  • Add the tofu. Finally, add the air-fried tofu and toss to coat. Let it simmer for 3-5 more minutes. Garnish with chopped cilantro and serve with rice and/or naan!
  • You can refrigerate the tofu with the sauce for up to 4 days.

Notes

Tear the tofu, don’t cut it. This one’s important. Tofu pieces with irregular edges hold the marinade better than cubes. They also brown better during baking/air-frying.
Marinate the tofu while it’s still hot. Since hot tofu is more porous than cold tofu, I recommend adding it to the marinade while it’s still warm. Then let it cool in the marinade and allow it to absorb the flavors for at least 30 minutes, preferably 2 hours.
Simmer the tomato sauce before adding the coconut milk. To avoid a raw tomato flavor and too much acidity, simmer the tomato sauce for a few minutes before adding the milk.
Course : Dinner, Lunch
Cuisine : Indian
Did you make this recipe?Please leave a comment and rating 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!




0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments