My recipe for Indian restaurant style tofu makhani with chunks of creamy tofu in a delicately spiced, richly flavored curry sauce.

Table of Contents
If you love Indian food, you are likely familiar with dishes like dal makhani and paneer makhani with their signature orange, velvety sauce. I created this tofu makhani in 2011 to riff off those dishes, while keeping this recipe fully vegan.
This is an easy recipe that takes just 30 minutes to make, and it's perfect for anyone who doesn't have hours to create a complicated, restaurant-style dish. If you don't eat tofu, you can use this sauce with any protein, including beans and lentils.
I build layers of flavor in the makhani sauce with spices, fresh tomatoes and onions. Tomato paste adds umami. Makhani sauce is so called because it gets its creamy texture from "makhan" or butter. Cream is also added toward the end of cooking. For this vegan makhani I use cashew cream and vegan butter with fantastic and authentic tasting results. The tofu, my substitute for paneer, absorbs the creamy sauce and becomes deliciously soft and puffy.
The flavor of this makhani is a pleasant surprise: complex, creamy and mildly, delicately spicy, not fiery hot as curries can often be. Serve it for dinner with vegan naan or roti, or with basmati rice with vegan cucumber raita on the side.
Unbelievably delicious with depth and layers of flavours coming through - the best ever! - Susan
Recipe card

Tofu Makhani
Ingredients
Marinated tofu
- 14 ounces extra-firm tofu (press out all water and cut the tofu into four slabs)
- 1 teaspoon ground coriander
- 1 teaspoon ground cumin
- ¼ teaspoon Kashmiri chilli powder (or paprika)
- ¼ teaspoon turmeric
- 1 tablespoon lemon juice
- Salt to taste
- 1 tablespoon avocado oil or any neutral oil
Makhani curry
- 1 teaspoon avocado oil or any neutral oil
- 4 green cardamom pods
- 4 cloves
- 10 black peppercorns
- 1-inch piece cinnamon
- 1 onion (diced)
- 1 large tomato (diced)
- ¼ cup tomato paste
- 1 tablespoon ginger garlic paste
- 1 tablespoon ground coriander
- 1 teaspoon ground cumin
- ½ to 1 teaspoon Kashmiri chilli powder (or paprika)
- ¼ cup raw cashews
- 2 cups water (or vegetable stock)
- 2 tablespoons kasoori methi (dry fenugreek leaves. Crush them between your palms when you add them to the sauce)
- 1 teaspoon sugar
- 1 tablespoon vegan butter
- 2 tablespoons cilantro (chopped, for garnish)
Instructions
Prep tofu
- Place spices for tofu marinade -- turmeric, ground coriander, ground cumin and Kashmiri chili powder or paprika -- in a bowl along with lemon juice.

- Whisk to mix.

- Add tofu slices to the bowl and coat each slice on all sides with the marinade.

