This dish features tender chickpeas in a rich and aromatic tomato-coconut sauce, infused with garam masala and warming spices. The curry simmers until creamy and flavorful, then is paired perfectly with fluffy basmati rice. Fresh cilantro and a hint of lemon brighten the dish, offering a harmonious balance of spice and freshness. Ideal for plant-based diets, this comforting meal combines traditional Indian flavors with wholesome ingredients.
I discovered this recipe on a rainy Tuesday when my friend texted asking if I could veganize her favorite tikka masala—she'd just cut out dairy and was convinced she'd have to give up her beloved curry forever. Two hours later, after my kitchen smelled like heaven and we were both stirring the pot like we were conducting an orchestra, she took one bite and laughed, saying she couldn't tell the difference. That coconut milk, it turns out, was the secret she'd been missing all along.
I made this for a dinner party once and watched my non-vegan guests dig in without even noticing it was plant-based until dessert rolled around. One person asked what fancy cream I'd used, and when I told her it was coconut milk and patience, she demanded the recipe. That's when I realized this wasn't about substitution—it was about doing something better than the original.
Ingredients
- Coconut oil or olive oil (2 tbsp): Coconut oil gives a subtle warmth that complements the spices beautifully, but olive oil works if that's what you have—the difference is gentler than you'd expect.
- Large onion, finely chopped: This is your foundation, so don't rush the chopping; the smaller and more even the pieces, the better they dissolve into the sauce.
- Garlic cloves (3) and fresh ginger (1-inch piece): Mince them as fine as you can—these are what give the sauce its soul and prevent any harsh raw edges in the final dish.
- Green chili (1, optional): I keep this optional because spice tolerance varies wildly, but it adds a fresh, bright note that rounds out the earthiness of the spices.
- Garam masala (2 tsp), cumin (1 tsp), coriander (1 tsp), paprika (1/2 tsp), turmeric (1/2 tsp), cayenne (1/4 tsp optional): Toast these together for a full minute—it's the difference between a flat sauce and one that sings on your tongue.
- Canned chopped tomatoes (1 can, 400 g): Use quality tomatoes if you can; they're the backbone of your sauce, and watery canned tomatoes make watery curry.
- Full-fat coconut milk (1 can, 400 ml): Never reach for light—this is where the cream and richness come from, and skimping changes everything.
- Chickpeas (2 cans, drained and rinsed): Rinsing removes the starchy liquid that can make the sauce cloudy, so take the 30 seconds to do it.
- Salt (1 tsp), black pepper (1/2 tsp), maple syrup or sugar (2 tsp): The sweetness balances the acidity of the tomatoes and spice, so taste as you go and adjust to your preference.
- Lemon juice (1/2 lemon) and fresh cilantro (2 tbsp plus garnish): These finish the dish with brightness—add the juice last so it doesn't cook off and lose its snap.
Instructions
- Prepare the Rice First:
- Rinse your basmati rice under cold running water, stirring gently with your fingers until the water runs completely clear—this removes excess starch and prevents gluey rice. Combine the rinsed rice, water, and salt in a saucepan, bring to a boil, then cover and drop the heat to low for exactly 15 minutes, letting the steam do its work while you focus on the curry.
- Build the Aromatic Base:
- Heat your oil in a large skillet over medium heat and add the chopped onions, letting them soften and turn golden for about 5 to 7 minutes—you'll smell when they're ready, that sweet, caramelized aroma. Once they're soft, add your garlic, ginger, and chili, stirring constantly for another minute until the kitchen smells like an Indian spice market.
- Bloom the Spices:
- Sprinkle in all your dry spices and toast them for exactly one minute, stirring the whole time—this wakes them up and prevents that dusty spice taste. You'll notice the aroma deepen and change; that's when you know they're done.
- Build the Sauce:
- Add your chopped tomatoes and let them cook down for about 5 minutes, stirring occasionally—they'll start to break apart and create a thick paste that smells incredible. Pour in the coconut milk slowly, stirring to combine, then add the drained chickpeas, salt, pepper, and sweetener.
- Simmer Until Creamy:
- Bring everything to a gentle simmer and let it cook uncovered for 15 to 20 minutes, stirring occasionally—the sauce should go from thin and separated to thick and cohesive, coating the chickpeas like a luxurious blanket. You'll know it's ready when a spoon dragged through the middle leaves a brief trail before the sauce flows back to fill it.
- Finish with Brightness:
- Turn off the heat and stir in your lemon juice and cilantro, tasting as you go to adjust the salt or spice level. Let it rest for a minute while you fluff the rice with a fork.
I remember standing in my kitchen at dusk, stirring this curry while my partner set the table and soft music played in the background. When we finally sat down and I watched someone who'd been vegan for three months smile at their plate like they'd just been reunited with an old friend, I understood that good food isn't about what's missing—it's about what you create in its place.
The Magic of Coconut Milk
The first time I made Indian food without dairy, I kept waiting for something to feel wrong, like I was playing a version of the recipe rather than the real thing. But that full-fat coconut milk, when simmered slowly with tomatoes and spices, transforms into something that tastes less like a substitution and more like a different—arguably better—way of making curry. The coconut doesn't announce itself; instead, it rounds out the spices and adds a subtle sweetness that coconut-free versions have to chase with extra sugar. I've since learned that some of the most traditional tikka masalas in Northern India use coconut milk anyway, so there's nothing second-rate about this approach—it's just a different story with the same happy ending.
Chickpeas as the Star
Chickpeas deserve better than being treated as a substitute in curry; they're a legume with a buttery texture and mild flavor that actually benefits from a long simmer in spiced sauce. Unlike some proteins that can become stringy or tough, chickpeas get creamier the longer you cook them, absorbing the flavors around them like little flavor sponges. I used to think of them as filling, but now I think of them as the ideal vehicle for this sauce—substantial enough to make the meal feel complete, gentle enough not to fight with the spices, and actually better for you than cream or meat ever could be.
Serving Suggestions and Variations
This curry is humble enough to eat with just rice, but it also loves company—a side of cool cucumber raita (made with vegan yogurt), warm naan, or even a crisp salad all play beautifully with the richness. If you want to elevate it further, try roasting some chickpeas in the oven with garam masala and paprika before stirring them into the sauce; the crispy-edged ones add a textural contrast that feels almost luxurious. Leftovers last three days in the fridge and actually taste better the next day, once the spices have had time to fully settle into the sauce and deepen.
- Roasting chickpeas beforehand adds a crispy texture that contrasts beautifully with the creamy sauce.
- Serve alongside vegan naan, cucumber raita, or a simple green salad to balance the richness.
- This freezes well for up to three months, so double the recipe and thank yourself later on a busy weeknight.
There's something quietly powerful about mastering a dish that feels like it belongs to someone else's culture, doing it with respect and hunger, and ending up with something that feeds both your body and your sense of possibility. This curry reminds me every time I make it that plant-based cooking isn't about absence—it's about abundance in a different form.