Tofu Makhani

Tofu Makhani Curry

Here’s a master recipe for a gravy you can use to make any kind of “makhani” dish.

If you’ve eaten at an Indian restaurant, you’ve likely come across Chicken Makhani, or Butter Chicken. The reason for Butter Chicken’s immense popularity is its smooth, signature-orange gravy that wraps itself silkily around your tastebuds, and the fabulously buttery flavor that rounds off sparkling notes of spicy, sour, salty, bitter and sweet.

But Butter Chicken is also not, as the name suggests, a healthy dish. It usually includes cream, butter, and — of course, chicken, with all of the accompanying fat and cholesterol. All of which makes it a no-no in my kitchen where the only creatures who wander in are there to eat, not be eaten.

Tofu Makhani

A reader recently asked me for a vegan version of Butter Chicken, which spurred me to cook this delicious dish once more and share it with all of you. This gravy is exactly similar to the one typically used for Butter Chicken, with the exception, of course, that there is no butter or cream here. At least not real butter, but we do need a tablespoon of a good quality vegan “butter” like Earth Balance. It’s really not much since this recipe would easily serve four people, so don’t try to skimp on it because you won’t end up with the desired smooth, rich result.

You can use this gravy with tofu, as I did, or even with meat substitutes and vegetables like mushrooms or eggplant. It is fabulous every which way. Adding tofu to this dish brings it closer to another popular Makhani dish, Paneer Makhani, where paneer, an Indian cheese, is added to the gravy. But tofu has healthy fats, unlike paneer, and it is bursting with good protein. Dal Makhani is a slightly different dish and you can find my recipe here, but you could easily adapt this recipe to make a dal makhani by simply adding boiled and tender lentils at the stage where the tofu gets added to the dish.

I marinate the tofu for extra flavor, and it really helps, so take the time to do it. If you are using veggies or meat substitutes, you can use the same marinade ingredients and brown the veggies or meat substitutes before adding them to the makhani gravy. Add the veggies or meat substitute at the same stage where you’d add the tofu.

Here’s the recipe, then, for an incredibly super and versatile Tofu Makhani. Enjoy, all!

Tofu Makhani

