The Real Problem With Butter Chicken at Home
Most people who try to make butter chicken at home end up with something that tastes nothing like the restaurant version. The sauce ends up thin, the chicken is dry, and everything just tastes like tomato paste with a little cream slapped on top. I learned this the hard way after spending about three years trying to reverse-engineate what restaurants actually do before I got it right. The base of this dish is a tomato-based gravy enriched with butter and cream, but the actual technique matters far more than the ingredient list. Here is how I make it now, after throwing out probably twelve failed batches over the years. You need boneless chicken thighs, preferably 2 to 2.5 pounds cut into one-inch pieces. For the marinade, use half a cup of plain yogurt, two tablespoons of ginger-garlic paste, one teaspoon of Kashmiri red chili powder, half a teaspoon of turmeric, and salt to taste. The gravy calls for about one and a half cups of tomato puree, two tablespoons of cashew paste, three tablespoons of butter, one tablespoon of oil, one large finely chopped onion, one tablespoon of ginger-garlic paste, one teaspoon of Kashmiri chili powder, half a teaspoon of garam masala, half a teaspoon of coriander powder, and about half a cup of heavy cream plus an extra tablespoon of butter for finishing.
Start by marinating the chicken in the yogurt and spice mixture for at least two hours, though overnight is better. If you are short on time, you can get away with thirty minutes, but the yogurt needs that time to tenderize the meat. While the chicken marinates, cook the onions in a mixture of butter and oil over medium heat until they are deeply golden, which takes about twelve to fifteen minutes. Adding a pinch of sugar at this stage helps the onions caramelize faster without burning. Once the onions are ready, add the ginger-garlic paste and cook for about a minute until the raw smell disappears. Then add the ground spices and toast them briefly before pouring in the tomato puree. Cook this down for about ten minutes, stirring occasionally, until the puree darkens slightly and the oil begins to separate from the masala at the edges. This step is important because raw tomato puree tastes sharp and grassy, and cooking it down changes the entire flavor profile. Add the cashew paste and mix well, then add about a cup of water to reach your desired consistency. Bring it to a simmer and let it cook for another five minutes. Now add the marinated chicken along with all the marinade. Cook covered on medium-low heat for about fifteen minutes, turning the chicken pieces once halfway through. Do not overcook the chicken or it will turn tough. The chicken is done when it pulls apart easily with a fork.
Turn off the heat and stir in the cream and the extra tablespoon of butter. Let the dish rest for five minutes before serving. The resting period allows the flavors to meld and the sauce to thicken slightly. Serve with naan or basmati rice.
Get the Full Details

A Specific Problem I Faced
One time I made this recipe and the sauce separated completely, with a layer of grease floating on top and the tomatoes breaking down into something watery and unappetizing. I had cooked it too aggressively after adding the cream. The workaround was to remove the pan from heat immediately, let it cool for a couple of minutes, and then whisk in an extra tablespoon of cold butter off the heat. That emulsified the sauce back together. Since then, I always finish butter chicken off the heat and never let cream-based sauces boil. The biggest mistake is skipping the Kashmiri chili powder and using regular cayenne or paprika instead. Kashmiri chili powder gives you that characteristic deep red color without extreme heat. If you substitute cayenne, your butter chicken will be painfully spicy and visually dull. Paprika comes closer in color but lacks the slight fruity sweetness that Kashmiri chilies provide. Another thing people overlook is the cashew paste. It is not just a thickener. The fat and natural sugars in the cashews round out the acidity of the tomatoes and give the sauce a velvety texture that nothing else replicates. You can substitute with almond paste in a pinch, but the flavor changes noticeably.
Limitations You Should Know About
This recipe does not produce what purists would call a traditional North Indian dish. Butter chicken, or murgh makhani, was invented in Delhi in the 1950s at a restaurant called Moti Mahal. It was created as a way to use leftover tandoori chicken by rehydrating it in a rich tomato-cream sauce. So the technique of cooking the chicken separately first and then finishing it in the gravy is actually the authentic approach. However, if you are looking for something rooted in older regional Indian cooking traditions, this is not it. It is a modern restaurant dish that has become iconic. The recipe also requires ingredients that may not be available in every grocery store outside of major cities. Kashmiri chili powder and whole garam masala spices for toasting are worth seeking out at an Indian grocery store. The difference in flavor between freshly ground spices and pre-ground jarred ones is significant enough to justify the trip. If you are making this for a large group and need to prepare ahead, the tomato-onion base can be made a day in advance and refrigerated. Reheat it gently, add the chicken, and finish with cream. Do not add the cream until serving, or it will break and separate over time.
What to Expect
The total active cooking time is about forty-five minutes, not counting the marination period. If you marinate overnight, plan for roughly twenty-four hours from start to finish. The dish tastes better the next day as the spices continue to develop, which is worth noting if you are meal prepping.
