Main Courses
This authentic Indian chicken curry recipe with coconut milk delivers the perfect balance of fragrant spices and velvety richness in every bite.
The secret lies in slow-cooked layers of flavor—whole spices toasted to release their aroma, tender chicken marinated in yogurt and spices, and coconut milk that gently cools the heat while adding depth.
After years of perfecting this dish, I’ve simplified the process without sacrificing authenticity, so you can recreate restaurant-quality curry at home.
The key to an authentic Indian curry is patience and technique. We start with a dry roast of whole spices like cardamom and cinnamon to build a fragrant base, then layer in onions, garlic, and ginger for a rich foundation.
The chicken marinates overnight in yogurt and turmeric, ensuring tender, flavorful meat. Coconut milk isn’t just a creamy addition—it balances the spices and adds a subtle sweetness that elevates the dish.
By the time you serve this curry, your kitchen will smell like a bustling Indian restaurant, and the sauce will be thick, aromatic, and perfectly spiced. The chicken will be fall-off-the-bone tender, swimming in a sauce that’s creamy yet not overly rich.
Serve it with steamed basmati rice or warm naan to soak up every last drop of that fragrant, spiced goodness.
This recipe works equally well for weeknight dinners or special occasions—just adjust the spice level to your taste. The beauty of coconut milk is its versatility: it mellows the heat while keeping the dish vibrant.
Whether you’re making it for family or friends, this curry will impress with its depth of flavor and authenticity.
Ingredients for authentic indian chicken curry recipe with coconut milk
Here’s what transforms your pantry into an aromatic Indian kitchen—simple spices, tender chicken, and coconut milk’s velvety touch.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Cut into 1-inch pieces |
| Plain Yogurt 🥛 | 1 cup | Full-fat preferred |
| Turmeric Powder 🌿 | 1 tsp | Freshly ground preferred |
| Yellow Onions 🧅 | 1 whole | Finely chopped |
| Garlic Cloves 🧄 | 6 cloves | Minced |
| Fresh Ginger 🌿 | 1 inch | Grated |
| Green Chilies 🌶️ | 2 whole | Slit lengthwise |
| Cardamom Pods 🌿 | 4 whole | Lightly crushed |
| Cinnamon Sticks 🌿 | 2 whole | 2-inch pieces |
| Cloves 🌿 | 4 whole | Whole |
| Coconut Milk 🥥 | 1 can (13.5 oz) | Full-fat preferred |
| Tomato Puree 🍅 | ½ cup | No salt added |
| Garam Masala 🌶️ | 1 tbsp | Store-bought or homemade |
| Salt 🧂 | 1 tsp | Adjust to taste |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The chicken thighs are essential—they stay juicier than breasts during slow cooking. Look for bone-in, skin-on thighs at Whole Foods or your local Indian market for extra flavor. If you can’t find cardamom pods, ground cardamom works, but whole spices toast beautifully for that restaurant aroma. The yogurt should be plain and full-fat—Greek or Indian dahi if you can find it. For the coconut milk, Aroy-D or Thai Kitchen brands are reliable, but any full-fat can works. Fresh ginger and garlic? Buy extra—you’ll want them for other dishes too.
No cardamom? Skip it or use nutmeg at half the amount. Short on green chilies? Cayenne pepper at a quarter teaspoon adds heat without color. The tomato puree can be swapped for crushed tomatoes (1 can, drained), but puree gives you better control over thickness. For garam masala, Penzeys or Spicewalla have great blends, but any brand with cinnamon, cumin, coriander, and black pepper works. The cilantro is optional but adds freshness—skip if you hate it. If you’re making this ahead, the sauce actually improves overnight—trust me on that.
This curry reheats beautifully—just warm it gently on the stove with a splash of water or coconut milk. Keeps 3-4 days in the fridge, 3 months frozen. I always make double batches because it’s perfect for lunches. Store the sauce separately if you want to reheat just the chicken—game-changer for meal prep. Leftovers taste even better the next day as the flavors meld. Garnish with cilantro right before serving—fresh herbs make all the difference.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this curry because it’s actually one-pot—just chicken, onions, garlic, and a few spices simmering together. No chopping boards full of mess, no extra pans to wash. The yogurt marinate does half the work while I prep the rest, and the coconut milk ties everything into that rich, velvety finish without fuss.
- Garlic Bomb: Between us, the garlic here isn’t just background flavor—it’s the star. I double the cloves (yes, really) because that deep, toasted aroma from the onions and garlic is what makes this curry sing. The turmeric gives it that golden hue, but it’s the garlic that makes you go back for seconds.
- Weeknight to Party: This curry is my lazy Sunday dinner and my dinner party secret weapon. Serve it with naan for a casual night in, or drizzle it over basmati rice with a side of raita for guests—same recipe, two totally different vibes. Honestly, I’ve even reheated leftovers for lunch the next day, and no one’s complained.
- Budget Stretch: Chicken thighs are forgiving and cheap, and a single batch feeds four (or two very hungry people). The yogurt and coconut milk add luxury without breaking the bank, and the spices last for ages. I’ll be real: this recipe saved me from takeout more times than I can count—especially when I’m low on cash but still craving something special.
Step-by-step instructions for authentic Indian chicken curry with coconut milk
This curry delivers restaurant-quality depth with fragrant spices and velvety coconut milk—just one pot, no shortcuts.
Marinate the Chicken for Maximum Flavor
In a large bowl, combine the 1.5 lb boneless chicken thighs (cut into 1-inch pieces) with the 1 cup plain yogurt, 1 tsp turmeric powder, 1 tsp salt, and 1 tbsp garam masala. Mix gently until every piece is fully coated in the marinade. Let it sit at room temperature for 15 minutes—this ensures even flavor penetration and tender results.
Here's the thing—don't skip the marinating. The yogurt tenderizes the chicken while the spices infuse deeply. If you're short on time, at least 10 minutes will help, but 30 minutes in the fridge gives even better results. You'll notice the chicken absorbs the marinade and becomes slightly glossy, which means it's ready for cooking.
Bloom the Whole Spices in Oil
Heat 2 tablespoons neutral oil (like vegetable or canola) in a heavy-bottomed pot over medium heat. Add the 2 whole cinnamon sticks, 4 whole cardamom pods, 4 whole cloves, and 2 slit green chilies. Let them sizzle for 30 seconds until you smell that warm, aromatic fragrance—this is when the spices truly wake up and release their oils.
Watch closely—if the oil starts to smoke, reduce heat slightly. You want the spices to gently toast, not burn. After 1 minute, add the 1 whole finely chopped yellow onion and cook until softened (5-6 minutes). Then stir in the 6 minced garlic cloves and 1 inch grated fresh ginger, cooking for another 1-2 minutes until fragrant. This aromatic base is the soul of your curry.
Cook the Chicken Until Golden
Add the marinated chicken to the pot in a single layer. Cook undisturbed for 3-4 minutes until the pieces develop a golden crust—this creates texture and prevents dryness. Once the bottom is well-seared, gently stir and cook for another 3-4 minutes until the chicken is no longer pink in the center. You'll see the marinade caramelize slightly, which adds depth to the sauce.
Don't rush this step. The chicken needs time to develop flavor through the Maillard reaction. If it sticks, add a splash of water and scrape up those browned bits—they're packed with flavor. The chicken should release easily from the pot when ready to move to the next stage.
Build the Creamy Coconut-Tomato Base
Pour in the 0.5 cup tomato puree and stir to coat the chicken. Let it simmer for 3-4 minutes until the raw tomato flavor mellows. Then, reduce heat to low and carefully add the 1 can (13.5 oz) coconut milk, stirring gently to avoid curdling. The mixture should thicken slightly as it simmers for 10-12 minutes, until the chicken is fully tender and the sauce clings beautifully.
Here's where authenticity shines—the coconut milk shouldn't separate, but if it does, whisk vigorously or add a splash of water to emulsify. The sauce should coat the back of a spoon with a velvety texture. Taste and adjust seasoning with more salt or garam masala if needed. The curry should balance sweet, spicy, and savory notes perfectly.
Finish and Garnish for Restaurant-Quality Presentation
Remove the pot from heat and let it rest for 5 minutes—this allows the flavors to meld completely. Stir in the 0.25 cup chopped fresh cilantro just before serving to brighten the dish with freshness. The curry should be thick enough to coat the chicken but still spoonable. If it's too thick, add a splash of water or reserved chicken juices to reach your desired consistency.
Serve immediately with steamed basmati rice or naan bread to soak up every last drop of that fragrant, creamy sauce. The aroma alone will transport you straight to an Indian street corner, and the first bite delivers that perfect balance of spice, creaminess, and tender chicken. Trust me, this is the kind of curry that makes people ask for seconds before they even finish their first serving.
Pro Tips For Making Authentic Indian Chicken Curry Recipe With Coconut Milk
- MARINATE THE CHICKEN LONGER: I learned this the hard way—overnight is better, but even 4 hours makes a difference. The yogurt needs time to tenderize those thighs, and turmeric’s golden magic only works if it’s had a chance to soak in. Skip this, and your curry will taste like it’s still fighting you.
- FRY ONIONS UNTIL GOLDEN: High heat, no excuses. Those onions should be deep amber, almost caramelized, before you add garlic—this builds the base flavor. I used to rush it, and the curry always tasted flat. Sounds weird, but it works: let them cook until they smell like your childhood kitchen.
- SIMMER LOW AND COVERED: After adding coconut milk, drop the heat to a bare simmer and keep the lid on. The curry’s going to break down, and you want it to melt into the chicken, not boil away. I’ve seen people crank the heat, and their sauce turns into a sad, watery mess.
- STRAIN THE YOGURT FIRST: Unless you’re using ultra-thick yogurt, strain it for 15 minutes before marinating. The excess liquid dilutes the marinade, and nobody wants a soggy curry. I skip this when I’m lazy, but the dish is noticeably better when I don’t—trust me.
Best sauces and condiments for these flavors
Coconut Milk Magic
The star of this curry is the coconut milk—it transforms a simple tomato-based sauce into something luxurious and balanced. I always use full-fat canned coconut milk (like Aroy-D or Thai Kitchen) because the fat content helps emulsify the sauce beautifully while adding natural sweetness.
The coconut milk not only mellows the heat but also creates that signature creamy texture that makes this curry so satisfying. 🥥
For extra richness, I sometimes stir in 1 tablespoon of coconut cream (the thick part from the can) at the end for a velvety finish. If you're feeling adventurous, try 1 teaspoon of desiccated coconut for texture—it adds a subtle crunch that contrasts perfectly with the smooth sauce.
Spice Layering Secrets
The garam masala is your flavor multiplier—don’t skimp! I like to add ½ teaspoon extra at the end for depth. For a smoky twist, toast ½ teaspoon cumin seeds with the whole spices at the start.
The green chilies are essential for authentic heat, but if you prefer milder flavor, reduce them to 1 chili or swap for ½ teaspoon cayenne pepper.
For a South Indian touch, add 1 teaspoon mustard seeds and 1 dried red chili to the oil at the beginning—they add a nutty, tangy kick.
If you’re making this for a North Indian style, increase the cinnamon and cardamom to 3 pods each for a sweeter, warmer profile.
Tomato Base Variations
The tomato puree is the backbone of the sauce, but you can get creative. For a tangier flavor, add 1 tablespoon lemon juice after simmering.
If you’re using fresh tomatoes, blend 2 medium tomatoes with 1 teaspoon salt and strain through a sieve to remove skins—this gives a smoother, brighter base.
For a vegetarian twist, swap the chicken for chickpeas or paneer and add 1 teaspoon amchur (dry mango powder) for a fruity tang. The coconut milk works just as well in these variations, balancing the acidity beautifully.
Finishing Touches
Fresh cilantro is non-negotiable for brightness, but if you’re out, mint leaves add a refreshing contrast. For a restaurant-worthy garnish, top with toasted cashews or fried shallots—they add crunch and visual appeal. A drizzle of chili oil or tahini takes it to the next level.
Pro tip: Save ½ cup of the cooked sauce before adding cilantro. Reheat it separately and drizzle over the curry at the table—this keeps the herbs vibrant and adds a luxurious touch. The sauce actually tastes better the next day, so make extra for leftovers! ✨
Nutrition facts
Frequently asked questions
Can I use coconut milk powder instead of canned coconut milk?
While coconut milk powder is convenient, it won't give you the same rich, velvety texture. For authentic results, stick with full-fat canned coconut milk (like Aroy-D or Thai Kitchen). If you're short on time, you can substitute with ½ cup heavy cream + ½ cup water, but the flavor will be slightly different. The coconut milk's natural sweetness and fat content are key to balancing the spices.
How do I adjust the spice level for kids or sensitive stomachs?
Start by reducing the green chilies to 1 or omitting them entirely. For extra mildness, add ½ teaspoon sugar or 1 tablespoon honey at the end to balance any residual heat. You can also blend the sauce briefly to smooth out spicy bits. Always taste as you go—this curry is forgiving and easy to adjust!
What's the best way to store leftovers?
Let the curry cool completely, then store it in an airtight container in the fridge for up to 4 days. For longer storage, freeze portions for 3 months. When reheating, warm gently on the stove with a splash of water or coconut milk to restore creaminess. The flavors actually deepen overnight, making leftovers taste even better!
Can I make this curry in an Instant Pot or pressure cooker?
Yes! Sauté the spices and onions as directed, then add the chicken and tomato puree. Cook on high pressure for 8 minutes, then release pressure naturally. Stir in the coconut milk and finish with 2 minutes on sauté mode to thicken. The pressure cooker cuts time significantly while keeping the chicken tender. Just be careful not to overcook—the chicken should be just done when pressure releases.
Why did my coconut milk separate?
This usually happens from too much stirring or adding coconut milk to a hot sauce too quickly. To fix it, whisk vigorously or add 1 tablespoon cornstarch mixed with water to thicken. For prevention, reduce heat to low before adding coconut milk and stir gently. The sauce should be warm, not boiling hot, when you incorporate it.