5.0 from 4 reviews
Tofu Makhani
Prep time
Cook time
Total time
Recipe type: Curry
Cuisine: Indian
Serves: 4
  • For the marinated tofu:
  • 1 tsp vegetable oil
  • 1 block extra-firm tofu. Swaddle the block of tofu in a paper napkin or cheesecloth, place it in a sieve, and place a heavy weight, like a pan, on top. Let the tofu stand for an hour at least so most of the water has drained out of it. Then cut it in half down the middle, and halve again crosswise so you have four slices.
  • 1 tsp coriander powder
  • ¼ tsp red chilli powder
  • ⅛ tsp turmeric
  • 1 tbsp lemon juice
  • Salt to taste
  • For the Makhani curry:
  • 1 tsp oil
  • 3 green cardamom pods
  • 3 cloves
  • 10 peppercorns
  • 1-inch piece of cinnamon
  • 1 tbsp cumin seeds
  • 1 tbsp coriander powder
  • ½ tbsp grated garlic
  • 1 tbsp grated ginger
  • 1 small onion, finely chopped
  • 1 large tomato, finely chopped
  • ¼ cup tomato paste
  • ½ tsp turmeric
  • ½ tsp red chilli powder
  • 2 heaping tbsp kasoori methi (dry fenugreek leaves)
  • 2 tsp grated jaggery or maple syrup (use sugar if you don't have these)
  • 2 cups vegetable stock, or more (use water if you don't have this, but stock will add more flavor)
  • ¼ cup cashew nuts
  • 1 tbsp vegan "butter"
  • 1 tbsp lemon juice
  • Fresh green coriander for garnish
  1. To prepare the tofu:
  2. Mix all the ingredients except the tofu. Now slather the marinade on the slices of tofu you've prepared and set aside for about half an hour.
  3. Smear the oil evenly in a nonstick or cast-iron griddle. When it's hot, place the slices of tofu in the pan without crowding them. Cook until golden-brown on each side, about four minutes per side. Remove to a plate and, when cool, cut into ¾-inch cubes. Set aside.
  4. To make the Makhani curry:
  5. Heat the oil in a saucepan. Add the cumin seeds, and when they sputter add cardamom, cloves, peppercorns and cinnamon. Saute for a minute over medium-high heat.
  6. Add the onions and a little salt and saute until the onions start to brown, about five minutes. Add ginger and garlic pastes, kasoori methi, and cashew nuts and saute for another minute.
  7. Add the tomatoes and tomato paste, powdered coriander, turmeric, and chilli powder.
  8. Saute the mixture until the tomatoes turn really soft and melt into the saucepan. If the mixture starts to get too dry before the tomatoes are done, add some water or vegetable stock and continue cooking.
  9. Once the tomatoes are really soft, turn off the heat and let the mixture cool. Pour into a blender and add a cup of vegetable stock. Blend to a smooth paste. (Don't blend the mixture while it's still hot because it can be dangerous. If you have a hand blender, this is the time to use it.)
  10. Pour the blended paste back into the saucepan, turn on the heat, add the remaining vegetable stock if the mixture is thick, and bring to a simmer. Now add the tofu cubes and stir them in. Add salt to taste. Let the mixture simmer for about 10 minutes.
  11. Add the vegan butter and turn off the heat. Stir to melt the butter into the sauce.
  12. Add the lemon juice and maple syrup, mix well, garnish with coriander leaves, and serve hot with some boiled rice or
  13. naan
Nutrition Information
Calories: 251 Carbohydrates: 16.1 g Sugar: 5.4 g Protein: 14.7 g


For more Indian tofu curry goodness, try:

Tofu Egg Curry

Tofu Kofta Curry

Chilli Tofu

Tofu Shrimp Curry

(C) All recipes and photographs copyright of Holy Cow! Vegan Recipes.

Get new recipes by email. Sign up below.


  1. says

    love the texture of the gravy! both my and hubbs’s parents cant live without a good paneer makhani.. i taught ma my vegan version when she visited in october.. she already made some new vegan stuff she picked up here esp some laddoos! so i a hoping she wills tick to some non paneer non makhan makhani too:)

  2. says

    This gravy is fantastic. I alresdy love dal makhani but your sauce has a spice profile that I find most palatable.
    Your stuff is good, I want to try this with tofu. I make Italian stuffed shells with tofu but have never thought of marinating them. Thanks for this.

  3. says

    OMG, I am not a Vegan but a great fan of Tofu, I tried this receipe and was big hit. Did modify a few ingredients and still tasted the best. Now this will be a regular in my house. Thanks.

    • Anonymous says

      Hey vaishali can i use fresh tomatoes only instead of the tomatoe paste ? i tried ur recipe and it was a bit in the tangy side as my tomato patse was a bit tangy so had to add lotsa syrup. But it was super yummy everyone loved it.

  4. says

    I’ve made this twice now, I was unable to find the fenugreek leaves so left them out but it still tasted so amazing! I’m not a big tofu fan so I use chickpeas or potatoes in place, it’s sooo good! It’s a big hit here, both mum and I are big fans especially cause it’s hard to find good indian food where we live. Thank you so much for this recipe!! 😀 It’s nice to make from scratch, to know exactly what is in it unlike store bought ones etc. 😀

  5. gastro-doc says

    Hi Vaishali! I found your website & it looks great! I made the tofu makhani this weekend and I REALLY love it (I left out the sweet element). I followed your directions but mine doesn’t look as vibrant as yours :o(
    Will definitely make this again — tofu is good for you & so is your site!
    All the best 😀

  6. says

    I made this last night with some store bought marinated tofu and it was absolutely delicious! I didn’t have any fenugreek leaves so I just used a good pinch of fenugreek seeds in with the jeera. Look forward to cooking more from your blog, might try the Patia tonight :)
    Thanks for the delicious recipes!

  7. says

    I just made this (minus the tomato paste, so mine wasn’t as red) and it was SO good! Thank you for the recipe – I will definitely use it again! :)

  8. says

    I just tried this recipe tonight. It was delicious! I have a question though – probably a stupid question, but I am relatively new to cooking curries. Do you grind your spices (i.e. the cardamom and cinnamon) or just put them in as is? And if so, is there any point in the cooking process when you remove them, or do you just blend them in when you blend the onions, etc.?

    Thanks so much for your blog!

  9. Raj says

    This tasted really good except I blended the cinnamon sticks as well. Was I supposed to take them out? The recipe didn’t say to. Now my quadruple batch has the texture of wood :(
    Other than that, it tastes great!

    • says

      Raj, How much cinnamon did you use? You just need a 1-inch piece which, even if you blend it (it needs to be added whole in the recipe) should not create the “texture of wood” in the recipe.

    • Raj says

      Vaishali, thanks for replying!

      Sorry, I’ve never used cinnamon stick before – didn’t really know what I was doing.

      I quadrupled (x4) the batch, so I used 2 cinnamon sticks. Each stick was about 2 inches in length.

      I blended for about 10 minutes with a high speed immersion blender, but I can still feel the tiny woody bits between my teeth.

      I still loved the recipe, but next time I will either fry the cinnamon for longer to make it more brittle, or instead just remove it before blending.

    • says

      Raj, 2 cinnamon sticks is fine, but as you guessed the immersion blender did not puree them well enough. Also don’t use the big, thick cinnamon sticks you get here in the US, but preferably the thinner bark you find at Indian stores which is softer. If you use the big round ones, add only half as much.

  10. Anonymous says

    I liked d pic so much that i brought tofu for the 1st time & tried this recipe. I skipped some things n simply stir fried d tofu instead of marinating.I had less time n not all ingridients. But it turned out to b good. Thank you so much

    • says

      I haven’t. But I love eggplant enough to say that even if it is not delicate enough to be a natural makhani ingredient, it would still taste awesome with all of these spices. Mushroom would perhaps work even better.

    • says

      Laina, cardamom adds a great, distinct flavor. You can leave it out and it would be delicious still, although if you can find it I’d definitely recommend adding it.

        • says

          Seeds have a very different flavor from the leaves– they are much more bitter, so don’t use them. Just leave it out. And if you’re using powdered cinnamon, use no more than 1/2 a teaspoon and don’t roast it– just add it to the other spices before blending. Cheers.

  11. Rachana says

    Hi Vaishali,
    How are you? Thanks for giving such wonderful recepies,I made tofu Makhani came out really nice. Tofu is good sub for Paneer.
    Thanks once again.

  12. Martha Palomino says

    Holy Cow is right! this dish was amazing! I have been cooking Indian food for the last two months and this has been the best recipe. Thank you!

  13. Chessie says

    There aren’t enough thumbs in the house to give this recipe the “thumbs up” it deserves, unless I used my big toes. What a wonderful gravy with all those spices–heaven!

    This would probably work just as well with lentils or even kidney beans in place of the tofu, wouldn’t it? I’m definitely going to make this again, and I may try that variation the next time.

    • says

      Hi Catherine, so thrilled you liked the Tofu Makhani– definitely one of my favorite recipes to cook and eat. Thanks for letting me know!
      Yes, it would definitely work with lentils or beans or both. There is a version of this called Dal Makhani which is very similar, and that’s made with beans and lentils.

      • Chessie says

        I made this yesterday for a couple of friends, using lentils this time, and it was delicious. We all feasted on it. The flavorful gravy is so, so good. I have a feeling that I will return to this recipe many more times.

  14. Bay teuil pandan says

    Thank you so much Vaishali for sharing this recipe! It’s such a refined dish that I consider it as a special treat for grand occasions. Then, I plan to cook it for Xmas. Ok, I admit I’m also keen to educate my French-conservative-meat eaters in-laws with delicious vegan, Indian cuisine :-p
    My mom didnt know about methi and she fell in love with it :) I cant believe I taught her something when it comes to food!

    My very slight tweaks to your recipe:

    1. I’d par-boil the tomatoes -note the plural because the prep being quite involving, I’d always double the amount of ingredients- and then, remove the skin. I always take this step, whenever I’m cooking your tomato curry (my hubby’s all time fav!) or an Italian pasta sauce. Thats because tomato skin tends to lend an exaggerated sourish flavour to slow cooking dishes. Btw, I learnt that trick from you hehehe

    2. Jaggery being hard to find in my area, I sub with Thai palm sugar (nam tan kathi) to taste

    3. I feel more comfortable with using whole spices only and prep them apart: ie., dry roasting them and pounding them in granit mortar beforehand

    4. Tofu would be rubbed and marinated overnight before being oven-baked, instead of sautéed.

    Thanks again for educating us with your blog Vaishali!
    Hugs massive xxx

  15. Lynnsey says

    I did not have a few of the ingredients, but it worked out. This was really delicious. I was glad to try a more complex Indian recipe. Stepped up my Indian curry game here. Thanks!

  16. Larissa says

    Absolutely delicious! My whole family loved it and I will be making it again soon. I pulled the cloves and cinnamon before blending and the texture was smooth as silk even without adding the “butter” at the end. Thanks for a great recipe.

  17. Tomaitoe says

    This is such a fabulous recipe. I have made it several times now, for both vegans and meat eaters alike. Everyone loves it and asks for the link to the recipe. I now make a double recipe of the sauce and freeze half of it. That way, I only need to fry up the tofu for a weeknight dinner. Thanks so much for sharing it!!

  18. venkat says

    Loved the recipe,impressed my wife as well :) Tried it and it came out wonderfully well!!!.Adding maple syrup definitely gave that special taste.Thanks for posting a wonderful recipe..

  19. Jenny Forrest says

    Yummy! I added pulped tamarind and some creamed coconut to it as well. Cashews partly substituted by ground almonds- worked well.

Leave a comment!