Main Courses
This authentic Indian chicken curry with coconut milk delivers restaurant-quality flavors in one pot, where warm spices and creamy coconut milk create a perfect balance. The secret lies in marinating the chicken with yogurt and spices, then slow-cooking it until tender while building layers of aromatic depth.
Every bite offers a harmony of smoky, sweet, and tangy notes that transport you to an Indian kitchen.
What sets this curry apart is the thoughtful spice blend—cumin, coriander, turmeric, and garam masala—that infuses the chicken before it simmers in a rich, velvety coconut milk sauce. The coconut milk softens the heat while adding a luxurious creaminess that makes this dish feel special without being overly heavy.
This method ensures authenticity while keeping the steps clear for home cooks.
The result is a tender, fragrant curry with chicken that falls apart easily and a sauce thick enough to coat every spoonful. The spices bloom beautifully during the slow simmer, creating an aroma that fills your home and makes everyone gather around the table.
Serve it with steamed basmati rice or warm naan to soak up every last drop of that flavorful sauce.
This recipe is designed to be both traditional and approachable, so you can achieve professional results without the complexity. Whether you're cooking for family or hosting dinner guests, this curry will impress with its depth of flavor and creamy texture. Let’s get started on making it!
Ingredients for authentic indian chicken curry recipe with coconut milk
Warm spices, creamy coconut milk, and tender chicken—this curry delivers restaurant-quality flavor in one pot.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Skin-on preferred for flavor |
| Plain Yogurt 🥛 | ½ cup | Unflavored, full-fat preferred |
| Coconut Milk 🥥 | 1 can (13.5 oz) | Full-fat for creaminess |
| Yellow Onion 🧅 | 1 whole | Medium size, finely chopped |
| Garlic Cloves 🧄 | 6 cloves | Fresh, minced |
| Fresh Ginger 🌿 | 1 tbsp | Grated, peeled |
| Ground Cumin 🌿 | 1 tsp | Toasted for deeper flavor |
| Ground Coriander 🌿 | 1 tsp | Freshly ground preferred |
| Turmeric Powder 🌶️ | ½ tsp | Bright yellow color |
| Garam Masala 🌶️ | 1 tsp | Store-bought blend works |
| Tomato Paste 🍅 | 2 tbsp | Smooth, no sugar added |
| Canned Diced Tomatoes 🍅 | 1 can (14.5 oz) | San Marzano preferred |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The chicken thighs are key here—skin-on gives that crispy edge and extra flavor. Indian grocery stores or the ethnic aisle at Whole Foods usually have the best cuts. Look for good marbling, not too lean. For the yogurt, full-fat works best—it helps tenderize the chicken and keeps the sauce rich. The coconut milk? Full-fat is non-negotiable—light versions won't give that luxurious creaminess. If you can't find full-fat, blend a can of light coconut milk with 2 tbsp coconut cream to thicken it up.
No garam masala? Mix 1/4 tsp cinnamon, 1/4 tsp cardamom, 1/4 tsp cloves, and 1/2 tsp cumin—it's not identical but gets you close. Fresh ginger is ideal, but dried ginger at half the amount works in a pinch. The tomato paste can be skipped if you're short, but it adds that sweet depth. For the tomatoes, San Marzano cans are worth the splurge—they're sweeter and less watery. If you're using canned tomatoes, drain most of the liquid to thicken the sauce.
This curry tastes even better the next day as the flavors meld. Keeps 4-5 days in the fridge, or 3 months frozen. I like to portion it into containers with rice for easy lunches. The sauce thickens as it cools, so you can always add a splash of water or coconut milk when reheating. Garnish with fresh cilantro right before serving—it keeps beautifully in a jar with a damp paper towel for 5 days in the fridge.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe when I’m too tired to scrub pots—just brown the chicken, toss in the onions and garlic, then let the yogurt and coconut milk do their thing. The flavors meld without extra dishes.
- Creamy Heat Balance: Between us, the coconut milk makes this curry ridiculously smooth while the yogurt keeps it from being too heavy. That crispy garlic-onion base? Absolute gold—it’s the kind of depth that makes you pause mid-bite.
- Weeknight to Party Ready: Honestly, this is my go-to for when friends drop by last-minute or when I need to feed the family after work. Serve it with rice for a simple meal, or pile it onto naan for a restaurant-worthy spread—no stress, all flavor.
- Budget-Friendly Leftovers: Chicken thighs stretch further than breasts, and coconut milk adds richness without breaking the bank. I make double batches because the leftovers reheat like a dream—even better the next day, if you ask me.
Step-by-step instructions for authentic Indian chicken curry
Here's how to build rich, aromatic layers that balance spice and coconut cream perfectly.
Marinate the Chicken in Yogurt and Spices
In a large bowl, combine the 1.5 lb boneless chicken thighs with the 0.5 cup plain yogurt. Add 1 tsp ground cumin, 1 tsp ground coriander, 0.5 tsp turmeric powder, 1 tsp garam masala, 1.5 tsp salt, and 0.5 tsp black pepper. Mix gently until the chicken is evenly coated and the marinade clings to the surface.
Here's the thing—yogurt tenderizes the chicken while the spices begin infusing flavor. Let this mixture sit at room temperature for 30 minutes or refrigerate for up to 2 hours if you're prepping ahead. The longer it marinates, the deeper the flavor, but even 30 minutes makes a noticeable difference. Don't skip this step; it's what transforms good chicken into restaurant-quality curry chicken.
Build the Aromatic Base in a Heavy Pot
Heat a heavy-bottomed pot or Dutch oven over medium heat. Add 1 whole yellow onion that's been finely chopped and cook for 5-7 minutes until softened and beginning to caramelize. Add the 6 cloves minced garlic and 1 tbsp grated fresh ginger, cooking for another 1-2 minutes until fragrant—this is where the magic happens.
Stir in the 2 tbsp tomato paste and cook for 2 minutes until it darkens slightly. This step develops the curry's foundational flavor. Pour in the 1 can (14.5 oz) diced tomatoes and scrape up any browned bits from the bottom of the pot. These bits, called fond, are packed with flavor that will infuse your entire curry.
Cook the Chicken and Add Coconut Milk
Add the marinated chicken thighs to the pot in a single layer. Increase heat to medium-high and cook for 8-10 minutes, turning occasionally, until the chicken is lightly browned on all sides. This browning creates a beautiful crust that holds up to the coconut milk's richness.
Pour in the 1 can (13.5 oz) full-fat coconut milk and stir gently to combine. The coconut milk should just cover the chicken. Here's where the curry comes together—let the mixture simmer uncovered over medium-low heat for 20-25 minutes, stirring occasionally. You'll see the coconut milk begin to thicken and the chicken absorb all those beautiful spices.
Finish with Garam Masala and Rest
Taste the curry and adjust seasoning if needed—you might want to add a pinch more salt or a sprinkle of garam masala. Stir in 1 tsp garam masala and let the curry simmer for another 5 minutes to allow the spices to bloom fully. The curry should be creamy but not watery, with tender chicken that falls apart easily.
Remove from heat and let the curry rest for 10 minutes. This resting period allows all the flavors to meld together and the chicken to absorb any remaining juices. Garnish with 0.25 cup chopped fresh cilantro just before serving. The cilantro adds a bright, fresh contrast to the rich, spiced coconut curry. Serve with basmati rice or warm naan bread to soak up every last bit of that delicious sauce.
Pro Tips For Making Authentic Indian Chicken Curry Recipe With Coconut Milk
- Marinate Overnight: I used to rush the yogurt marinade, thinking an hour was enough—until the chicken turned out bland. Let those thighs soak in the yogurt mix (with salt, spices, and a splash of lemon) for at least 8 hours, or ideally overnight. The acid and fat break down the protein, making the meat tender and the flavors sink in deep.
- Bloom Spices Dry: Skip the "throw everything in at once" approach. Heat your oil until it shimmers, then add whole spices (cumin, cardamom, cinnamon) first. Let them sizzle for 30 seconds—this releases their oils and builds real depth. Dumping them wet or cold just steams them, and you’ll taste it.
- Simmer Coconut Milk Slow: Coconut milk curdles like a diva if you rush it. After adding it to the pot, reduce heat to low and let it warm gradually. Stir occasionally, and if it starts to split, whisk in a spoonful of the yogurt marinade to stabilize it. Patience here keeps your curry creamy, not lumpy.
- Finish with Onion Paste: My grandmother swore by this, and she was right: Instead of frying raw onions, blend them into a smooth paste and cook it down with garlic until it’s deep golden. This caramelizes the sugars instantly, giving your curry a richer, sweeter base without the bitterness of overcooked onions. (Yes, even if you’re impatient like me.)
Regional styles of these flavors
South Indian Style
In South India, this curry often includes tamarind pulp (about 1 tbsp) for tanginess and curry leaves (a handful) for aroma. Replace garam masala with 1 tsp each of fennel seeds, mustard seeds, and black peppercorns toasted in ghee.
The coconut milk is reduced by ½ cup to create a thicker, drier curry perfect with steamed rice and coconut chutney. 🌶️
North Indian Creamy Version
Northern India swears by cashew paste (blend ¼ cup raw cashews with 2 tbsp water) instead of coconut milk for a richer, nutty depth. Add 1 tsp Kashmiri red chili powder for color and ½ cup heavy cream at the end for extra decadence.
Serve with buttered naan and a side of raita to balance the richness. 🥥
Bengali Mustard Twist
Bengali chefs elevate this curry with 1 tbsp mustard oil (heat until smoking point subsides) and ½ tsp asafoetida (hing) for umami. Replace coconut milk with ½ cup yogurt and ½ cup water, then finish with 1 tsp poppy seeds.
The result is a lighter, tangier curry that pairs beautifully with steamed rice and lentil dal. 🌿
Goan Coastal Fusion
Goa's coastal influence brings fennel (1 small bulb, sliced) and vinegar (1 tbsp) to the marinade, plus 1 tsp kokum powder for a citrusy tang. Use ½ cup coconut milk and ½ cup water for a thinner sauce.
Garnish with fresh coriander and lime wedges—this version is lighter but packed with bright, tropical flavors. 🍋
Punjabi Rich & Spiced
Punjabi curries are all about bold flavors—add 1 tbsp ghee when cooking onions and 1 tsp amchur (dry mango powder) at the end for tang. Use full-fat coconut milk but reduce it by ¼ cup to create a thicker, more intense sauce.
Serve with garlic naan and a side of pickled onions for the ultimate comfort meal. 🔥
Nutrition facts
Frequently asked questions
Can I substitute coconut milk with another dairy product?
While coconut milk is essential for authentic flavor, you can use ½ cup heavy cream plus ½ cup water for a lighter version. For a richer alternative, try ½ cup Greek yogurt blended with ½ cup water—though the texture will be slightly thinner. The coconut's unique aroma can't be fully replicated, but these options work in a pinch.
How spicy should this curry be?
The recipe balances warmth without heat—adjust spice levels by adding ½ tsp red chili powder or 1 fresh green chili (seeds removed) to the marinade. For extra kick, stir in ½ tsp cayenne at the end. Start with no chili powder if you prefer mild heat, as garam masala provides depth without sharpness.
Why does my curry taste bland after simmering?
Blandness usually means insufficient salt or spice bloom. Taste and adjust with ½ tsp more salt or ½ tsp garam masala while simmering. Let the curry rest 10 minutes off heat—flavors meld better this way. If using store-bought spices, toast them in a dry pan for 30 seconds to intensify their aroma before adding.
Can I make this curry in an Instant Pot?
Sauté onions, garlic, and ginger as directed, then add all remaining ingredients except coconut milk. Seal the lid, cook on High Pressure for 10 minutes, then quick-release. Stir in coconut milk and simmer 5 minutes to thicken. The pressure cooker cuts time but may require extra salt (flavor concentrates differently).
What's the best way to reheat leftovers?
Reheat gently on low heat with 1-2 tbsp water or coconut milk to prevent drying. For microwave reheating, cover with a damp paper towel and heat in 30-second bursts, stirring between each. Never reheat to a boil—this breaks down the coconut milk's creaminess. The curry tastes even better the next day!
