
So my epic butter chicken journey started about five years ago after dropping $22 on a tiny portion at this fancy Indian place downtown. I figured, how hard could it be? Famous last words. My first attempt was a total disaster – burned garlic, separated sauce that looked like curdled milk, and chicken you could've used as hockey pucks. My smoke detector got more action that night than it had all year.
After about fifteen failed attempts (and one memorable dinner where my boyfriend politely ate it anyway while making "this is fine" meme eyes), I finally nailed a version that doesn't require a million spices or chef-level skills. This recipe is basically my crowning culinary achievement – the thing friends request when they come over and the reason my neighbor "randomly" shows up at dinnertime when she smells it cooking.
Last month, my friend Deepa (who grew up in Mumbai and actually knows what this is supposed to taste like) came for dinner. When she asked for the recipe AND seconds, I basically wanted to put that moment on my resume under "achievements."
Stuff You'll Need
- Chicken Thighs - Not breasts. I don't care if you're on a health kick. Thighs have more flavor and don't dry out if you look at them wrong. Cut them into chunks that would fit nicely on a fork.
- Full-Fat Yogurt - The plain kind without fruit or sugar. The fat helps tenderize the chicken, and let's be honest, we're not making diet food here.
- Ghee - It's basically butter without the milk solids and it's WORTH finding. Check the international aisle. If you absolutely can't find it, use butter, but it's not the same.
- Yellow Onions - Dice them super fine so they basically disappear into the sauce. Nobody wants to bite into a chunk of onion.
- Fresh Garlic and Ginger - The pre-minced jar stuff just doesn't cut it here. Sorry, but I've tried to cheat with those and regretted it every time.
- Crushed Tomatoes - The canned kind. San Marzano are great if you're feeling fancy, but regular crushed tomatoes work fine too.
- Heavy Cream - Don't even think about substituting half-and-half or milk. We're making butter chicken, not disappointment soup.
- Garam Masala - This spice mix does a lot of the heavy lifting. If yours has been sitting in your cabinet since Obama was president, throw it out and get a fresh one.

How It's Done
Marinate That MeatMix yogurt with minced garlic, grated ginger, and spices until it looks like a weird orange-brown paste. Dump your chicken chunks in there and make sure they're all coated. This isn't just for flavor – the yogurt actually tenderizes the meat. Let it sit for at least 30 minutes, but honestly, overnight in the fridge is way better. I usually do this step while watching TV the night before.
Get Some ColorHeat up a big pan that's actually large enough (don't try to be cute with a too-small pan – I've been there). Add a splash of oil and let it get properly hot, then throw in some of the chicken. Don't crowd the pan unless you want steamed chicken instead of browned chicken. Get some nice color on the pieces, then fish them out and do the next batch. They don't need to be cooked through – we're just looking for that caramelization. My first few times, I rushed this step and missed out on soooo much flavor.
Build Flavor TownIn that same pan with all the browned bits (DO NOT WASH IT), melt some ghee and toss in your finely diced onions. Cook them down until they're soft and golden – seriously, don't rush this part. It takes like 8-10 minutes but makes a huge difference. Then add more garlic and ginger and cook just until you can smell them, about 30 seconds. Too long and they burn and get bitter and ruin everything.
Tomato MagicDump in your tomatoes and let them cook down until oil starts to separate around the edges. This usually takes about 15 minutes of occasional stirring. The color deepens from bright red to a more brick-red orange. The longer you let this go, the better it tastes, but I usually start getting impatient around the 15-minute mark.
Blend Baby BlendFor that smooth restaurant-style sauce, you gotta blend it. An immersion blender is easiest (and creates way less dishes), but a regular blender works too – just be super careful with the hot liquid and do it in batches. Pulse it until smooth, then back into the pan it goes.
Creamy DreamsTurn the heat down to low and stir in the heavy cream. Watch that gorgeous color change happen! Add the chicken back in, including any juices that pooled on the plate, and let everything simmer gently just until the chicken is cooked through. If the sauce gets too thick, splash in a little water.
Final TweaksTaste it! Need more salt? Add some. Too acidic from the tomatoes? A spoonful of sugar fixes that. Right before serving, I sometimes add another little splash of cream or knob of butter just because I'm extra like that.
The first time I made this for my partner, he took one bite and just silently ate for like 5 minutes straight. Then looked up and said, "Can we have this every week?" That's when I knew this recipe was a keeper. I've since made it for friends who "don't like curry" and watched them eat thirds.
Serving Ideas
Make it a whole Indian feast by serving with basmati rice and naan bread. Throw together a quick cucumber raita (yogurt + diced cucumber + pinch of cumin) for cooling contrast. This is my standard setup when having friends over – it looks impressive but isn't actually that much work.
For family dinner, I serve it family-style in a big shallow dish sprinkled with cilantro. Sometimes I add sides like quick-sautéed spinach with garlic or some roasted cauliflower. My 9-year-old nephew picks out all the chicken pieces and leaves the sauce, which is basically a crime, but what can you do?
When I'm trying to be "healthy," I serve it over cauliflower rice with some toasted cashews on top. The nutty crunch against the creamy sauce is actually killer, and I don't miss regular rice as much as I thought I would. Don't tell anyone I said that though.
Mix It Up
Veggie VersionSometimes I throw in handfuls of spinach or frozen peas at the end to feel better about my life choices. The spinach wilts down to nothing and turns the sauce this cool greenish color that actually looks pretty cool.
Coconut TwistOnce when I was out of heavy cream, I used coconut milk in desperation, and it was accidentally amazing. Now I sometimes do half cream, half coconut milk on purpose. It gives this subtle tropical thing that works really well.
Spice Cabinet BoostWhen I'm feeling extra fancy, I chuck a cinnamon stick, couple of cardamom pods, and a bay leaf in with the onions, then fish them out before blending. These whole spices give an aromatic quality that makes people think you actually know what you're doing.
Keeping Leftovers
Fridge SituationButter chicken actually gets BETTER after a day in the fridge – the flavors mingle and intensify. Keep it in the fridge up to 3 days in a container with a good lid. The sauce gets super thick when cold, but that's normal.
When reheating, go low and slow, and stir occasionally. Add a splash of water if it's too thick. I usually reheat on the stove, but a microwave works when I'm lazy or at work. Just don't nuke it at full power or the sauce might separate and look gross.
Freezer MagicThis stuff freezes like a dream. Sometimes I make a double batch just to freeze half. Portion it into meal-sized containers or even single servings in those little deli containers. Keeps about 2 months before it gets freezer taste.
To defrost, I usually transfer to the fridge the night before, but the microwave defrost works in a pinch. Just reheat gently once it's thawed.

