A rich and creamy curry, beautifully spiced without being too hot, and the perfect centerpiece for an Indian feast. Firm tofu replaces paneer or chicken, and is bathed in a sauce that is sumptuous, aromatic, and buttery.
I love Indian food; the sheer variety is mind-boggling and combinations of spices, flavours, and textures provide a near endless supply of inspiration. So to say that this is my new favourite curry is a big statement, but I’m feeling bold. For me, this is food heaven.
I’m pretty sure I attempted a paneer butter masala years ago, before I was vegan, and was not blown away. I can’t remember the specifics of the recipe but for something that is named for its butter sauce, it seemed lacking in butter, and flavour in general. But this version, despite being vegan and therefore not actually containing butter, is every bit as rich, creamy and unctuous as I had hoped that initial attempt would be.
The key to a really delicious sauce is firstly, your butter alternative. I recommend Naturli Vegan Block – it’s organic, palm-oil free and basically tastes like butter. If you can get your hands on an alternative vegan butter block then go for that, otherwise the most buttery vegan spread you can find. The other essential is good quality fresh tomatoes. Tinned tomatoes are too acidic, and the cheapest supermarket tomatoes don’t have nearly enough flavour. Aside from these, I’ll provide you will as many alternatives and substitutions as I can.
How to make tofu butter masala
This curry is surprisingly quick to make, considering the depth of flavour that results. You start with the base of the sauce; onions, aromatics, some of the spices and the fresh tomatoes. They get fried, then whizzed in a blender or food processor until they form a smooth paste, which is then returned to the pan to be cooked down a little. Then it’s simply a case of adding a some water and seasoning, a few extra spices, the tofu, and a drop of vegan cream.
So to begin, put a small handful of cashews in a heat-proof bowl, pour over 150ml of boiling water, and set aside. Then place a large pan over a medium heat, with 2 tbsp vegan butter. Roughly chop an onion and add to the pan, along with half a cinnamon stick and 2 broken dried kashmiri chillies (you can buy these in Indian supermarkets or supermarkets with a good world food section). You can use powdered spices as an alternative, in which case these need to be added a little later on so they don’t burn. Cook the onions for 10–12 minutes until soft and just starting to brown – you may need to turn the heat down a little if they’re colouring too quickly.
While the onions are cooking, crush or grate the ginger and garlic and roughly chop the tomatoes. If you have tofu that needs pressing, now would be a good time to do it. I like using Tofoo as their extra firm tofu can be used straight away, but other brands will often need some of the liquid squeezed out. In which case, wrap the tofu in some kitchen paper or a clean cloth, place in a shallow dish, and weigh down with something heavy – another dish with some tin cans, or a chopping board stacked with cook books, for example.
Once the onions are soft and glistening, add the ginger and garlic and stir for a minute, then add some mild chilli powder, and any substitute ground spices. Stir for another minute, then add the tomatoes. Cook for 4–5 minutes until the tomatoes are starting to break down, then remove from the heat. Once the mixture is cool enough to blend, scrape into the bowl or jug of your food processor or blender along with the cashews and their water, and blitz until completely smooth.
Return the pan to a medium heat along with another tablespoon of vegan butter, and once hot, pour in the paste. Stir frequently, for about 10 minutes, until the sauce is thick and reduced. Then, add some water until the sauce is at your desired consistency. I like a relatively thick sauce, and somewhere between 250 and 300ml water did the job. Stir in a little sugar, salt, some garam masala, and some fenugreek – kasuri methi (which is dried fenugreek leaves) are ideal, but otherwise a little ground fenugreek is fine. Add the tofu and cook for a few more minutes until everything is hot through, then remove from the heat and stir in a couple of tablespoons of vegan single cream.
You can artfully drizzle a little extra cream over the curry to serve if you’re feeling fancy. Serve with a steaming pile of basmati, some fresh chapati, or it’s particularly good with some soft and fluffy garlic naans. You can use whatever side dishes you desire – I went for some shredded kale, stir-fried with some garlic, curry leaves and black mustard seeds. Use the naan to scoop up the tofu chunks and mop up the sauce, get a little messy, maybe employ a napkin to protect your clothing, and enjoy.
Please let me know if you give this a try! I would love to hear how you get on. You can comment below or use the star rating at the top of this post, or tag me on Instagram or Twitter @greedybearbakes.
Vegan Tofu Butter Masala
A rich and creamy curry, beautifully spiced without being too hot, and the perfect centerpiece for an Indian feast.
- 30g cashews (approx. 20 nuts) + 150ml (½ cup) boiling water
- 3 tbsp vegan butter (I use Naturli Vegan Block)
- 1 medium onion
- ½ cinnamon stick (or ½ tsp ground cinnamon)
- 2 dried kashmiri chillies, broken (sub. 1 tsp paprika and ¼ tsp cayenne)
- 4 garlic cloves
- 3cm piece of ginger
- ½ tsp mild chilli powder
- 300g (about 3 medium) good quality fresh tomatoes
- 250–350ml (1–1.5 cups) water, to thin
- ½ tsp sugar
- ½ tsp salt
- ½ tsp garam masala
- 1 tsp kasuri methi (or ½ tsp ground fenugreek)
- 400g (14oz) firm tofu (I use Tofoo)
- 2–3 tbsp vegan single cream
- In a heat-proof bowl, pour 150ml boiling water over 30g cashews and set aside.
- Place a large pan on the hob over a medium heat, and add 2 tbsp vegan butter. Roughly chop 1 medium onion and add to the pan along with ½ cinnamon stick and 2 dried kashmiri chillies, broken (if you are using ground spices instead, add these later). Cook for 10–12 minutes until the onions are soft and starting to brown.
- While the onions are cooking, press your tofu (if necessary). Crush or grate 4 garlic cloves and 3 cm ginger, and roughly chop 300g fresh tomatoes.
- Once the onions are soft, add the garlic and ginger and stir-fry for 1 minute, then add ½ tsp mild chilli powder (and any ground spice subtitutes for the cinnamon stick and dried chillies). Stir fry for another minute, then add the chopped tomatoes. Cook for 4–5 minutes, stirring often, until the tomatoes are starting to break down, then remove from the heat.
- Once the tomato mixture has cooled a little, add to your food processor or blender along with the cashews and their water. Blitz until you have a smooth paste, adding a splash more water to help it along if necessary. Return your pan to a medium heat with the remaining 1 tbsp vegan butter, and add the paste. Cook for 10 minutes, stirring regularly, until the paste is thick and reduced.
- Start adding water to the sauce, little by little, until it’s a thick but pourable consistency. I used between 250 and 300ml water but you might want a little more. Then add ½ tsp sugar, ½ tsp salt, ½ tsp garam masala and 1 tsp kasuri methi (or ½ tsp ground fenugreek).
- Chop the tofu into large chunks, about 3–4 cm, then stir into the sauce. Cook for a few minutes until everything is hot through, then finally stir in 2 tbsp vegan single cream (you can drizzle over the extra tablespoon for a final flourish).
- Serve with steaming hot rice, fresh chapati, roti or naan. Any leftovers will keep in the fridge for up to 5 days in an airtight container.