Vegan Butter Tofu
on Dec 14, 2019, Updated Mar 04, 2025
This post may contain affiliate links.
This vegan butter tofu is easy to make and features tofu in place of chicken for delicious plant-based version of the popular Indian dish.

About the Recipe
This vegan butter tofu or vegan butter”chicken” recipe features tofu in a rich and creamy tomato and cashew-based sauce with spices like turmeric, cumin and cinnamon. You’ll need just 30 minutes to prepare it.
Here’s a quick look at what’s to love about this recipe:
- Vegetarian and vegan (dairy-free).
- Gluten-free.
- Ready in 30 minutes.
- Easy to make.
- Creamy, luxirious tomato butter sauce.
- Perfect served with rice and/or naan.
- Stores and reheats well.
The recipe is simple with no preparation for the tofu, though you could bake or pan-fry it separately to give it a meaty texture. We’ll cover how to do that below.
The dish is rich, creamy, high in protein and packed with flavour and nutrition. The creaminess comes from blending raw cashews with plant-based milk, making the perfect dairy-free replacement for heavy cream.
The final dish is not spicy, so it’s suitable for the whole family too. Serve with rice and naan and it’s sure to be a hit!
Ingredient Notes
The ingredient list might seem a bit long but most of it is spices, so don’t be intimidated! Here are a fews notes on the ingredients and substitutions you can make:
- Cashews: You’ll need raw cashews with no added oil or salt to make the cream. You can substitute coconut cream or thick coconut milk if you like.
- Coconut Oil: Use coconut oil to saute or substitute water or broth for an oil-free recipe.
- Garlic & Ginger: Fresh garlic and ginger are best for flavour here.
- Onion: You can use white onion, yellow onion or shallot.
- Spice Blend: You’ll need a mild chili powder, ground turmeric, ground coriander, ground cumin and cinnamon. It’s best to use all of these in the amounts listed for the best flavour profile.
- Maple Syrup: Just a little sweetener to balance the acidity. You can substitute brown sugar or coconut sugar.
- Diced Tomatoes: You’ll need a large can of diced tomatoes and will use the whole can, including the juices. For a smoother sauce, you can also use crushed tomato.
- Tofu: Use firm or extra-firm tofu or substitute plant-based chicken, cauliflower or chickpeas.
Variations
- To use cauliflower instead of tofu, roast 1 small head of cauliflower in 2 tsp olive oil with a pinch of salt and pepper until tender and golden then mix it into the sauce when you would have added the tofu.
- To use chickpeas instead of tofu, drain and rinse a 19 oz can of chickpeas then add it at the end and stir until heated through.
How to Make Vegan Butter Tofu
Step 1: Press the tofu and soak the cashews.
This step is technically optional so feel free to skip it if you just want to get into the recipe. However, if you do not have a high-speed blender, I would recommend soaking the cashews in boiled water for at least 30 minutes up to overnight.
If you’re soaking the cashews, place in a bowl and cover with boiled water. Let sit for 20-30 minutes then drain.

To press the tofu, use a tofu press or wrap it in a dish cloth and place a heavy object like a skillet on it for 20-30 minutes. After pressing, cut the tofu into cubes.
Quick Note: I did not do any tofu preparation for this recipe but if you’d like to add texture and crispiness, you can pan-fry or bake the tofu before adding to the sauce at the end.
To pan-fry the tofu, use this cashew tofu stir fry recipe, to bake the tofu, use this peanut tofu bowl recipe.

Step 2: Make the cashew cream.
Add the drained cashews and milk to a high-speed blender and blend on high until completely smooth and creamy. I used almond milk for an extra-creamy consistency but you can also just use water.
You may need more than 1/2 cup of liquid. We’re looking for a heavy cream consistency.
Recipe Tip
To substitute coconut milk, replace the cashews and milk with about 1-1.5 cups of full-fat coconut milk. Coconut milk is not traditionally used in butter chicken but it can be used if you can’t do cashews.

Step 3: Cook the onion, garlic and ginger.
Heat the coconut oil, or another cooking oil of choice, in a large skillet over medium heat. When you’re ready, add the onion, garlic and ginger and cook for 4-5 minutes, stirring often.

Step 4: Toast the spices.
Add all of the spices to the pan and cook for 1-2 minutes to toast, stirring constantly.

Step 5: Finish the sauce.
Add the maple syrup and canned diced or crushed tomato to the pan. Add the cubed tofu and pour in the cashew cream.

Simmer the butter chicken for about 10 minutes over medium-low heat.

Serve your delicious butter tofu over your favourite rice and topped with fresh cilantro.

