Butter chicken — murgh makhani — is one of those dishes I grew up eating at restaurants in Pakistan and always assumed was too complicated to make at home. The sauce has this deep, velvety quality that feels like it took hours and a professional kitchen. Turns out it doesn't. Once I figured out the right sequence and stopped rushing the onions, I started making this on regular weeknights without any stress.
What makes this version work is the marinade. I know it feels like a lot of spices listed out, but most of them are pantry staples you probably already have — cumin, coriander, turmeric, garam masala. The yogurt tenderizes the chicken while the spices go deep into it. When the chicken hits the butter in the pan, those spices bloom and become the base of the whole sauce. I'm not claiming this is identical to the original Moti Mahal recipe from Delhi — it's my home version, built for a regular kitchen and a grocery store that might not carry specialty items.
This has become a regular Saturday night dinner in our house. My husband eats it with basmati rice and wants a second helping every time. Zainab tears naan into pieces and drags them through the sauce until the plate is basically clean. I usually make a full batch because leftovers the next day, reheated slowly on the stove, taste even better than the night before. If you also love rich, slow-cooked curries, my beef curry follows a similar method and is just as satisfying.
One thing to set your expectations correctly: marinating time matters. I've made this with a 30-minute marinade when I was short on time, and I've made it with an overnight marinade. The overnight version is noticeably better — the chicken is softer and carries more flavor all the way through. If you can plan ahead even by a few hours, do it. But if it's already 5pm and you just decided to make this, the 1-hour version is still really good.

Why You'll Love This Recipe
- The sauce is genuinely rich without being heavy: I've had butter chicken at restaurants where the sauce feels more like cream soup — thick and one-dimensional. This one has layers because the tomatoes cook down first, the spices get toasted in the butter, and the cream goes in last. It coats the chicken instead of drowning it. Every time I make it, my husband scrapes the pan.
- Yogurt marinade does real work: I used to skip long marination times thinking it was just a suggestion. I was wrong. The acid in the yogurt and lemon juice actually breaks down the muscle fibers in the chicken, so even chicken breast (which I normally find dry in curries) comes out tender. Thighs are even better. Give it at least an hour, overnight if you can manage it.
- It's forgiving with substitutions: No heavy cream in the fridge? Full-fat coconut milk works and gives the sauce a slightly different but still delicious character. No fresh ginger? Ginger paste from a jar (sold at Walmart or any grocery store) is what I use most of the time. This is a recipe that accommodates real life, not just ideal conditions.
- One pan, minimal cleanup: You cook the chicken in the pan, take it out, build the sauce in the same pan, and add the chicken back in. That's it. The fond from the chicken — the browned bits stuck to the bottom — dissolves into the sauce and adds flavor you can't get any other way. I do all of this in a single wide skillet and only have one pan and a mixing bowl to wash.
- The spice level is completely in your hands: The recipe as written is warm but not hot — something my kids can eat without complaining. If you want more heat, add extra chili powder or a couple of fresh green chilies to the sauce. My husband always adds a few shakes of chili flakes to his own plate. You can dial it up or down without changing anything structural about the dish.
Ingredients
For the Marinade:
- 1½ pounds (about 700g) boneless chicken thighs or breasts, cut into bite-sized pieces
- 1 cup plain yogurt (full-fat works best)
- 2 tablespoons lemon juice
- 1 tablespoon ground cumin
- 1 tablespoon ground coriander
- 1 teaspoon ground turmeric
- 1 teaspoon paprika
- 1 teaspoon garam masala
- 1 tablespoon ginger-garlic paste (or 1 teaspoon each ground ginger and garlic powder)
- 1 teaspoon chili powder (reduce to ½ teaspoon for milder heat)
- Salt to taste
For the Sauce:
- 3 tablespoons unsalted butter
- 1 medium onion, finely chopped
- 1 tablespoon ginger-garlic paste
- 1 can (14 oz) diced tomatoes, blended smooth — or 1 cup tomato puree
- 1 tablespoon ground cumin
- 1 tablespoon ground coriander
- 1 teaspoon garam masala
- 1 teaspoon ground turmeric
- 1 teaspoon paprika
- 1 teaspoon chili powder (optional, for extra heat)
- 1 cup heavy cream (or full-fat coconut milk for dairy-free)
- ¼ cup water or chicken stock
- ½ teaspoon sugar or honey (optional — balances the tomato acidity)
- Salt to taste
- Fresh cilantro, chopped, for garnish
Directions
- Marinate the chicken: In a large bowl, mix together the yogurt, lemon juice, and all the marinade spices until you have a smooth, evenly colored paste. Add the chicken pieces and toss to coat everything well. Cover the bowl with plastic wrap and refrigerate for at least 1 hour — overnight if you have time. The longer it sits, the more tender and flavorful the chicken will be.
- Sear the chicken: Melt 1 tablespoon of butter in a large heavy skillet over medium-high heat. Add the marinated chicken pieces in a single layer — work in batches if needed, don't crowd the pan. Cook for about 6 to 8 minutes, turning once or twice, until the chicken is lightly browned on the outside. It doesn't need to be fully cooked through at this stage since it'll finish in the sauce. Remove the chicken from the pan and set aside.
- Build the sauce base: In the same pan, add the remaining 2 tablespoons of butter. Once melted, add the chopped onion and cook over medium heat for 5 to 7 minutes, stirring occasionally, until the onion turns soft and golden. Don't rush this — properly cooked onion is the foundation of the whole sauce. Add the ginger-garlic paste and stir for another 2 minutes until it smells fragrant.
- Cook down the tomatoes: Add the blended tomatoes or tomato puree to the pan and stir everything together. Let it cook on medium heat for about 10 minutes, stirring occasionally, until the tomatoes darken slightly and the mixture thickens. Add the cumin, coriander, garam masala, turmeric, paprika, and chili powder. Stir well and cook for another 2 minutes so the spices cook into the sauce rather than tasting raw.
- Finish the sauce: Pour in the cream and water (or chicken stock). Stir to combine and bring to a gentle simmer. Let it cook for 10 to 15 minutes until the sauce thickens and becomes glossy. Taste it — add salt, and if the tomatoes are very acidic, stir in the sugar or honey now.
- Bring it together: Add the seared chicken back into the sauce. Stir gently to coat all the pieces. Reduce heat to low and let everything simmer together for another 10 minutes so the chicken finishes cooking and absorbs the sauce. Scatter fresh cilantro over the top and serve immediately.

