Most vegan butter chicken recipes lean on cashews or a blender for their creaminess, and even then the sauce can turn grainy the moment it gets too hot. This version skips both. The tofu bakes with a spiced cornstarch coating until the edges crisp, and the sauce comes together in one pan from tomato paste, crushed tomatoes, and full-fat coconut milk, thickened by simmering rather than by a blade. It tastes rich and gently spiced, close to the restaurant dish, with no dairy and no nuts anywhere in it.
The move that keeps the sauce silky is adding the coconut milk off the heat, so it never gets a chance to split. I use the same bloom-the-spices-in-fat approach here that I lean on for my vegan gravy: cook the tomato paste with the dry spices until it darkens and smells sweet, then build the rest of the sauce on top of that base. Tofu carries the protein, though this is a natural fit if you already keep homemade seitan on hand. I serve it over basmati rice, with a creamy cauliflower mash or a piece of flatbread on the side, and a chai latte when I want the whole meal to feel like a night out.

Vegan Butter Chicken
Ingredients
Method
- Press the tofu if it is the water-packed kind. Wrap each block in paper towels, set a plate on top, and weigh it down with a heavy pan or a stack of books for 20 minutes. If you bought the vacuum-sealed super-firm tofu, skip this and move straight to the next step.
- Heat the oven to 425F (220C). Line a large rimmed baking sheet with parchment paper and brush it with a little oil. Tear the pressed tofu into rough, bite-sized chunks instead of cutting neat cubes, since the ragged edges give the sauce something to cling to.
- Put the tofu in a bowl and sprinkle over the cornstarch, the garam masala, the salt, and the tablespoon of oil. Toss gently until every piece wears a thin, even coating, then spread the pieces out on the sheet with a little space between them so they roast instead of steam.
- Bake for 25 to 30 minutes, turning the pieces once about halfway through, until they are golden at the edges and crisp enough to rattle on the pan. They will soften slightly once they go into the sauce, so let them get properly crisp here.
- While the tofu bakes, make the sauce. Melt the vegan butter in a large, deep skillet over medium heat, add the onion, and cook for 4 to 5 minutes until it turns soft and translucent. Add the garlic and ginger and stir for 1 minute, just until the raw smell fades.
- Lower the heat and add the garam masala, coriander, cumin, paprika, turmeric, cayenne, and tomato paste. Stir constantly for about 2 minutes, until the paste darkens from bright red to a deeper brick color and the spices smell toasted rather than raw. This step is what gives the sauce its body.
- Pour in the crushed tomatoes, scrape up anything stuck to the bottom, and simmer for 8 to 10 minutes, until the sauce thickens and the raw tomato flavor cooks out. If it starts to spatter, keep the heat low and stir often.
- Take the pan off the heat and stir in the coconut milk, the maple syrup, the salt, and the lemon juice. Adding the coconut milk away from direct heat keeps it from splitting. Return the pan to low heat and let the sauce warm through for 3 to 5 minutes without boiling.
- Fold in the baked tofu and let it sit in the sauce for a couple of minutes to soak up some color. Taste and adjust the salt, lemon, or maple syrup, then serve over basmati rice with cilantro and lemon wedges.
Notes

Tips for Best Vegan Butter Chicken
Small habits decide whether the sauce lands silky or grainy, and most of them come down to heat and timing.
- Take the pan off the heat before the coconut milk goes in. Stirring it into a hard simmer is the quickest way to make the sauce look curdled as the fat separates from the tomato. Add it off the heat, then return the pan to low just to warm everything through.
- Bloom the tomato paste with the dry spices for a full two minutes. Cooking the paste until it darkens from bright red to a deeper brick color builds the body of the sauce and takes away the raw, tinny edge that tomato paste has straight from the jar.
- Press the tofu for at least twenty minutes before it goes near the oven. Water left inside steams the pieces and keeps them soft, and the cornstarch cannot crisp up if the surface is still wet. Super-firm vacuum-sealed tofu is the one kind you can use straight away.
- Tear the tofu into rough chunks instead of cutting clean cubes. The jagged edges pick up more cornstarch and brown faster in the oven, and they hold sauce better than a flat, smooth face does.
- Balance the sauce at the very end with a squeeze of lemon and a spoon of maple syrup. The tomato brings acid and the coconut brings richness, so a touch of sweet and sour keeps the whole pan from tasting flat or heavy.
- For a soy-free version, swap the tofu for two cans of drained chickpeas, patted dry and roasted the same way, or browned soy curls. The sauce is already free of dairy and nuts, so nothing else about it needs to change.
Storage
In an airtight container in the fridge, leftovers keep for three to four days. Reheat gently on the stovetop over low heat, adding a splash of water or coconut milk if the sauce has thickened too much, and keep the rice in a separate container so it does not drink up all the sauce. The dish freezes well for up to two months; thaw it overnight in the fridge and warm it on the stove rather than in the microwave, which can leave the coconut sauce looking split. To get ahead, make the sauce and bake the tofu a day in advance, store them separately, and combine them just before serving.
FAQ
Can I make this dish soy-free?
Yes. Swap the tofu for two cans of drained and patted-dry chickpeas, tossed in the same cornstarch and spice mix and roasted until they firm up and brown at the edges. Browned soy curls or a batch of homemade seitan work too if wheat is fine for you. The sauce is already free of dairy and nuts, so it fits whatever protein you prefer.
Why did my sauce turn grainy?
Graininess almost always comes from heat. Coconut milk splits when it boils hard, or when it is added to a pan that is already at a rolling simmer with acidic tomatoes in it. Take the pan off the heat before you stir it in, keep the sauce at a bare simmer afterward, and do not let it reduce too aggressively. If it does look split, whisk in a spoonful of tomato paste or a little cornstarch slurry to pull it back together.
How spicy is this, and can I adjust it?
It lands mild to medium by default, with the cayenne as the only real source of heat. For a warmer dish, add another quarter teaspoon of cayenne, or a finely chopped green chili along with the onion. To keep it mild, leave the cayenne out and lean on the sweet paprika, then taste at the end and add a pinch only if it needs a lift.
Can I make this ahead or freeze it?
Yes. The sauce can be made up to three days ahead and kept covered in the fridge, and the baked tofu holds for the same stretch in a separate container. Reheat both gently together on the stove. The finished dish freezes for up to two months; thaw it overnight in the fridge and warm it over low heat, since a fast, high reheat can make the coconut sauce look split.
