If you ask me, butter chicken is pure comfort food magic.
This creamy Indian dish makes a cozy family dinner that’s packed with rich, warming flavors. Tender chicken pieces swim in a smooth tomato-based sauce that’s perfectly spiced and just a little sweet.
The chicken gets marinated in yogurt and spices before hitting a hot pan for that perfect sear. Heavy cream and butter make the sauce silky and rich, while garam masala and other spices give it that authentic taste.
It’s a crowd-pleasing meal that pairs perfectly with fluffy basmati rice or warm naan bread.
Why You’ll Love This Butter Chicken
- Restaurant-quality flavor at home – This authentic recipe brings all those rich, creamy, and aromatic flavors you crave from your favorite Indian restaurant right to your kitchen.
- Tender, marinated chicken – The yogurt marinade makes the chicken incredibly juicy and flavorful, while the spices create that perfect balance of warmth without being too spicy.
- Creamy, tomato-based sauce – The combination of fresh tomatoes, cashews, and cream creates a velvety smooth gravy that’s absolutely irresistible when paired with rice or naan.
- Customizable spice level – You can easily adjust the heat by reducing the chili powder, making it perfect for families with different spice preferences or kids who prefer milder flavors.
- Impressive dinner party dish – While it takes some time, most of it is hands-off cooking, and the results will have your guests thinking you’re a culinary genius.
What Kind of Chicken Should I Use?
For butter chicken, boneless chicken thighs are your best bet since they stay tender and juicy even after all that cooking time. Chicken breast works too, but it can dry out more easily, so keep an eye on it during the marinating and cooking process. You’ll want to cut your chicken into bite-sized pieces, about 1 inch each, so they cook evenly and are easy to eat with rice or naan. If you’re using frozen chicken, make sure it’s completely thawed and patted dry before marinating – any extra moisture can water down your marinade and affect the final flavor.
Options for Substitutions
This butter chicken recipe is pretty forgiving when it comes to swaps, so here are some options if you’re missing ingredients:
- Kashmiri red chili powder: Regular paprika works great as a substitute – it gives you that beautiful red color without too much heat. If you want more spice, add a pinch of cayenne pepper along with the paprika.
- Greek yogurt: Regular plain yogurt works fine, just strain it through a cheesecloth for 30 minutes to thicken it up. In a pinch, you can use buttermilk but reduce the amount to 2-3 tablespoons.
- Garam masala: If you don’t have garam masala, make a quick blend with equal parts cinnamon, cardamom, and cloves, plus a pinch of black pepper. It won’t be exactly the same, but it’ll still taste good.
- Cashews: The recipe already mentions this, but you can skip the cashews entirely and use ¼ to ⅓ cup heavy cream instead. This actually makes the recipe easier and still gives you that creamy texture.
- Kasuri methi: Dried fenugreek leaves add a unique flavor, but if you can’t find them, just leave them out. The dish will still be delicious without them.
- Fresh tomatoes: Canned tomato puree or paste work perfectly here. Use about 1 cup of puree or ⅓ cup of tomato paste mixed with a little water.
- Ghee/butter: Regular butter is totally fine if you don’t have ghee. You can even use a neutral oil like vegetable or canola oil, though you’ll miss some of that rich buttery flavor.
Watch Out for These Mistakes While Cooking
The biggest mistake when making butter chicken is not marinating the chicken long enough – aim for at least 30 minutes, but overnight in the fridge gives you the most tender, flavorful results. Another common error is burning the tomato base, which happens when you cook it on high heat or don’t stir frequently enough, so keep the heat at medium and be patient as the tomatoes break down and concentrate their flavors. Don’t skip soaking the cashews in hot water for at least 15 minutes before blending, as hard cashews won’t create that signature creamy texture no matter how powerful your blender is. Finally, resist the urge to add all the cream at once – stir in half during cooking and save the rest to swirl in at the end, which prevents the sauce from curdling and gives you better control over the richness.
What to Serve With Butter Chicken?
Butter chicken is absolutely perfect with fluffy basmati rice or warm naan bread – both are amazing for soaking up that rich, creamy sauce. I love serving it with garlic naan or plain naan that you can tear off and use to scoop up the chicken and sauce. If you want to add some freshness to balance out the richness, try a simple cucumber raita or a side of pickled onions. You can also serve it alongside other Indian dishes like dal or roasted vegetables to make it a proper feast.
Storage Instructions
Refrigerate: Butter chicken actually gets better after a day or two in the fridge! Store it in an airtight container for up to 4 days, and the flavors will really meld together beautifully. I always make extra because it’s one of those dishes that tastes even more amazing as leftovers.
Freeze: This curry freezes like a dream for up to 3 months. Let it cool completely, then portion it into freezer-safe containers or bags. I like to freeze it in meal-sized portions so I can just thaw what I need for dinner without having to defrost the whole batch.
Warm Up: Gently reheat your butter chicken on the stovetop over medium-low heat, stirring occasionally until heated through. If it seems a bit thick after storing, just add a splash of water or cream to loosen it up. The microwave works too, but I find the stovetop gives you better control over the texture.
| Preparation Time | 50-60 minutes |
| Cooking Time | 30-45 minutes |
| Total Time | 80-105 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 1650-1850
- Protein: 95-110 g
- Fat: 95-110 g
- Carbohydrates: 70-85 g
Ingredients
For the marinade:
- 1/8 tsp ground turmeric
- 1/3 tsp salt
- 1 tsp kasuri methi (crushed dried fenugreek leaves)
- 3/4 tbsp ginger-garlic paste (freshly minced for best flavor)
- 1 tsp garam masala
- 1 tbsp lemon juice
- 3/4 tbsp neutral oil
- 1/2 tsp ground cumin
- 3/4 tsp Kashmiri chili powder
- 1 tsp ground coriander
- 1/3 cup thick greek yogurt (room temperature for better marinating)
- 1.1 lb boneless chicken (cut into 1-inch pieces)
For the sauce:
- 1/2 cup water
- 2 tbsp butter or ghee, divided (I use Kerrygold unsalted butter)
- 1.5 cups sliced onions (about 2 medium onions)
- 2 tsp Kashmiri red chili powder
- 1/3 cup raw cashews (soaked in hot water for 15 minutes, then drained)
- 1.3 lb fresh tomatoes or 1 cup tomato puree
- 1.5 tsp garam masala, divided
- 1 tsp sugar
- 1–2 green chili peppers (deseeded and chopped, or slit if leaving whole)
- 1/2 tsp ground cumin
- 3/4 tsp salt
- 3/4 tbsp ginger-garlic paste (freshly minced)
- 1/3 cup heavy cream, divided (adds richness and smoothness)
- 1.5 cups hot water
- 1.5 tsp ground coriander
- 2–4 whole cloves
- 2–4 green cardamom pods
- 2-inch cinnamon stick
- 1/2 tbsp kasuri methi (dried fenugreek leaves)
For the garnish:
- 2 tbsp fresh cilantro (finely chopped, for color and freshness)
Step 1: Marinate the Chicken with Yogurt and Spices
- 1.1 lb boneless chicken, cut into 1-inch pieces
- 1 tbsp lemon juice
- 3/4 tsp Kashmiri chili powder
- 1/3 tsp salt
- 1/3 cup thick Greek yogurt
- 3/4 tbsp ginger-garlic paste
- 3/4 tbsp neutral oil
- 1/8 tsp ground turmeric
- 1 tsp garam masala
- 1/2 tsp ground cumin
- 1 tsp ground coriander
- 1 tsp kasuri methi, crushed
Cut the chicken into 1-inch pieces and combine with lemon juice, Kashmiri chili powder, and salt in a bowl.
Let this rest for 20 minutes to allow the acid and salt to begin tenderizing the meat.
After resting, add the room-temperature Greek yogurt, ginger-garlic paste, neutral oil, turmeric, garam masala, ground cumin, ground coriander, and crushed kasuri methi.
Mix everything thoroughly until the chicken is evenly coated.
Cover and refrigerate for 30 minutes—this allows the yogurt and spices to penetrate the chicken, creating tender, flavorful pieces.
I find that using room-temperature yogurt really helps the marinade cling to the chicken rather than sliding off.
Step 2: Prepare the Tomato-Cashew Sauce Base
- 1.5 cups sliced onions
- 1.3 lb fresh tomatoes or 1 cup tomato puree
- 1/3 cup raw cashews, soaked and drained
- 1/2 cup water
While the chicken marinates, soak the raw cashews in hot water for 15 minutes to soften them, then drain.
Slice the onions into thin, even pieces—about 1.5 cups total.
Heat 3/4 tablespoon of neutral oil in a large pan over medium heat and cook the sliced onions for 7 minutes, stirring occasionally, until they become soft and lightly golden (don’t brown them heavily as they’ll continue cooking).
Roughly chop the fresh tomatoes or measure out the tomato puree.
Combine the cooked onions, tomatoes, drained cashews, and 1/2 cup of water in a blender and blend until completely smooth—this creates the silky base that gives butter chicken its signature sauce.
Step 3: Bloom the Spices and Build the Sauce
- 2 tbsp butter, divided
- 2-inch cinnamon stick
- 2–4 green cardamom pods
- 2–4 whole cloves
- 3/4 tbsp ginger-garlic paste
- 1–2 green chili peppers, deseeded and chopped
- 2 tsp Kashmiri red chili powder
- 1.5 tsp garam masala
- 1.5 tsp ground coriander
- 1/2 tsp ground cumin
- tomato-cashew puree from Step 2
Melt 1 tablespoon of butter in a large, heavy-bottomed pan or Dutch oven over medium heat.
Add the cinnamon stick, green cardamom pods, and whole cloves, allowing them to sizzle for about 1 minute until fragrant—this blooming process releases the essential oils and deepens their flavors.
Add the fresh ginger-garlic paste and chopped green chili peppers, cooking for 1-2 minutes, stirring constantly to prevent sticking.
Turn off the heat and immediately add the Kashmiri red chili powder, 1.5 teaspoons of garam masala, ground coriander, and ground cumin to the pan—turning off the heat prevents the spices from burning and becoming bitter.
Pour in the tomato-cashew puree from Step 2 and stir everything together, ensuring the spices are fully incorporated.
I like to add spices off the heat because it gives me more control over the flavor—burnt spices can ruin the entire dish.
Step 4: Simmer and Thicken the Sauce
- 1.5 cups hot water
- sauce base from Step 3
Bring the sauce to a gentle boil over medium-high heat, then immediately reduce the heat to low.
Cover the pan and let it simmer for 8-10 minutes, stirring occasionally, until the sauce noticeably thickens and deepens in color—you’ll see the oil beginning to separate slightly at the edges, which indicates the sauce is properly reduced.
Pour in 1.5 cups of hot water and simmer uncovered for another 10 minutes, allowing the flavors to meld while the sauce reaches a pourable consistency.
Using a slotted spoon or tweezers, carefully remove the whole spices (cinnamon stick, cardamom pods, and cloves) from the sauce—leaving them in would create unpleasant bites of pure spice.
Step 5: Sear the Marinated Chicken
- 2 tbsp butter, divided
- marinated chicken from Step 1
While the sauce simmers in Step 4, heat the remaining 1 tablespoon of butter in a separate large skillet or cast-iron pan over medium-high heat until it’s foamy and just beginning to brown.
Remove the marinated chicken from Step 1 from the refrigerator and add it to the hot butter in a single layer—work in batches if needed to avoid overcrowding, which would cause the chicken to steam rather than sear.
Cook for 2 minutes per side until the chicken develops a golden-brown crust.
The goal here is not to cook the chicken through (it will finish cooking in the sauce) but to add color and flavor through the Maillard reaction.
Let me tell you, this searing step is crucial—it creates that restaurant-quality depth that you just can’t get by poaching the chicken directly in sauce.
Step 6: Combine Chicken and Sauce to Finish
- seared chicken from Step 5
- sauce base from Step 4
- 1/2 cup water
- 3/4 tsp salt
- 1 tsp sugar
- 1/2 tbsp kasuri methi
- 1/3 cup heavy cream
- 2 tbsp fresh cilantro, finely chopped
Transfer the seared chicken from Step 5 into the simmering sauce from Step 4, adding any flavorful browned bits from the pan.
If the sauce seems too thick, add up to 1/2 cup of additional hot water to reach your desired consistency.
Cover and simmer gently for 5-7 minutes, until the chicken is fully cooked through and tender.
Remove from heat and stir in the salt, sugar, kasuri methi, and any additional garam masala or butter if desired—these final additions brighten the sauce and add complexity.
Pour in the heavy cream in a slow stream, stirring constantly to create a silky, luxurious sauce.
Taste and adjust seasoning as needed.
Finish by scattering fresh cilantro over the top just before serving for color and a fresh herbal note.




