Main Courses
Cook's Illustrated butter chicken recipe delivers restaurant-quality results with tender chicken swimming in a creamy, velvety tomato gravy. After years of testing, I've perfected the technique for achieving that signature balance of rich, spiced flavors without breaking the emulsion.
The secret lies in marinating the chicken overnight and building the sauce in stages—starting with a dry spice base that blooms into aromatic depth.
What sets this recipe apart is the precision in protein handling: pan-searing the marinated chicken until golden creates a flavorful crust while keeping the centers tender. The sauce begins with a tomato purée reduced to a jammy consistency, then emulsifies with butter and cream for that signature silky texture.
Every step builds complexity without requiring advanced skills—just patience and attention to timing.
By the time you plate it, you'll have perfectly balanced butter chicken with creamy sauce clinging to each bite and chicken that falls apart at the touch.
The aroma alone will have everyone gathering around the table. This is the version that rivals your favorite Indian restaurant—just with a home kitchen touch.
Serve with basmati rice and warm naan for the full experience. The recipe scales beautifully for crowds, and leftovers reheat perfectly. Let's get cooking—this is butter chicken the way it should be made.
Ingredients for cook's illustrated butter chicken
Pantry staples meet aromatic spices for restaurant-quality butter chicken at home.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Skin-on preferred for flavor |
| Plain Yogurt 🥛 | 1 cup | Full-fat Greek yogurt preferred |
| Lemon Juice 🍋 | ¼ cup | Freshly squeezed, no pulp |
| Ginger Root 🌿 | 1 inch | Fresh, peeled and grated |
| Garlic Cloves 🧄 | 6 cloves | Peeled and minced |
| Ground Cumin 🌶️ | 1 tbsp | Toasted for depth |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Turmeric Powder 🌶️ | ½ tsp | Bright orange color |
| Kashmiri Chili Powder 🌶️ | ½ tsp | Mild heat, red color |
| Garam Masala 🌶️ | 1 tsp | Freshly ground preferred |
| Yellow Onion 🧅 | 1 whole | Medium size, finely chopped |
| Tomato Purée 🍅 | 1 cup | San Marzano preferred |
| Unsalted Butter 🧈 | ½ cup | European style preferred |
| Heavy Cream 🥛 | ½ cup | Full-fat for creaminess |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
The chicken thighs are non-negotiable—skin-on gives the best flavor. Trader Joe's or Whole Foods carry good quality, but any grocery store will do. For the yogurt, full-fat Greek yogurt (like Fage) is ideal—it's thick enough to cling to the chicken. The ginger and garlic should be fresh, not powdered. Indian grocery stores often have better quality spices, but if you're using regular grocery store brands, make sure they're labeled '100% pure' and smell vibrant. The tomato purée? San Marzano is the gold standard, but any good-quality canned purée works.
No plain yogurt? Substitute sour cream or even mayo in a pinch—just reduce the lemon juice by half. Running short on Kashmiri chili? Paprika plus a pinch of cayenne mimics the color and mild heat. The butter and cream are where the richness comes from—European-style butter (like Plugrá) has higher fat content, but any good unsalted butter works. For the garam masala, Madras brand is widely available and excellent, but any good-quality blend will do. If you can't find Kashmiri chili, smoked paprika adds depth without the heat.
Marinate the chicken for at least 4 hours, but overnight is best—this is where the magic happens. The sauce can be made ahead and reheated gently, but add the cream just before serving to keep it from breaking. Store leftovers in the fridge for up to 4 days, and freeze for 3 months. The sauce thickens as it cools, so a splash of warm water or milk helps restore its creaminess when reheating.
Why You'll Love This Recipe
- Marinate Like a Pro: The secret weapon here is letting that chicken soak in yogurt, lemon juice, and spices for at least 2 hours—or overnight if you’re patient like me. That’s how you get tender, flavor-packed meat that falls apart at the touch of a fork. No fancy techniques, just time working its magic.
- Buttery, Creamy Perfection: The combination of European-style butter and heavy cream makes this sauce so rich, it feels indulgent but somehow balanced. That tomato purée? It keeps it from being too heavy, while the ginger and garlic add a zing that makes every bite sing. Trust me, this isn’t your average butter chicken.
- Feeds a Crowd (Without the Stress): This recipe easily serves four hearty portions—perfect for game days, family dinners, or when you’re craving leftovers for lunch. Plus, it reheats beautifully, so you can meal prep without sacrificing flavor. Just pop it back in the pan with a splash of water, and it’s like fresh off the stove.
- Budget-Friendly Luxury: Skin-on chicken thighs are cheaper than breast, and full-fat yogurt and cream add richness without breaking the bank. The spices might seem pricey, but a little goes a long way, and you’ll use them for other dishes too. It’s the kind of recipe that feels fancy but won’t drain your wallet.
Step-by-step instructions for cook's Illustrated butter chicken
This method delivers melt-in-your-mouth chicken and velvety gravy every time.
Marinate the Chicken for Maximum Flavor
In a large bowl, combine the 1½ lb boneless chicken thighs with the 1 cup plain yogurt, ¼ cup lemon juice, 1 tbsp ground cumin, 1 tbsp ground coriander, ½ tsp turmeric powder, ½ tsp kashmiri chili powder, and 1 tsp garam masala. Mix until every piece is thoroughly coated in the marinade.
Here's the thing - the yogurt does more than just add flavor. It tenderizes the chicken and helps create that signature creamy texture in the finished dish. Let the chicken marinate in the refrigerator for at least 2 hours, but I prefer to do this overnight for maximum flavor penetration. The longer it marinates, the more tender and aromatic the chicken will be.
While the chicken marinates, prepare your aromatics. Finely chop the 1 yellow onion and mince the 6 garlic cloves. Peel and grate the 1 inch ginger root. These will form the flavor base for your gravy, so take your time to get them finely chopped - you want them to dissolve completely into the sauce.
Brown the Chicken and Build the Gravy Base
Heat a large, heavy-bottomed skillet over medium-high heat. Add the ½ cup unsalted butter and let it melt completely, then add the chicken in a single layer. Don't overcrowd the pan - cook in batches if needed. Brown the chicken for 4-5 minutes per side until it develops a deep golden color and releases easily from the pan.
This browning step is crucial for developing deep flavor. You want to see a nice crust form on the chicken - that's where all the Maillard reactions happen. Once browned, remove the chicken from the pan and set it aside. You'll come back to it in a few minutes.
In the same skillet, add the chopped onion and cook for 5-6 minutes until softened. Add the minced garlic and grated ginger, cooking for another 30 seconds until fragrant. Pour in the 1 cup tomato purée and stir to combine with the fond at the bottom of the pan. This is where all those caramelized flavors dissolve into your sauce.
Simmer the Gravy to Perfection
Return the browned chicken to the skillet and add 1 cup of water. Bring to a gentle simmer, then reduce heat to low. Cover and let it cook for 20-25 minutes, or until the chicken is tender and the sauce has thickened slightly. The chicken should reach an internal temperature of 165°F.
Here's where the magic happens. The chicken should be fork-tender but still holding its shape. If the sauce starts to reduce too much, you can add a splash of water to keep it balanced. The key is to let the flavors meld together - you should smell that wonderful combination of spices and tomatoes filling your kitchen.
Once the chicken is cooked, remove it from the skillet and set it aside again. Stir the ½ cup heavy cream into the remaining sauce until it's fully incorporated. The cream will give you that signature rich, velvety texture that makes this dish so special. Taste and adjust seasoning with the 1½ tsp salt if needed.
Finish and Serve with Confidence
Return the chicken to the skillet and let it warm through in the creamy sauce for 2-3 minutes. The chicken should be coated in that luxurious gravy, with every bite delivering perfect tenderness and rich flavor. The sauce should coat the back of a spoon but still be pourable - it should cling beautifully to the chicken.
To serve, you can either keep the chicken whole or shred it slightly for more dramatic presentation. The creamy tomato gravy should be the star here, so make sure each serving gets a generous ladleful. This dish pairs perfectly with basmati rice or warm naan bread to soak up all that delicious sauce.
Real talk - the first time I made this, I was worried about the cream making the sauce too heavy. But the tomato purée and spices balance it perfectly, creating a sauce that's rich without being greasy. That's the beauty of this recipe - it's simple but delivers restaurant-quality results every time.
Pro Tips For Making Cook'S Illustrated Butter Chicken
- Toast Your Cumin First: I learned this the hard way—skipping the toast means your cumin will taste flat. Dry-toast the 1 tbsp ground cumin in the skillet for 30 seconds before adding butter. The nutty aroma deepens instantly, and it won’t overpower the sauce like raw cumin can.
- Grate Ginger Fine: That 1-inch ginger root needs to disappear into the sauce, not sit as chunks. Use the small holes of a box grater and press hard—no need to peel it first, just scrub and grate. Trust me, your future self will taste the difference when the sauce is silky smooth.
- Don’t Rush the Simmer: The 20-25 minutes of covered simmering isn’t optional. I used to cut it short, and the chicken turned out dry while the sauce stayed thin. Keep the heat low and let the chicken hit 165°F—it’s the only way to get that fall-apart texture without drowning it in extra liquid.
- Strain the Tomato Purée: San Marzano is great, but if your tomato purée has skins or seeds, strain it first. The 1 cup you use will blend into the sauce more evenly, giving you that velvety consistency instead of a chunky surprise. (Yes, even if it’s “smooth” on the label.)
Dietary considerations for this cook's illustrated butter chicken
Gluten-Free Adaptation
The yogurt marinade already works beautifully for gluten-free diets, but I always double-check my spices for hidden gluten—many pre-ground blends contain fillers. For extra assurance, use certified gluten-free garam masala like the one from Penzeys Spices.
The sauce itself is naturally gluten-free, but always verify your San Marzano tomato purée label, as some brands add anti-caking agents. 🌟
Dairy-Free Options
Substitute the ½ cup unsalted butter and ½ cup heavy cream with ½ cup coconut cream (full-fat) for a rich, dairy-free alternative. The coconut adds a subtle sweetness that pairs well with the tomato base.
For the yogurt marinade, use unsweetened almond yogurt instead of plain yogurt—it keeps the tenderness without dairy. Taste and adjust salt, as coconut cream is naturally less salty.
Lower-Carb Approach
Skip the 1 cup plain yogurt in the marinade and replace it with 1 cup unsweetened almond milk mixed with 1 tbsp lemon juice and the same spices. This reduces carbs while keeping the marinade's acidity to tenderize the chicken.
For the sauce, use ½ cup coconut milk instead of heavy cream—it’s lower in carbs but still creamy. The dish stays rich without the carb spike. ✨
Spice Adjustments
If you prefer milder heat, cut the ½ tsp Kashmiri chili powder in half and add ¼ tsp cayenne pepper for a subtle kick. For those who love spice, increase the Kashmiri to 1 tsp and add ½ tsp red pepper flakes with the aromatics.
I like to toast the spices in the butter before adding the onion for deeper flavor—just cook them for 30 seconds until fragrant before proceeding.
Vegetarian Substitute
For a vegetarian version, swap the chicken for 1.5 lbs extra-firm tofu, pressed and cubed. Marinate it in the same yogurt-spice blend for at least 2 hours (or overnight). When browning, use a nonstick skillet with 1 tbsp olive oil to prevent sticking.
The sauce remains the same, but tofu absorbs flavors beautifully—just ensure it’s fully cooked to 165°F internal temperature. Serve with cauliflower rice for a lower-carb twist! 💛
Nutrition facts
Frequently asked questions
Why does this recipe call for skin-on chicken thighs?
Skin-on chicken thighs add incredible depth of flavor through the Maillard reactions that occur while browning. The skin creates a delicious crispy exterior while keeping the meat juicy and tender. If you prefer boneless, just trim the skin before cooking but keep it on during the browning step for maximum flavor infusion.
Can I make the sauce ahead of time?
Prepare the sauce up to the point of adding the ½ cup heavy cream, then refrigerate it uncovered for up to 2 days. When ready to serve, gently reheat the sauce on low heat and stir in the cream just before serving. This prevents the sauce from separating or becoming grainy.
What if my sauce turns out too thick?
Simply add 1-2 tablespoons of warm water or ½ cup of chicken broth while stirring constantly. The sauce should reach a consistency that coats the back of a spoon but remains pourable. If you're concerned about thinning the flavor, add the liquid gradually and taste as you go.
How do I prevent the cream from separating when reheating leftovers?
Gently warm the leftover sauce on the stovetop over low heat, stirring constantly. If it separates, whisk in 1 teaspoon of cornstarch mixed with 1 tablespoon of cold water to help re-emulsify. Alternatively, blend the sauce briefly with an immersion blender for a silky texture.
Can I use chicken breasts instead of thighs?
While thighs are ideal for their tenderness and flavor, you can use breasts—but they'll require 5-7 minutes less cooking time to avoid dryness. Marinate them the same way, but monitor their internal temperature closely, aiming for 165°F without overcooking. The sauce will still be delicious, but the texture won't be as melt-in-your-mouth.