Tips for Success
- Don't skip the overnight marinade if you can manage it: I made this with a 30-minute marinade once because I was in a hurry. The chicken was fine, but it didn't have that depth of flavor I was going for. The yogurt and spices need time to penetrate the meat properly. I now mix the marinade in the morning before school pickup and cook it that evening — even 6 to 8 hours makes a real difference.
- Blend the tomatoes smooth before they go in: The first time I made butter chicken I just added diced canned tomatoes directly to the pan. The sauce ended up with chunks and an uneven texture. Now I blend the canned tomatoes for about 10 seconds with an immersion blender (or just use tomato puree straight from the can). The sauce comes out silky instead of lumpy, which makes a big difference when you're spooning it over rice.
- Cook the onions low and slow: I've rushed onions a hundred times and regretted it every time. Raw or barely cooked onions leave a sharp taste in the sauce that no amount of cream can hide. Give them a full 5 to 7 minutes on medium heat. When they go from white to golden and start to smell sweet, that's when you add the ginger-garlic paste. That's the foundation of every good curry sauce.
- Use chicken thighs if you can: Thighs stay juicy even if you accidentally overcook them slightly. Breasts are fine, but they can dry out if the heat is too high or they sit in the sauce too long. I use thighs about 80% of the time — they're usually cheaper at the store too, so it's a win on both ends. If you only have breasts, cut them a little larger so they don't overcook as fast.
- Let the finished dish rest for 5 minutes before serving: I know it's tempting to serve straight off the stove, but butter chicken that rests for even 5 minutes has a more cohesive flavor. The chicken absorbs more sauce and the whole thing settles into itself. I use those 5 minutes to warm the naan or portion out the rice, and by the time I'm done, the curry is perfectly ready.
Variations
- Dairy-free version: Swap the yogurt in the marinade for a plain dairy-free yogurt (coconut or almond-based, both work), and replace the heavy cream with full-fat coconut milk. The sauce will have a slightly different flavor — a bit more tropical — but the richness is still there. I've made this version for a friend who can't do dairy and she asked me for the recipe immediately.
- Extra-rich cashew cream version: Soak ¼ cup of raw cashews in hot water for 30 minutes, then blend them with a little water into a smooth paste. Stir this into the sauce along with (or instead of) the cream. This is actually closer to how a lot of restaurant kitchens make butter chicken in Pakistan and India — it adds body and a slightly nutty depth that cream alone doesn't give you.
- Add paneer for a vegetarian version: Cut a block of paneer into cubes, pan-fry them in butter until golden on the outside, then add them to the sauce exactly where you'd add the chicken. The sauce is so good it works with almost any protein. If you can't find paneer locally, firm tofu pressed and cubed is a reasonable substitute — press it well so it doesn't make the sauce watery.
- Smoky tandoor-style finish: If you want to approximate the smokiness you get from a real tandoor oven, try this: after the chicken comes off the stove, heat a small piece of charcoal directly on your gas flame until it glows red, place it in a small foil cup inside the curry pot, drizzle a few drops of oil on the coal, then immediately cover the pot with a lid for 2 to 3 minutes. This is a technique used across South Asian cooking called dhungar and it genuinely transforms the dish. It's optional but worth trying once.
- Serve it over a cooling base: In Pakistan, butter chicken is almost always served with naan or rice, and that's still my preference. But I've served it to guests alongside my classic creamy coleslaw as a side and it works surprisingly well — the cool, crunchy slaw cuts through the richness of the sauce in a really satisfying way.
Serving and Storage
Serving
Serve butter chicken hot, straight from the pan, over steamed basmati rice or with warm naan on the side. In my house, my husband takes it over rice and I tear naan directly into the sauce — both are correct. If you're serving it to guests, a small bowl of plain yogurt or cucumber raita on the side helps balance the warmth of the spices. I've also served this with a simple green salad and some oven-baked bread on the side when I had people over and didn't want to make naan from scratch — it works fine. A drizzle of extra cream in a swirl on top before you bring it to the table makes it look restaurant-ready without any extra effort.
Storage
Leftover butter chicken keeps well in an airtight container in the refrigerator for up to 3 days. The sauce thickens overnight, so when you reheat it, add a splash of water or cream and warm it slowly on the stove over low heat — don't blast it on high or the cream can separate. For freezing, let it cool completely, then transfer to a freezer-safe container. It freezes for up to 2 months. Thaw overnight in the refrigerator before reheating. I actually make a double batch specifically to freeze half — it reheats on a busy weeknight in about 15 minutes and tastes like you cooked it fresh.
Frequently Asked Questions
Can I make butter chicken ahead of time?
Yes, and honestly it tastes better the next day. The spices continue to develop overnight and the chicken absorbs more of the sauce. Make it up to 2 days ahead, store it in the fridge in an airtight container, and reheat gently on the stove with a small splash of water or cream to loosen the sauce.
What if I don't have garam masala?
You can make a rough substitute by mixing together equal parts ground cumin, ground coriander, and ground cinnamon, plus a pinch each of ground cardamom and ground cloves. It won't be identical but it captures the warm, complex quality that garam masala brings. I've also used curry powder in a real pinch — it changes the flavor profile slightly but still works.
Can I make this without cream?
Yes. Full-fat coconut milk is the most straightforward swap — use it in a 1:1 ratio. The sauce will have a subtle coconut note underneath the spices, which actually works really well. Cashew cream (blended soaked cashews) is another option and keeps the dish closer to the original flavor. I would avoid low-fat alternatives since the richness is what holds the sauce together.
Can I freeze butter chicken?
Yes, it freezes well for up to 2 months. Cool it completely before transferring to a freezer-safe container. Thaw in the fridge overnight and reheat on the stove over low heat, adding a splash of water or cream as needed. The texture holds up well — I've reheated frozen butter chicken many times and it's always good.
Do I have to marinate the chicken overnight?
No, but the longer the better. The minimum is 1 hour, which gives the spices time to penetrate the surface. Overnight marinating gives you noticeably more tender chicken with flavor all the way through. I've done 30 minutes in a rush and the dish was still enjoyable — just less depth. If you're planning ahead, even 4 to 6 hours is a meaningful improvement over 1 hour.

