Main Courses
This authentic butter chicken recipe with coconut milk delivers restaurant-quality richness without the takeout compromise. The secret lies in marinating chicken overnight with yogurt and spices, then grilling it to tender perfection before simmering in a velvety sauce where coconut milk replaces traditional cream.
Every bite balances smoky, spiced chicken with a luscious sauce that's both creamy and subtly sweet—far superior to bottled versions.
The process begins with a foolproof marinade that tenderizes the chicken while infusing it with garam masala, turmeric, and ginger. After grilling, the sauce simmers gently with tomatoes, onions, and coconut milk, creating a texture that's impossibly smooth yet packed with depth.
This version keeps all the authenticity of traditional butter chicken while adding a tropical richness that elevates it to new heights.
What you'll end up with is plated perfection: golden-brown chicken pieces swimming in a glossy, aromatic sauce that clings beautifully. The coconut milk adds a velvety quality that makes this sauce unforgettable, while traditional spices ensure every flavor note is balanced.
Serve with basmati rice and warm naan for the complete experience.
This recipe is designed for weeknight dinners but feels like a special occasion—no shortcuts, just authentic technique with a modern twist. The result is a dish that's rich, satisfying, and worthy of any table. Ready to make it?
Ingredients for authentic butter chicken recipe with coconut milk
Authentic spices meet tropical richness in this velvety butter chicken with coconut milk.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Skin-on preferred for flavor |
| Plain Yogurt 🥛 | 1 cup | Full-fat for creaminess |
| Garam Masala 🌶️ | 2 tbsp | Freshly ground preferred |
| Ground Turmeric 🌿 | 1 tbsp | Bright yellow color |
| Ground Cumin 🌿 | 1 tbsp | Toasted for depth |
| Ground Coriander 🌶️ | 1 tbsp | Freshly ground preferred |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
| Coconut Milk 🥥 | 1 can | Full-fat for richness |
| Tomatoes 🍅 | 1 lb | Ripe, Roma preferred |
| Yellow Onion 🧅 | 1 whole | Medium-sized, peeled |
| Fresh Ginger Root 🧄 | 2 tbsp | Finely grated, fresh |
| Garlic Cloves 🧄 | 6 cloves | Peeled, minced |
| Butter 🧈 | ½ cup | Unsalted, cubed |
| Fresh Cream 🥛 | ¼ cup | Heavy, optional finish |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The chicken thighs are non-negotiable—skin-on delivers the best flavor and texture. Look for organic or free-range when possible, especially at Whole Foods or your local butcher. The yogurt must be plain and full-fat (Greek or regular)—low-fat versions won't create that luxurious sauce. For garam masala, Madras brand or bulk bins at Indian markets are ideal. If using canned tomatoes, opt for San Marzano—their sweetness balances the spices perfectly. Fresh ginger and garlic are essential; pre-minced jars lack the aromatic punch.
No coconut milk? Full-fat cashew cream (blend soaked cashews with water) mimics the texture beautifully. Substitute tomatoes with 1 cup tomato paste if needed, but fresh is ideal. For a quicker marinade, blend all spices with yogurt and let sit for at least 4 hours (overnight is best). The butter should be unsalted to control seasoning—add salt to taste at the end. Fresh cream at the finish adds richness, but coconut cream works as a dairy-free alternative. Skip the cilantro if you dislike it; parsley works similarly.
Marinate chicken in the fridge for up to 24 hours—longer doesn't hurt. Store sauce in an airtight container for 4-5 days or freeze for 3 months. Reheat gently on low heat, adding a splash of water if it thickens. The sauce thickens as it cools, so adjust consistency with water or coconut milk before serving. Portion leftovers into containers for easy reheating—this tastes even better the next day.
Why You'll Love This Recipe
- Fewer Ingredients, Bigger Payoff: I swear by this version—just yogurt, garam masala, and turmeric marinating the chicken overnight (or even 4 hours if you’re in a rush). That’s it. No fancy spice blends or last-minute shopping runs. The coconut milk ties it all together with zero extra effort.
- Rich Without the Guilt: Between us, this sauce is ridiculously creamy but light enough you won’t feel sluggish after. The coconut milk cuts through the richness of the yogurt and garam masala, giving it that velvety texture without needing heavy cream. Plus, the cumin grounds the heat—no burning-your-mouth moments.
- Weeknight to Weekend Workhorse: I make this for lazy Tuesdays (one-pan, 30 minutes) and bring it to potlucks (it reheats like a dream). Serve it with naan for a full meal, or dump it over rice for a quick lunch. Honestly, the only thing limiting you is how much you want to eat.
- Leftovers That Taste Better: Here’s what sold me—the sauce actually improves overnight. The flavors meld deeper, and the chicken stays juicy. I portion it into containers and freeze half; reheating it later feels like a restaurant-quality takeout. (Yes, even on a Tuesday night.)
Step-by-step instructions for authentic butter chicken with coconut milk
A true North Indian experience where tender chicken simmers in a velvety coconut milk and tomato base.
Marinate the Chicken for Maximum Flavor
In a large bowl, combine the 1.5 lb boneless chicken thighs, 1 cup plain yogurt, 2 tbsp garam masala, 1 tbsp ground turmeric, 1 tbsp ground cumin, 1 tbsp ground coriander, and 1 tsp salt. Mix thoroughly until the chicken is fully coated in the marinade and the spices adhere evenly to the surface.
Cover the bowl and refrigerate for at least 4 hours, preferably overnight. This extended marinating period allows the spices to penetrate deeply into the chicken, creating that signature aromatic profile. The yogurt will also tenderize the meat, ensuring it remains juicy even after prolonged cooking. I've found that skin-on thighs develop a beautiful crust during cooking, but boneless thighs work perfectly for this method.
Cook the Chicken Until Fully Tender
Heat a large, heavy-bottomed pot over medium-high heat. Add 0.5 cup butter and let it melt completely, then add the marinated chicken in a single layer. Cook undisturbed for 5-6 minutes until the chicken develops a golden-brown crust on all sides. This initial searing locks in the juices and builds flavor.
Once browned, pour in 1 cup water and bring to a simmer. Cover the pot and reduce heat to low. Let the chicken cook for 25-30 minutes until it's tender and the liquid has reduced by about half. The chicken should pull away from the bone easily when tested with a fork. If the water evaporates too quickly, add small amounts of water as needed to maintain moisture.
Prepare the Tomato-Ginger-Garlic Base
While the chicken cooks, prepare the sauce base. In a separate large pot, melt 0.25 cup butter over medium heat. Add the 1 whole yellow onion, peeled and sliced into thin half-moons, and cook for 8-10 minutes until the onions turn golden brown and caramelized.
Add the 2 tbsp finely grated fresh ginger root and 6 minced garlic cloves, cooking for another 2-3 minutes until fragrant. Stir in 1 lb tomatoes, cut into small pieces, and cook for 10-12 minutes until the tomatoes break down into a thick, chunky paste. This step develops the complex tomato flavor that's essential for authentic butter chicken.
Combine and Simmer the Sauce
Once the chicken is fully cooked, carefully transfer it to a plate, reserving the cooking liquid. In the same pot, add the tomato-ginger-garlic mixture and stir in 1 can coconut milk. Bring to a gentle simmer and cook for 10 minutes to allow the flavors to meld together.
Return the chicken to the pot along with any reserved cooking liquid. Add 0.25 cup fresh cream and simmer for another 10-12 minutes on low heat. The sauce should thicken slightly and coat the chicken beautifully. Taste and adjust seasoning if needed—this is where you can add a pinch more salt or garam masala if desired. The coconut milk adds a luxurious creaminess that sets this version apart from traditional butter chicken.
Finish and Serve with Fresh Garnish
Remove the pot from heat and let the butter chicken rest for 5 minutes. This resting period allows the sauce to thicken slightly and the flavors to settle. Garnish with 0.25 cup chopped fresh cilantro just before serving to add a bright, fresh contrast to the rich, spiced sauce.
Serve immediately with basmati rice or naan bread. The chicken should be tender with a beautiful golden color, swimming in a velvety sauce that balances rich, spicy, and slightly sweet notes. Each bite should deliver the authentic flavors of North Indian cuisine, elevated by the creamy coconut milk element that makes this version uniquely special.
Pro Tips For Making Authentic Butter Chicken Recipe With Coconut Milk
- MARINATE LONGER THAN YOU THINK: I used to cut corners and marinate chicken thighs for 2 hours—still not enough. For real depth, let them sit in the yogurt-turmeric-cumin mix overnight (or at least 6 hours). The coconut milk later will taste richer, and the chicken stays juicy even after slow simmering. (Yes, even if you're impatient like me.)
- COOK YOGURT GENTLY: When blooming your spices in yogurt, keep the heat low and indirect—like a simmer, not a boil. I learned this the hard way after curdling three batches; coconut milk later won’t save you if the base is scrambled. Stir constantly and move the pan off heat if it starts to bubble.
- BALANCE COCONUT MILK FAT: Coconut milk is rich, but it can overwhelm the garam masala if you dump in a full can. Start with half the amount (about 1 cup) and simmer until reduced by a third before adding the rest. This keeps the sauce from turning greasy while letting the coconut flavor shine.
- SKIP THE BOILING SAUCE: The sauce will thicken on its own as it reduces—no need to boil it aggressively. After adding coconut milk, let it simmer uncovered at a steady bubble (not a rolling boil) for 15-20 minutes. Boiling too hard turns the sauce grainy, and you’ll lose the delicate balance of spices.
Regional styles of these flavors
North Indian Classic
This version stays true to the Mughlai origins of butter chicken, where the dish was born in Delhi during the 1950s. The original recipe used tandoori chicken (marinated in yogurt and spices, then cooked in a clay oven) before being transformed into a creamy curry.
My approach keeps the garam masala-forward marinade and tomato-based sauce while replacing traditional cream with coconut milk for a tropical twist that still feels authentically Indian. 🌶️
South Indian Fusion
In Kerala and Tamil Nadu, coconut milk is already a staple, so this version feels like a natural evolution. I'd add 1 tsp black pepper and ½ tsp fennel seeds to the marinade for depth, then finish the sauce with ½ cup grated coconut for texture.
The spicier masala chai (with extra cardamom) pairs beautifully with this richer take. For extra authenticity, serve with steamed rice and appam (fermented rice hoppers) instead of naan.
Bangladeshi Twist
Bangladeshi cuisine often blends mild heat with coconut, making this a perfect adaptation. Reduce the garam masala to 1 tbsp and add ½ tsp cinnamon and ½ tsp cloves to the marinade.
For the sauce, stir in ½ cup shredded coconut at the end and top with crispy fried shallots for crunch. Serve with steamed jasmine rice and eggplant curry to complete the meal. The coconut milk here creates a lighter, almost dessert-like sauce that balances the richness.
Modern American Adaptation
For a weeknight-friendly version, I swap the 1.5 lb chicken thighs for 1 lb boneless, skinless thighs (easier to cook) and use 1 can light coconut milk to cut calories. Add 1 tbsp honey to the sauce for subtle sweetness and finish with 1 tbsp lime juice for brightness.
Serve over cauliflower rice for a lighter option or with garlic naan for a classic touch. This version keeps the authentic flavors while making it more approachable for home cooks. 💡
Pakistani Richness
Pakistani butter chicken often includes keema (ground meat) for extra depth. For this version, add ½ lb ground lamb to the marinade and cook it with the chicken. The sauce gets a darker, meatier flavor, and I'd finish with 1 tbsp melted ghee instead of butter.
Serve with butter-poached basmati rice and mirchi ka salan (stuffed chili peppers) for a full Pakistani feast. The coconut milk here adds a luxurious creaminess that pairs perfectly with the bold spices.
Nutrition facts
Frequently asked questions
Can I use chicken breast instead of thighs for this recipe?
Chicken breast works but requires extra care to stay juicy. Use boneless, skinless breasts and reduce marinating time to 6-8 hours max (breast meat dries out faster). Cook at 325°F instead of simmering to prevent toughness. The coconut milk sauce will still taste amazing, but thighs give better texture and flavor.
How do I adjust the spice level for kids or sensitive palates?
Reduce garam masala to 1 tbsp total and omit cayenne or chili powder. For extra mildness, add 1 tsp sugar or 1 tbsp honey to the sauce to balance flavors. The coconut milk naturally softens heat, so this version is already gentler than traditional butter chicken. Always taste as you go!
What's the best way to store leftovers?
Let the dish cool completely, then store in an airtight container in the fridge for 4-5 days. For freezing, portion into single servings and freeze for up to 3 months. Reheat gently on low heat, adding 1-2 tbsp water or coconut milk if the sauce thickens too much. The flavors actually improve overnight!
Can I make this recipe without coconut milk?
Yes! Replace the coconut milk with 1 cup heavy cream or ½ cup Greek yogurt + ½ cup water for a traditional texture. For a dairy-free option, use 1 cup cashew cream (blend soaked cashews with water) or ½ cup coconut cream + ½ cup water. The sauce will be slightly lighter but still delicious.
Why did my sauce separate when I added coconut milk?
This happens when coconut milk isn't warmed gradually or if the sauce contains too much acid (like excess tomato). Fix it by whisking in 1 tbsp cornstarch mixed with water or 1 tbsp yogurt while heating on low. For prevention, always add coconut milk to warm (not hot) sauce and stir constantly for 2-3 minutes. The coconut milk should blend smoothly into the sauce.