FAQs
Yes. To make this recipe without tofu, substitute 1 19 oz. can or about 2.5 cups of cooked chickpeas for the tofu.
Yes. To use coconut milk instead of cashew cream, substitute 1 cup of full-fat coconut milk for the cashews and milk.
Butter tofu can be enjoyed on its own but it’s best served over fresh jasmine or basmati rice. Brown rice works too! It’s delicious served with fresh naan or roti for dipping. Sprinkle with freshly chopped cilantro before serving.
Let cool before storing. Butter tofu stores well in the fridge in a sealed container for up to 5 days. Reheat in a saucepan on the stovetop over low heat or in the microwave until heated through.

Vegan Butter Tofu
Ingredients
- 1/2 cup raw cashews + 1/2 cup unsweetened almond milk or water
- 1 tbsp coconut oil, use vegetable stock or water if you prefer
- 1 tbsp fresh ginger, minced
- 3 clove garlic, minced
- 1 medium white onion, finely diced
- 2 tsp mild chili powder
- 1 tsp ground turmeric
- 1 tsp ground coriander
- 1/2 tsp cumin
- 1/2 tsp cinnamon
- 1 tbsp pure maple syrup
- 1 – 28 oz can diced tomatoes, with the juice
- 1 package organic firm or extra firm tofu, pressed and cubed
- salt and pepper, to taste
Instructions
- Press Tofu (Optional): Press the tofu for 20-30 minutes. You can either wrap the block of tofu in a dish cloth and place a heavy object on it or use a tofu press. This step is optional but helps to squeeze out excess liquid so the tofu can absorb more flavour.
- Soak Cashews: While the tofu is soaking, add the cashews to a bowl and cover with boiled water. Let them soak for 20-30 minutes. This can also be done ahead of time and soaked as long as overnight.
- Blend Cashew Cream: Drain the cashews to a high-speed blender with the plant-based milk. Blend on high until completely smooth and creamy. You may need more than 1/2 cup liquid. We’re looking for a heavy creamy consistency. You should be able to pour it from the blender, so adjust accordindly.
- Saute Aromatics: Heat the coconut oil over medium heat in a large skillet. Add the ginger, garlic and onion and cook for 4-5 minutes, stirring frequently, until softened.
- Toast Spices: Add all of the ground spices: chili powder, turmeric, coriander, cumin and cinnamon. Stir constantly for another 1-2 minutes to “toast” the spices.
- Add Liquids and Tofu: Add the diced tomatoes, maple syrup, cubed tofu and cashew cream mixture from the blender. Mix well and simmer uncovered for 10 minutes over medium-low heat.
- Season and Serve: Taste and season with salt and pepper, if needed. Serve over rice and topped with chopped fresh cilantro and lime wedges on the side.
Video
Notes
Nutrition
This recipe was originally published January 19, 2015.










My family is not Vegan. I repeat, not Vegan. I made it the exact way in the recipe and everyone enjoyed it, they even had 2nd’s. The whole pan was gone at the end of dinner. Absolutely delicious and I felt so good and light afterwards, so much flavor!
That’s wonderful to hear! I’m so glad everyone enjoyed it. Thanks for the review!
Instead of the cashew-almond cream sauce, could you sub coconut milk?
I haven’t tried it but that should work ok. Let me know how it works out!
Was soo good! Didnt get creamy but then I realized I had the cashew cream to add! The second night was even better! Thanks hon!
I cooked it today and it was so delicious! I left the chilli out so my 2 year old could try it as well. And he ate it! He is such a picky eater, it is hard to find something he’ll eat.
And yes, very easy to make.
Ah that’s such a win to please a 2 year old! 🙂 I’m so glad you could both enjoy it! Thanks for letting me know.
Absolutely fantastic!! Definitely a new favorite that’s quick and easy to make. Thanks for the wonderful recipes, Deryn!
Thanks, Monica! So glad you enjoyed!
Wow! This looks amazing! I would try making these easy vegan butter chicken for sure! Can I post it on my blog?
You can definitely post an image and a link back to the recipe, but please don’t post the recipe in full. Thanks!
This was easy and delicious:) I used non-sweetened soymilk as that is what I prefer and the result was very creamy and so good! Mine turned out a little darker as my onion and spice mixture got pretty brown. Next time I might use an immersion blender for a few seconds to give it a better color before putting in the tofu (I used tempe- not as pretty but very good). I served with a side of roasted broccoli. So colorful in the bowl:)
That is so great to hear! It sounds great with tempeh too. Glad you enjoyed it! Thanks a lot for the feedback.
This was so good! I just reduced the spices a bit, and I didn’t have diced tomatoes so I used some tomato sauce instead. Nice and creamy.
Awesome! So glad you liked it.
I have tried this recipe and it’s “just wow”. I have added the Raizada Spices and sauces along with your ingredients and it adds the perfect flavor to the recipe. Keep Sharing such tasty recipes.
I would try using sunflower seeds or some other type of seed in place of cashews.