- Heat a tablespoon of oil in a large pot or Dutch oven over medium heat (use an enameled pot or non-stick pot to ensure tofu doesn't stick). Add the tofu slices and sear them on all sides until a light crust forms. This should take no more than two minutes per side.

- Remove the tofu to the bowl you made the marinade in and let it cool enough to handle, then cut the tofu into ½-inch cubes. Set aside.

Make makhani curry
- In the same pan or Dutch oven that you fried the tofu, heat a teaspoon of oil over medium heat. Add the whole spices: peppercorns, cinnamon bark, cloves and cardamom. Saute for a minute.

- Add the onions along with a pinch of salt. Sauté the onions until soft, not brown, 2-3 minutes.

- Add the tomatoes, tomato paste, ginger garlic paste, ground coriander, ground cumin and Kashmiri red chilli powder or paprika to the pot. Mix and cook, covered, until the tomatoes break down and are very soft, about 3-4 minutes.

- Stir in the cashews and continue sauteing for a couple of minutes.

- Add a cup of water, mix, and turn off heat. Once the mixture has cooled a little, remove it to a blender.

- Blend it into a smooth sauce. You can also do use an immersion blender to blend the curry in the pot itself. Pour the blended sauce back into the pot. Stir in sugar and kasoori methi.

- Bring the sauce to a boil over medium heat. Continue to cook for 5 minutes, stirring frequently. The gravy will thicken, so add another cup of water to thin it out. Stir in the tofu cubes and warm through for 2-3 more minutes.

- Stir in the vegan butter, add cilantro, and turn off heat.

Notes
- You can use vegetable stock instead of water to make the curry, adding another layer of flavor to the tofu makhani.
- Soy-free: Use the makhani sauce with chickpea tofu or another protein that is soy-free, including vegan chicken chunks. You can skip the meat substitutes and use veggies like mushrooms or eggplant.
- Low-carb: This recipe has just 13 net carbs, making it a great inclusion in a low-carb, high-protein diet. If you are looking for more protein, use high-protein tofu instead of extra-firm. Serving the tofu makhani with quinoa will bump up the protein and fiber content of the meal.
- Nut-free: Use pumpkin seeds instead of cashews.
Nutrition Information
To print recipe card without images, uncheck "instruction images" after clicking the "print recipe" button.

Recipe first published December 13, 2011. Updated and re-published on July 19, 2024.














Eimear Moss says
Absolutely stunning curry! Find me a better recipe, you won't!?
Vaishali says
?❤️
Nandita says
Probably the first time I have made this dish at home. Followed this recipe and it turned out amazing! I didn't have fresh tomatoes, I used a puree. Skipped on cardamom and cloves - didn't have those either, used bay leaves. Still, it was so good! Also added a bit of coconut cream instead of (vegan) butter. 🙂 This is better than I've had at most restaurants!
Vaishali says
So happy you loved it!
steven says
This recipe has become a family favourite and I know make this once a fortnight. Instead of tofu I use sweet potato, oven bake, marinate, and pan fry to seal the flavours. I've sometimes substituted cashew nuts with almonds and there's no real difference in taste. Delicious! 🙂
Gail says
Thank you for the sweet potato tip. I have sweet potatoes on hand but not tofu, will give this a try
Vaishali says
Hi Gail, hope you love it as much as we do!
Vaishali says
So great to hear Steven! Thanks for letting me know. ❤️
Anonymous says
Hi Vaishali , this tofu recipe is simply
yummy . I am not very fond of tofu , but
cooking it this way is really very rich and
extremely delicious . Once I used toasted
peanuts instead of cashews, it was equally
yummy . Thanks a lot for your easy and
delicious recipes . God bless you dear .
Vaishali says
Thank you ❤️
Christina Teasley says
I've never been able to make good Indian food like I find in Indian restaurants until I found this recipe! Blending the spices, tomatoes, etc. Genius! Grating garlic? Never tried it before but will continue to do so in the future. Thank you so much! I left out the fenugreek and used regular cashews because it's all I had and it was still amazing!
Vaishali says
So happy you loved it!
Rana says
Hello,
Do you remove the whole spices before blending the sauce?
Thanks
Vaishali says
No, leave them in!
Ipsita says
Turned out really nice.. Thank you..
Anonymous says
Made this today with minor changes. I put silken tofu instead of the cashews, and extra maple syrup because I didn’t find dried fenugreek leaves. I added eggplant, cauliflower, peas and carrots to it too. It tasted absolutely delicious!
Thank you for this great recipe.
Vaishali says
Great additions!❤️
Mary says
Can I use ground fenugreek instead of leaves?
I feel like I want to add some vegetables to this dish- what would work well?
Vaishali says
The fenugreek seed is much more bitter so if you can’t find the leaves just leave it out. You can try potatoes, sweet potatoes, zucchini, bell peppers, eggplants or cauliflower.
Piya says
Thank you for the lovely recipe and directions. It was delicious!
Sharon Ley says
Thank you so much for sharing Vaishali! I do eat meat and having been wanting to eat less (or none). As I’m a big fan of Butter Chicken I wanted to try your vegan version. I made it exactly to your recipe (except I used one can of chopped tomatoes without the tomato paste and I removed cinnamon stick before blending). Oh my!!! This is a wonderful and already favourite recipe! The gravy is exquisitely rich and complex and the tofu surpringly soft and flavourful. I considered just putting it in at the end to preserve the crunchy fried skin but found it tough after frying. So I did what you said and cooked it in the gravy for ten minutes and it became so deliciously soft! I’m so excited to make this for my vego and carnivorous folk, it feels like a special meal and I love that it is cruelty free. It’s exciting to know full rich flavours can be enjoyed in vegan food and I’ll be trying your other recipes 🙂 Thank you!
Vaishali says
What a lovely message and so happy you enjoyed this meatless dish!
Shobana says
Tried this and it was amazing
I mean like it was the best tofu I have ever had
Awesome recipe
Vaishali says
Shobana, so glad you tried it!
Alpa says
Can I substitute almonds instead of Cashews as my daughter is allergic to cashews? Is there a substitution amount difference in doing so for consistency of sauce?
Vaishali says
Hey Alpa, substitute the same quantity of almonds!
yormaw says
Thanks. I substituted the cashew nuts for almonds and the lemon for tamarind 🙂 Pretty good, though I think I'll go a bit easier on the spices and add fresh chilli next time.. oh and have some lemons and cashew nuts in the house 🙂
Dana B says
WOWZA. I was craving Butter Chicken and this really nipped it in the bud spot on. I live in Dubai, which means given the massive Indian population, finding the ingredients in my local, regular super market is a breeze (it's an Indian-owned company). The only item I couldn't find were the dried fenugreek leaves and I didn't have the patience to go to another store (it was 130f when I went shopping!). But, I do have a stash of maple syrup that did the job nicely. Looking forward to trying more of your recipes. Next time, I'll triple the sauce.
Vaishali says
So happy to hear!
Nora says
Made it last night, very very yummm! Do you have any positive experience with putting the Makhani curry in the freezer?
Vaishali says
Freezing would affect the texture of the tofu, but the curry itself should be fine to freeze.
Nora says
Thanks! It's just the curry I would like to freeze. Next time I'll triple it and give it a try ?
Steven says
made this tonight, was amazing!
Chital Mehta Jey says
I made this..came out great. Thanks for sharing
Barbara says
This was easy and tastes great! Thank you for the recipe, it will be added to my very favorites
shivali says
Hey Vaishali,
As a 20 something vegetarian new to cooking your website has been a blessing. I tried the tofu makhani tonight, it was scrumptious and my parents loved the dish. They couldnt even tell the difference between paneer and tofu, a healthy hit for my family. Thank you!
Jennie says
This is amazing! Thank you so much for a fabulous recipe.
Julia Croft says
It was absolutely gorgeous,a great recipe, thank you. I didn't have any vegan butter so added coconut yoghurt (alpro) for a bit more richness, and no extra sweetness needed.
Vaishali Honawar says
Julia, so glad you tried it. Thanks for letting me know.
Jenny Forrest says
Yummy! I added pulped tamarind and some creamed coconut to it as well. Cashews partly substituted by ground almonds- worked well.
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..
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!!
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.
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!
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
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.
Vaishali Honawar 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.
Vaishali Honawar says
Hi Catherine, so glad you tried it with the lentils. I love Dal Makhani too, one of my all-time favorites. Thanks for letting me know! 🙂
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!
Vaishali says
Martha, so glad you liked it!