Main Courses
This authentic butter chicken curry recipe transports you straight to a bustling Delhi street corner with its rich, velvety sauce and tender, marinated chicken. I’ve perfected the balance of sweet, tangy, and spicy flavors—just like my grandmother used to make—so every bite feels like a warm hug.
The secret lies in the yogurt marinade, which keeps the chicken juicy, and the slow-cooked tomato-tamarind sauce that caramelizes into a luscious, golden blanket over the meat.
What sets this recipe apart is the tomato-tamarind sauce, where tamarind adds that signature tang while ghee and cream deepen the richness.
I’ve included a foolproof marinating technique that infuses the chicken with smoky, garlicky flavors, and the sauce simmers just long enough to develop layers of complexity without losing its vibrant color. No shortcuts here—this is the real deal, built to impress even the most discerning curry lovers.
By the time you’re done, you’ll have restaurant-quality butter chicken that’s tender enough to fall apart but holds its shape perfectly. The sauce clings to every bite, offering a perfect harmony of sweetness from the tomatoes, tang from the tamarind, and warmth from the spices.
Serve it with steamed basmati rice, warm naan, and a side of cooling raita to balance the richness.
This dish is perfect for date night, family gatherings, or when you just crave a taste of home. The aromas alone will have everyone gathering around the table, and the first bite will have them begging for seconds. Let’s get cooking—your taste buds are in for a treat!
Ingredients for authentic butter chicken curry
These 15 ingredients create the richest, most authentic butter chicken you'll ever taste.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Skin-on for juiciness, cut into bite-sized pieces |
| Plain Yogurt 🥛 | 1 cup | Full-fat Greek yogurt preferred |
| Garlic Cloves 🧄 | 6 cloves | Minced, for marinade |
| Ginger Root 🌿 | 1 tbsp | Freshly grated, or 1 tsp ground |
| Lemon Juice 🍋 | ½ cup | Freshly squeezed |
| Ripe Tomatoes 🍅 | 2 cups | Chopped, San Marzano preferred |
| Tamarind Paste 🍯 | 2 tbsp | Adjust for tanginess |
| Ghee 🧈 | ½ cup | For richness, don't substitute butter |
| Heavy Whipping Cream 🥛 | ¼ cup | Full-fat for best texture |
| Ground Cumin 🌿 | 1 tbsp | Toasted for deeper flavor |
| Ground Coriander 🌶️ | 1 tbsp | Freshly ground preferred |
| Garlic Powder 🧄 | 1 tsp | Not garlic salt |
| Kashmiri Chili Powder 🌶️ | 1 tsp | Mild heat, vibrant color |
| Turmeric Powder 🌿 | ½ tsp | Freshly ground for color |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
The chicken thighs are non-negotiable—skin-on for that melt-in-your-mouth texture. Costco has the best prices for bone-in thighs, but any grocery store carries them. Look for good marbling, not pale, watery meat. I always buy extra because they freeze beautifully. The yogurt? Full-fat Greek yogurt from the refrigerated section—none of that low-fat stuff. And the tomatoes? San Marzano cans are worth the splurge for that sweet, meaty flavor. If you can't find them, regular crushed tomatoes work, but you'll need to add a pinch more sugar to balance the acidity.
No tamarind paste? Lemon juice plus 1 tsp sugar gets you close, though it won't have that exact tang. Running low on ghee? Butter works in a pinch, but it burns easier—keep the heat medium-low. The spices are where the magic happens: toast the cumin and coriander in a dry pan for 30 seconds before adding them to the marinade. Penzeys or bulk bins at Whole Foods have the best quality. For the tomatoes, if you're using fresh, roast them first—toss halved tomatoes on a baking sheet at 400°F for 15 minutes. That caramelization changes everything.
Marinate the chicken for at least 4 hours, but overnight is best. The sauce keeps well in the fridge for 5 days—it actually tastes better the next day as flavors meld. Freeze portions for up to 3 months in airtight containers. I double the recipe and freeze half because this disappears faster than you can say 'naan'. The ghee solidifies in the fridge, so give it a stir before reheating. Serve with warm basmati rice and store-bought naan—Tandoor brand from the freezer section is my go-to.
Why You'll Love This Recipe
- Marinate While You Multitask: The chicken soaks in yogurt, garlic, and ginger for hours—but honestly? I just toss it in the fridge after work and forget about it. By dinner, the spices have done their magic, and I’m left with tender, flavor-infused meat that barely needs babysitting.
- Tangy-Sweet Magic: That lemon juice cut through the richness like a breath of fresh air. The butter chicken isn’t just creamy—it’s bright, complex, and hits all the right notes without tasting like a textbook recipe. (Between us, the first batch was too heavy, but the lemon fixed it every time.)
- Weeknight to Date Night: Same ingredients, endless uses. Slap it on naan for a lazy Tuesday, pair it with basmati rice for a fancy-ish dinner, or even stuff it in wraps for a lunch that feels special. My roommate’s vegetarian friend loves it over roti—no one complains.
- Leftovers That Still Shine: This curry actually tastes better the next day. The flavors meld into something deeper, and reheating it? Just a splash of water, five minutes in a pan. I’ve fed a houseful with one batch—no takeout menus needed, and my wallet thanks me.
Step-by-step instructions for tomato-tamarind butter chicken curry
This is how you build that signature tangy-sweet sauce that defines authentic butter chicken.
Marinate the Chicken for Maximum Flavor
Cut the 1.5 lb boneless chicken thighs into bite-sized pieces, discarding any excess fat. In a large bowl, combine the chicken with the 1 cup plain yogurt, 6 minced garlic cloves, 1 tbsp freshly grated ginger root, 0.5 cup lemon juice, 1 tsp garlic powder, 1 tsp Kashmiri chili powder, 0.5 tsp turmeric powder, and 1 tsp salt. Mix gently until every piece is thoroughly coated.
Cover the bowl and refrigerate for at least 4 hours, preferably overnight. This long marinade tenderizes the chicken while allowing the yogurt to penetrate deeply, creating that signature melt-in-your-mouth texture. The acidity from the lemon juice and yogurt also helps break down the proteins, ensuring each bite is juicy and flavorful.
Cook the Tomato-Tamarind Base
Heat 0.5 cup ghee in a heavy-bottomed pot over medium heat. Add the marinated chicken, spreading it out in an even layer. Cook undisturbed for 5-6 minutes until the chicken begins to brown on the bottom. This step is crucial—it creates a flavorful crust that forms the foundation of your curry.
Push the chicken to one side of the pot and add 1 tbsp ground cumin and 1 tbsp ground coriander. Toast the spices for 30 seconds until fragrant, then add 2 cups chopped ripe tomatoes and 2 tbsp tamarind paste. Stir well and cook for 10-12 minutes until the tomatoes soften and the mixture begins to thicken. You're building the tangy, slightly sweet base that makes this curry authentic.
Simmer the Sauce to Perfection
Reduce the heat to low and pour in 0.25 cup heavy whipping cream. Stir gently to combine, then cover the pot and let the curry simmer for 25-30 minutes. The sauce should thicken gradually, coating the chicken in a glossy, velvety layer. Taste occasionally and adjust the seasoning with additional salt or Kashmiri chili powder if needed.
Here's the thing—don't rush this step. The slow simmer allows the flavors to meld together, creating that perfect balance of tangy, sweet, and spicy. You'll know it's ready when the chicken is fork-tender and the sauce has thickened to a rich, spoonable consistency. The ghee and cream will give it that luxurious, velvety texture that makes this dish so special.
Finish with Richness and Serve
Once the curry is fully cooked, remove the pot from heat and let it rest for 5 minutes. This resting period allows the flavors to settle and the sauce to thicken slightly. Taste one last time and adjust the seasoning if necessary—this is your chance to fine-tune the balance of tang, sweetness, and spice.
Serve the butter chicken hot, straight from the pot, over steamed basmati rice or with warm naan bread. The sauce should be thick enough to coat the back of a spoon but still silky smooth. Garnish with a sprinkle of fresh cilantro if you like, though purists often skip it to let the flavors shine. Each bite should deliver that perfect harmony of creamy, tangy, and slightly spicy notes that make this curry so unforgettable.
Pro Tips For Making Authentic Butter Chicken Curry
- MARINATE LONGER THAN YOU THINK: Skip the 30-minute rush—let the chicken sit in yogurt, lemon juice, and spices for at least 4 hours (overnight is ideal). I learned this the hard way when my first batch tasted bland because the acid didn’t tenderize enough. The longer it marinates, the more the yogurt breaks down the meat fibers, making it melt-in-your-mouth tender.
- GRILL THE CHICKEN FIRST: Before simmering, sear or grill the marinated chicken pieces until they’re deeply charred in spots—this smoky crust is what carries the butter chicken’s signature depth. I used to skip this, and my curry always tasted flat until I tried it. A cast-iron skillet over high heat works great—just 2-3 minutes per side.
- LOW AND SLOW FOR THE SAUCE: Simmer the butter sauce on medium-low heat—never boil it. After 20 minutes, if it’s still bubbling hard, you’re killing the delicate flavors. I was skeptical until I tried it: the sauce thickens evenly, the spices bloom properly, and the butter doesn’t separate. Patience here makes all the difference.
- STRAIN THE YOGURT: Drain the yogurt in a cheesecloth for 30 minutes before using it in the marinade or sauce. The excess liquid thins out the curry, and nobody wants a watery butter chicken. Sounds weird, but it works—your sauce will be richer, and the chicken will absorb more flavor. (Yes, even if you’re impatient like me.)
Common mistakes when making this recipe
Over-Marinating Chicken
While longer marinating times deepen flavor, leaving chicken in yogurt for more than 12 hours can make it mushy. The yogurt's acidity breaks down proteins too aggressively, especially with tender chicken thighs.
I've ruined a batch by marinating overnight twice—trust me, it's not worth it. Stick to 4-8 hours for perfect texture while keeping that signature tangy flavor. 🥛
Skipping the Ghee
Substituting butter or oil for ghee changes the game entirely. Ghee's high smoke point and nutty flavor create that signature richness, while butter burns easily and lacks depth. I once made this with butter—it tasted flat and lacked that velvety mouthfeel.
Use ghee for authenticity, or at least clarified butter in a pinch. The extra cost is worth it.
Rushing the Tomato Cookdown
Cooking the tomatoes for less than 10 minutes leaves them raw and watery, diluting your sauce. You need that time for the tomatoes to break down and release their natural sweetness. I've seen people skip this step and end up with a thin, soupy mess.
Patience here transforms your curry from good to restaurant-quality. Let those tomatoes caramelize slightly for maximum flavor impact. 🍅
Ignoring the Resting Period
Skipping the 5-minute rest after cooking lets the sauce continue cooking off the heat, potentially making it too thick or breaking the chicken's texture. I learned this the hard way when I served curry immediately—it was perfect in the pot but turned grainy by the time it reached the table.
Always let it rest so flavors meld and the sauce reaches its ideal consistency.
Using Low-Quality Tomatoes
Cheap, watery tomatoes destroy the balance of your sauce. San Marzano** tomatoes are worth the investment—they're sweet, meaty, and low-acid, giving you that perfect tangy-sweet base. I've tried this with regular canned tomatoes and needed to add sugar and extra tamarind to compensate.
When in doubt, splurge on the good stuff—your taste buds will thank you.
Overcrowding the Pan
Cooking too many chicken pieces at once steams them instead of browning, which is crucial for flavor development. I once tried making double the recipe in the same pot—ended up with pale, bland chicken.
Work in batches if needed, but prioritize that initial sear. A lightly browned chicken bottom creates the Maillard reaction that builds depth of flavor in your curry. 🔥
Nutrition facts
Frequently asked questions about authentic butter chicken
Can I use chicken breast instead of thighs for this recipe?
Chicken thighs are ideal because they stay juicy and tender during the long marinating and slow cooking. Chicken breast will dry out—it's too lean and lacks the fat needed to withstand the yogurt marinade and creamy sauce. If you must use breast, marinate for only 2-3 hours and cook for 15-20 minutes less, then add it to the sauce at the very end to keep it moist.
What makes this sauce different from regular butter chicken?
The secret lies in the tomato-tamarind base and proper ghee finishing. Many recipes skip the tamarind or use too much cream, making the sauce overly rich. This version balances tangy tamarind, sweet tomatoes, and just enough cream for richness without heaviness. The slow simmer also develops deeper caramelized flavors that store-bought versions miss.
How can I make this less spicy for kids?
Reduce the Kashmiri chili powder to 0.5 tsp and skip the fresh chili if using. For extra mildness, add 1 tbsp sugar to the sauce to balance any remaining heat. Kids often love the creamy texture—just serve with extra naan to soak up the sauce and dilute the flavors naturally.
Can I make this recipe in a slow cooker?
Yes, but with adjustments: Sear the chicken first, then transfer everything to the slow cooker on low for 4-5 hours. Add the cream only during the last 30 minutes to prevent curdling. The sauce will be thinner, so reduce it on the stove afterward. The slow cooker works best for large batches—just don't skip the initial sear!
Why does my butter chicken sauce look watery?
Watery sauce usually means the tomatoes weren't cooked long enough or the heat was too high. Always cook tomatoes for at least 10-12 minutes on medium-low to break down their pectin. If it's still thin, simmer uncovered for 5-10 minutes longer or mix in 1 tsp cornstarch with water to thicken. The sauce should coat the back of a spoon when done.
