One-Pan Creamy Vegan Butter Chicken
This vegan butter chicken swaps dairy for full-fat coconut milk and swaps the chicken for golden seared tofu. It is rich, warmly spiced, and comes together in a single pan.

The recipe skips a long marinade and keeps the ingredient list short, so you can have a satisfying weeknight dinner on the table in about 45 minutes.
What Makes This Dish So Good
The coconut milk gives the sauce a velvety texture without any dairy, and the spices are balanced, not overpowering. The tofu soaks up the creamy gravy so each bite is tender and full of flavor.
Because it all happens in one pan, cleanup is simple. You get a restaurant-style meal that tastes like it simmered all day, but the active work is under half an hour.
Ingredients

- 14 oz extra-firm tofu, pressed and cubed: firm enough to hold shape in the sauce.
- 1 tbsp neutral oil: for searing the tofu.
- 1 medium yellow onion, diced
- 3 cloves garlic, minced
- 1 inch fresh ginger, grated
- 2 tsp garam masala
- 1 tsp ground cumin
- ½ tsp turmeric
- ½ tsp cayenne pepper: optional, for a little heat.
- 1 can (14 oz) full-fat coconut milk: the base for that creamy texture.
- 3 tbsp tomato paste
- 1 tbsp vegan butter or more oil: adds a buttery finish.
- 1 tsp salt, plus more to taste
- Fresh cilantro and cooked basmati rice, to serve
Variations / Substitutions
- Swap the protein: chickpeas (one 15 oz can, drained) work great instead of tofu and need no searing.
- Make it nut-free: the recipe is already nut-free, using coconut milk instead of cashew cream.
- Adjust the heat: leave out the cayenne for a mild sauce or add a pinch more if you like spice.
- Cream alternative: for a coconut-free version, blend ½ cup raw cashews with ½ cup water until smooth and use that in place of the coconut milk.
If you enjoy this, try my Creamy Coconut Chickpea Curry for another plant-based favorite.
How to Make Vegan Butter Chicken
Step 1: Sear the Tofu

Warm the 1 tbsp oil in a large skillet over medium-high heat. Add the cubed tofu in a single layer and cook for about 5 minutes, turning a few times, until the edges are golden and crisp.
You are looking for a light brown sear on at least two sides. The tofu will release a gentle sizzle; if it is silent, raise the heat slightly. Move the tofu to a plate once done.
Step 2: Sauté the Aromatics

Lower the heat to medium and add the vegan butter (or an extra drizzle of oil) to the same pan. Toss in the onion, garlic, and ginger and cook, stirring now and then, for about 5 minutes, until the onion turns soft and glossy.
The kitchen should smell sweet and fragrant. Stir in the garam masala, cumin, turmeric, and cayenne and let them toast for 30 seconds. This quick bloom wakes up the spices before the liquid hits the pan.
Step 3: Simmer the Sauce

Add the tomato paste and 1 tsp salt, stirring it into the onion mixture for 1 minute so it darkens slightly. Pour in the full can of coconut milk and scrape up any browned bits from the bottom of the pan.
Bring the sauce to a gentle simmer, then reduce the heat to low. Let it bubble softly for 15 to 20 minutes, stirring occasionally. The sauce will thicken and the orange color will deepen. A spoon dragged across the bottom should leave a trail for a second before filling back in.
Step 4: Finish with Fresh Herbs and Serve

Return the seared tofu to the pan and stir it into the sauce. Let everything warm through for 2 to 3 minutes, then remove from the heat. Spoon the curry over bowls of hot basmati rice and scatter plenty of fresh cilantro on top.
The tofu will be coated in the rich, creamy gravy, and the cilantro adds a bright pop. Serve right away while the sauce is still loose and steamy.
Tips for the Best Vegan Butter Chicken
- Press the tofu well: wrap the block in a clean kitchen towel, set a heavy pan on top, and let it sit for 10 minutes. Drier tofu sears better and drinks up more sauce.
- Full-fat coconut milk matters here. Light versions will leave the sauce thin and less silky. Shake the can before opening to mix the cream and liquid.
- Taste and tweak the salt at the end. Coconut milk can mute seasoning, so a small extra pinch often makes the whole dish pop.
- If the sauce thickens more than you like, stir in 2 to 3 tbsp of water or vegetable broth to loosen it back up before serving.
Storing Leftovers
- Refrigerate: Cool the curry and store it in a sealed container for up to 4 days. The flavors get even better the next day.
- Reheating: Warm gently in a pan over low heat, adding a splash of water if the sauce has thickened. You can also microwave it in short bursts, stirring halfway through.
What to Serve with Vegan Butter Chicken
A pile of steamed basmati rice is the classic base, and warm naan or roti is perfect for scooping up every last bit of sauce. A simple cucumber and red onion salad dressed with lime juice and a pinch of salt cuts the richness of the coconut cream nicely.
If you want a green vegetable on the side, quick-sautéed spinach with a little garlic works well. The earthiness of the spinach plays off the warm spices without competing.
Frequently Asked Questions
Can I use light coconut milk?
You can, but the sauce will be thinner and less creamy. If light is all you have, add 1 tbsp of cornstarch mixed with 2 tbsp cold water during the last 5 minutes of simmering to help thicken it.
Is this recipe gluten-free?
Yes, all the ingredients are naturally gluten‑free. Just check your spice blends and tomato paste labels to be sure no gluten was added for processing.
Can I make it ahead and freeze it?
Yes. The curry freezes well for up to 2 months. Thaw overnight in the fridge and reheat slowly, stirring in a little water as needed.
What if I don’t have garam masala?
Use 1 tsp each of ground coriander and ground cardamom, plus a pinch of ground cloves. The flavor will be slightly different but still warmly spiced and delicious.

Vegan Butter Chicken Recipe
Ingredients
Method
- Sear the tofu in oil in a large skillet over medium-high heat for about 5 minutes, until golden on the edges. Remove and set aside.
- Lower heat to medium, add vegan butter, and sauté the onion, garlic, and ginger for about 5 minutes until softened. Stir in the spices and cook 30 seconds.
- Add the tomato paste and salt, stir for 1 minute, then pour in the coconut milk. Simmer on low for 15 to 20 minutes, stirring occasionally, until thickened.
- Return the tofu to the pan, warm through for 2 to 3 minutes, then serve over rice with fresh cilantro.
