This vegan butter chicken is easy to make and features tofu in place of chicken for delicious plant-based version of the popular Indian dish.

Vegan butter chicken made with tofu on top of white rice and sprinkled with cilantro on a plate.

About Butter Tofu

This butter tofu “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.

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.

You’ll love this recipe any night of the week for a satisfying and comforting meal but it’s great for entertaining too, especially if you’re serving guests with dietary restrictions. 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!

Recipe Highlights

  • 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.

Ingredient Notes

Cubed tofu on a small white plate with a piece of raw ginger and small bowl of spices beside it.

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.

How to Make 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.

Raw cashews soaking in a glass container.

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.

A block of tofu in a rectangular box tofu press.

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.

Quick 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.

Cashew cream blended up in a Vitamix blender container.

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.

Onions, garlic and ginger in a skillet.

Step 4: Toast the spices.

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

Indian spices like turmeric, cumin and chili powder being added to sauteed onions, garlic and ginger in a skillet.

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.

Cashew cream being poured from a blender into tofu butter chicken in a skillet on the stovetop.

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

Thick and creamy butter tofu in a skillet on the stovetop.

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

Close up of a plate of butter tofu over rice, topped with chopped cilantro.


  1. 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.
  2. 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.

Frequently Asked Questions

Can I make this recipe soy-free?

Yes. To make this recipe without tofu, substitute 1 19 oz. can or about 2.5 cups of cooked chickpeas for the tofu.

Can I use coconut milk instead of cashews?

Yes. To use coconut milk instead of cashew cream, substitute 1 cup of full-fat coconut milk for the cashews and milk.

Vegan butter chicken with tofu on top of white rice on a plate with a skillet of butter chicken in the background.

Serving Tips

  • 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.

Storing Instructions

  • 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.

Did you make this butter tofu?

I’d love to hear about it! Click here to leave a review and don’t forget to post a pic to social and tag @runningonrealfood so I can check it out!

Save This Recipe Form

Want to save this recipe?

Enter your email below & I’ll send it straight to your inbox. Plus you’ll get new recipes from me every week!

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Vegan butter chicken made with tofu on top of white rice and sprinkled with cilantro on a plate.

Easy Vegan Butter Chicken

5 Stars 4 Stars 3 Stars 2 Stars 1 Star 4.8 from 57 reviews
  • Author: Deryn Macey
  • Prep Time: 10 mins
  • Cook Time: 15 mins
  • Total Time: 25 minutes
  • Yield: 4
  • Category: Main Dish
  • Cuisine: Indian
  • Diet: Vegan
Save Recipe


This incredible vegan butter chicken features tofu in a silky cashew tomato sauce and is delicious served over rice.



  1. 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.
  2. 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. 
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.


If you have a high-speed blender like a Vitamix or Blendtec, you can skip soaking the cashews but I’d still recommend at least a quick soak for the creamiest result. If you do not have a powerful blender, I’d recommend soaking them for at least 30 minutes in boiled water up to overnight to achieve a smoother texture. The cashew and milk mixture can be substituted with 1 cup full-fat coconut milk.

To keep this recipe simple, there is not preparation for the tofu. If you’d like to bake or pan-fry the tofu for more texture, break into small chunks after pressing and toss with 1 tbsp cornstarch, salt and pepper. Either pan-fry in a bit of oil over medium-high heat until crispy on all sides or bake spread out on a baking sheet at 400 F for 25-30 minutes until brown and crispy.


  • Serving Size: 1/4 of recipe
  • Calories: 307
  • Sugar: 7.5 g
  • Sodium: 377 mg
  • Fat: 20 g
  • Carbohydrates: 18 g
  • Fiber: 4 g
  • Protein: 15 g

This recipe as originally published January 19, 2015. It was updated December 2019 with new photos and text.