INDIAN BUTTER CHICKEN RECIPE
Ingredients
- 1 lb boneless chicken thighs cubed
- 1 cup plain yogurt
- 2 tablespoon lemon juice
- 1 teaspoon turmeric
- 1 teaspoon chili powder
- 1 teaspoon garam masala
- 1 tablespoon ginger-garlic paste
- 2 tablespoon butter
- 1 onion finely chopped
- 1 cup tomato puree
- 1 cup heavy cream
- ½ teaspoon sugar
- Salt to taste
- Fresh cilantro for garnish
Instructions
- In a bowl, combine yogurt, lemon juice, turmeric, chili powder, garam masala, ginger-garlic paste, and salt. Add chicken, mix well, and marinate for at least 1 hour.
- Heat butter in a pan. Sauté onions until golden brown. Add tomato puree and cook until oil separates.
- Stir in marinated chicken and cook for 10-12 minutes. Add cream, sugar, and salt. Simmer for another 5 minutes.
- Garnish with fresh cilantro and serve hot.
Notes
- Make Ahead: Marinate the chicken up to 24 hours in advance. Cooked butter chicken can be stored in the refrigerator for 3-4 days.
- Customizing the Flavor: Adjust spice levels by adding more chili powder for heat or cream for a milder taste. Add cashew paste for richness.
- Serving Suggestions: Serve hot with naan, roti, or steamed basmati rice. Pair with a cucumber raita or green salad for a refreshing contrast.
- Allergy-Friendly Options: Use dairy-free yogurt and coconut cream for a dairy-free version.
- Storage Tips: Store leftovers in an airtight container in the refrigerator for up to 3 days. Freeze for up to 3 months.
This is one of those recipes I kept in my back pocket for a long time before I started making it regularly — I think I assumed it required more skill or time than I had on a weeknight. It doesn't. Once you've made it once, the sequence becomes second nature: marinade, sear, sauce, combine, rest. Forty-five minutes of active cooking and you have something that genuinely tastes like it came from a good restaurant.
What I love most about it is that the leftovers don't feel like a consolation prize. Cold butter chicken reheated with fresh naan the next day is something I look forward to. Zainab eats the leftovers cold straight from the container, which I don't technically endorse but also don't stop. If you're already cooking this on a weekend, double the batch — it stores beautifully and you'll thank yourself on a busy Tuesday.
If you're on a curry kick after this, my beef curry uses a similar spice foundation and is just as satisf





Comments
No Comments