Pro Tips
Spice FreshnessIf you can't remember when you bought your spices, they're probably dead. Do the sniff test – if they don't smell like much, they won't taste like much either.
Tomato HackIf you realize you're out of crushed tomatoes mid-recipe (been there), you can substitute tomato paste mixed with water in a pinch. Use about 3 tablespoons paste + 1 cup water.
Cream SuccessTo prevent the cream from separating, take a few spoonfuls of the hot sauce and mix it into the cold cream before adding everything back to the pan. This temperature gradient thing works every time.
My roommate's boyfriend once ate so much of this butter chicken that he had to unbutton his pants at the table. Instead of being embarrassed, he just patted his stomach and said, "Worth it." I consider that the highest possible praise. When people are willing to sacrifice dignity for another helping, you know you've nailed it.
Frequently Asked Questions
- → Can I use chicken breast instead of thighs?
- Yes, you can use boneless skinless chicken breasts instead of thighs. Just be careful not to overcook them as they can become dry more easily than thighs. Reduce the final cooking time by 2-3 minutes and check for doneness.
- → What can I substitute for kasoori methi (dried fenugreek leaves)?
- Kasoori methi has a unique flavor that's difficult to replicate exactly. If unavailable, you can skip it - the dish will still be delicious. Some cooks substitute a small amount (1/4 teaspoon) of maple syrup mixed with a pinch of mustard powder, though the flavor won't be identical.
- → How can I make this recipe dairy-free?
- For a dairy-free version, replace the yogurt with coconut yogurt, use oil instead of ghee/butter, and substitute the heavy cream with full-fat coconut milk or coconut cream. This will give a slightly different but still delicious flavor profile.
- → Can I make butter chicken in advance?
- Yes! Butter chicken actually improves in flavor when made ahead. You can prepare it up to 2 days in advance and refrigerate in an airtight container. Reheat gently on the stovetop, adding a splash of water or cream if the sauce is too thick.
- → What's the best way to serve butter chicken?
- Traditionally, butter chicken is served with naan bread or basmati rice to soak up the delicious sauce. For a lower-carb option, try cauliflower rice. Complete your meal with sides like raita (yogurt cucumber sauce), a simple salad, or sautéed vegetables.