I have a confession to make. For years, I told myself I was too healthy to order from that Indian takeout place down the street. I’d say things like, “I have plenty of veggies in the fridge” or “I can make anything from scratch.” Then, on a Tuesday night in November, after a twelve-hour shift where my feet hurt and my brain felt like static, I broke. I ordered the butter chicken. And you know what? It was good. Creamy, spiced, tender chicken swimming in a tomato-based sauce that tasted like comfort.
But then I got home, opened the container, and realized something. It was also heavy. Sluggish. I felt like I needed a nap immediately after eating it. And the next day? The leftovers tasted flat. Like, “why did I spend $25 on this?” flat.
That was the moment I decided to stop pretending. I wanted that flavor. I wanted the rich, velvety sauce and the tender chicken. But I wanted it without the hangover. So, I started experimenting. I tried five different versions. One was too spicy. One was too sweet. One tasted like it had been sitting in a restaurant kitchen since 1998. But the sixth one? The sixth one was magic.
This creamy butter chicken recipe isn’t just “good for homemade.” It’s better than the takeout. It’s brighter, fresher, and infinitely more satisfying. I’ve made this at least twenty times since last winter. My family asks for it weekly. My friends think I’ve joined a cult. And honestly? I don’t blame them. Once you taste this, you’re never going back to the plastic container.
Let’s talk about why this specific version works, what ingredients you actually need, and how to pull off that restaurant-quality sauce in your own kitchen without needing a degree in culinary arts.
Why You’ll Love This Creamy Butter Chicken Recipe
There are a lot of chicken recipes out there. I’ve got a few favorites on this site, like my cheesy broccoli and chicken fritters for when I’m trying to sneak veggies into my kids’ diets. But this creamy butter chicken? This is different. This is the dish that wins over skeptics. Here’s why it’s become my absolute go-to:
- It’s Faster Than Delivery — Seriously. From start to finish, this takes about 40 minutes. If you order takeout, you’re looking at 20 minutes of prep, plus 45 minutes of waiting for the driver, plus the anxiety of checking if they forgot your napkins. This? You’re eating in less time than it takes to scroll through delivery apps.
- The Sauce is Actually Creamy — Not watery. Not separated. Not grainy. This sauce is smooth, rich, and clings to every piece of chicken. I’ve tried using just butter, just cream, and a mix of both. The mix is the winner. It gives you the richness of butter with the body of heavy cream.
- It’s Customizable Heat — Some people love heat. Some people hate it. This recipe lets you control the spice level. Start with just garam masala for warmth. Add cayenne or red pepper flakes if you want a kick. You’re the boss of your spice level.
- It Uses Simple Ingredients — You don’t need a trip to a specialty grocery store. Everything is in the standard aisle. Tomato sauce, heavy cream, butter, garlic, ginger, and spices you probably already have in your cupboard. If you have olive oil, you can make this.
- It’s a Crowd-Pleaser — I’ve served this to my Indian friends (who gave it a nod of approval), my picky teenage son (who ate two helpings), and my health-conscious neighbor (who was surprised by how “fresh” it tasted). Everyone loves it.
So basically, if you want dinner to just work—flavorful, impressive, and easy—this is it. It’s the recipe I make when I want to feel like a gourmet chef but only have the energy of a tired parent.
Ingredients You’ll Need for the Best Butter Chicken
Here’s the thing about butter chicken: the quality of your ingredients matters more than you think. You don’t need fancy stuff, but you do need good stuff. I’m particular about a few items here, and I’ll tell you exactly why.
For the Chicken Marinade
Chicken thighs (2 pounds / 900g) — Boneless, skinless. I use thighs because they stay juicy. Breast meat dries out easily in this sauce, and I’ve ruined too many dinners with dry chicken. If you must use breast, cut it into large chunks and don’t overcook it.
Greek yogurt (½ cup / 120g) — Full-fat is best. It tenderizes the chicken and adds a tangy depth that balances the rich sauce. Sour cream works in a pinch, but yogurt is more traditional.
Lemon juice (2 tablespoons / 30ml) — Freshly squeezed. Bottled juice has a weird metallic taste that ruins the marinade. Just squeeze a lemon.
Garam masala (1 tablespoon) — This is the key spice blend. It’s warm, aromatic, and essential. Don’t substitute with curry powder unless you have to; they are very different.
Ground cumin (1 teaspoon) — Adds earthiness. Don’t skip it.
Garlic (4 cloves, minced / about 2 tablespoons) — Fresh only. Jarred garlic has a sulfurous bite that doesn’t mellow out enough in the marinade.
Fresh ginger (1 tablespoon, grated) — Again, fresh. Grate it on a microplane. Powdered ginger tastes like dust.
Salt (1 teaspoon) — Kosher or sea salt.
For the Sauce
Butter (3 tablespoons / 45g) — Yes, butter. It’s called butter chicken for a reason. Use unsalted so you can control the sodium.
Onion (1 large yellow onion, finely diced / about 300g) — You want it to dissolve into the sauce. Finely diced is key.
Garlic (4 cloves, minced / about 2 tablespoons) — More garlic never hurts in this recipe.
Ginger (1 tablespoon, grated) — Fresh, grated.
Tomato sauce (1 can / 15 ounces / 425g) — Use crushed tomatoes or tomato puree. Not marinara. Marinara has herbs that clash with the garam masala. Plain tomato sauce is best.
Heavy cream (½ cup / 120ml) — Full-fat. This is what makes it creamy. Half-and-half works but is thinner.
Ground coriander (1 teaspoon) — Citrusy and warm. Complements the cumin.
Cayenne pepper (½ teaspoon, optional) — For heat. Start with less if you’re sensitive.
Sugar (1 teaspoon) — Just a pinch. It balances the acidity of the tomatoes. Don’t skip it.
Salt and pepper — To taste.
Fresh cilantro (for garnish) — Optional, but it adds a bright, fresh finish.
What to Look For When Shopping
For the garam masala, I like the brand “Badia” or “Spice Islands.” They’re consistent. For the tomato sauce, I use Hunt’s or a generic store brand—doesn’t matter, just make sure it’s plain. And for the chicken, ask your butcher for thighs if you can. They’re cheaper and tastier than breast.
Equipment You’ll Need
You don’t need a special Indian wok or a clay tandoor oven (though that would be cool). Here’s what I actually use:
Large skillet or Dutch oven — I use a 12-inch stainless steel skillet. It needs to be big enough to hold the chicken and the sauce without splattering. A Dutch oven works too if you want to keep everything in one pot.
Measuring cups and spoons — Standard stuff. Dollar store versions work fine.
Microplane or fine grater — For the ginger. If you don’t have one, mince it as finely as possible.
Wooden spoon — For stirring. Silicone works too.
Sharp knife and cutting board — For chopping onions and garlic.
Whisk — Optional, but helpful for blending the sauce smoothly.
How to Make Creamy Butter Chicken: Step-by-Step
Alright, let’s make this! I’m walking you through exactly how I do it, including the little tricks I’ve picked up over the years.
Step 1: Marinate the Chicken (10 minutes prep, 30 minutes rest)
In a large bowl, combine the Greek yogurt, lemon juice, 1 tablespoon garam masala, cumin, minced garlic, grated ginger, and salt. Add the chicken thighs and toss to coat. Make sure every piece is covered. Cover the bowl and let it sit in the fridge for at least 30 minutes. If you have time, let it sit for 2 hours. The longer it marinates, the more tender and flavorful the chicken gets.
Why this matters: The acid in the yogurt and lemon juice breaks down the proteins in the chicken, making it tender. The spices penetrate the meat, so it’s flavorful all the way through, not just on the surface.
Step 2: Cook the Chicken (10 minutes)
Heat a large skillet over medium-high heat. Add a tablespoon of oil (or use the butter from the sauce step if you’re feeling indulgent). Add the chicken pieces in a single layer. Don’t crowd the pan—if you’re using a small skillet, cook in batches. Cook for 4-5 minutes per side, until golden brown and cooked through. The chicken doesn’t need to be perfect; it will finish cooking in the sauce. Remove the chicken from the pan and set aside on a plate.
Pro tip: You want color. Don’t rush this step. Browning the chicken adds depth to the final dish.
Step 3: Start the Sauce (5 minutes)
In the same skillet (don’t clean it! That brown stuff is flavor), reduce heat to medium. Add the 3 tablespoons of butter. Once melted, add the diced onion. Cook for 5-7 minutes, stirring occasionally, until the onion is soft and translucent. Add the 4 cloves of minced garlic and 1 tablespoon of grated ginger. Cook for 1 minute, until fragrant. Don’t let the garlic burn—it turns bitter instantly.
Step 4: Build the Flavor (5 minutes)
Add the ground coriander, remaining garam masala, and cayenne pepper (if using). Stir constantly for 30 seconds to toast the spices. This releases their essential oils and makes the flavor pop. Then, pour in the tomato sauce. Stir well to combine with the onion and spice mixture.
Step 5: Simmer and Cream (10 minutes)
Bring the sauce to a gentle simmer. Let it cook for 8-10 minutes, stirring occasionally. The sauce will thicken and the raw tomato taste will disappear. Stir in the sugar, salt, and pepper. Taste it. Does it need more salt? More heat? Adjust now.
Once the sauce is thickened, reduce heat to low. Stir in the heavy cream. Let it warm through for 1-2 minutes. Do not boil after adding the cream, or it might separate.
Step 6: Combine and Serve (2 minutes)
Add the cooked chicken back into the skillet. Spoon the sauce over the chicken. Let it simmer together for 2 minutes so the flavors meld. Garnish with fresh cilantro if you have it. Serve immediately over basmati rice or with warm naan bread.
Total Time: About 40 minutes (10 minutes active prep, 30 minutes cooking/marinating).
Expert Tips & Tricks for Success
Here’s everything I’ve learned from making this dozens of times. These tips will save you from my mistakes.
Use Thighs, Not Breasts
I know breast meat is “leaner,” but butter chicken is a rich, creamy dish. Dry chicken clashes with that richness. Thighs stay juicy even if you overcook them slightly. If you only have breast, cut it into large chunks and remove it from the heat as soon as it’s cooked.
Don’t Skip the Searing
It’s tempting to just throw the marinated chicken into the sauce. Don’t. Searing it first adds texture and flavor. The Maillard reaction (that browning process) creates complex flavors that boiling or simmering alone can’t achieve.
Toast Your Spices
Adding ground spices to hot butter or oil for 30 seconds before adding the tomatoes unlocks their full flavor. Raw ground spice tastes dusty. Toasted spice tastes aromatic and warm.
Balance the Acid
Tomatoes are acidic. Cream is rich. Sugar balances the acid. If your sauce tastes too sharp or tangy, add a teaspoon of sugar. If it tastes too sweet, add a splash of lemon juice. Taste as you go.
The Sauce Should Coat the Spoon
You want a sauce that’s creamy but not soupy. After simmering, it should coat the back of a spoon. If it’s too thin, let it simmer longer. If it’s too thick, add a splash of water or cream.
Variations & Substitutions
Once you’ve nailed the basic version, here’s how you can mix it up. I’ve tried all of these.
Chicken Breast Version
If you must use breast, marinate it as directed, but cook it for only 3-4 minutes per side. It will finish cooking in the sauce. Be careful not to overcook it.
Spicier Version
Add 1 teaspoon of cayenne pepper or ½ teaspoon of chili powder. Or, add a diced fresh jalapeño when you cook the onions. I like to add a pinch of smoked paprika for depth.
Milder Version
Skip the cayenne. Use only ½ teaspoon of garam masala. This is great for kids or anyone sensitive to spice.
Vegan Butter Chicken
Use tofu or chickpeas instead of chicken. Use coconut milk instead of heavy cream, and coconut oil instead of butter. Use cashew yogurt instead of Greek yogurt. It’s different, but still delicious.
Gluten-Free
This recipe is naturally gluten-free, as long as your garam masala and tomato sauce are certified gluten-free. Check labels, as some spice blends have fillers.
Serving Suggestions
Serve over fluffy basmati rice. Or, if you’re feeling fancy, make my easy side dish of naan bread to scoop up the sauce. It’s also great with roasted vegetables or a simple green salad.
Serving & Storage
How to Serve: I usually serve this straight from the skillet at the dinner table—it looks rustic and stays warm. But here are other ways I’ve enjoyed it:
- Basmati Rice: The classic choice. Cook it with a pinch of salt and a bay leaf.
- Naan Bread: Warm it up in a toaster oven for 2 minutes. Perfect for dipping.
- Quinoa: For a lighter, protein-packed base.
- Pasta: I know, it’s weird, but butter chicken over penne is surprisingly good. I’ve done it when I was lazy.
Storage: Store leftovers in an airtight container in the fridge for up to 4 days. The sauce will thicken in the fridge—totally normal.
Reheating: Best method: Add to a skillet with a splash of milk or cream over low heat. Stir until heated through and creamy again. Microwave method: Heat in 30-second intervals, stirring between. Add a splash of milk if it’s too thick. Never works: Trying to reheat in the pot you cooked it in. It always burns on the bottom. Ask me how I know.
Freezing: Honestly, this doesn’t freeze well because of the dairy. The sauce separates when thawed. Make it fresh or store in the fridge for up to 4 days.
Nutrition Information
I’m not a nutritionist, but here’s the breakdown if you’re tracking.
| Per Serving (based on 6 servings) | Amount |
|---|---|
| Calories | 480 |
| Protein | 35g |
| Carbs | 18g |
| Fiber | 3g |
| Sugar | 8g |
| Fat | 28g |
| Saturated Fat | 15g |
| Cholesterol | 120mg |
| Sodium | 520mg |
What’s Good: High in protein from the chicken. Good source of calcium from the yogurt and cream. Can add vegetables (like spinach or peas) to boost nutrition.
What to Know: Higher in calories from cream and butter. Contains dairy. Moderate sodium (use low-sodium tomato sauce to reduce).
My Take: Look, this is comfort food with cream and cheese. It’s not a diet recipe. But it’s way better than takeout, costs less, and I know exactly what’s in it. When I want to make it lighter, I use less cream and more tomatoes. But usually? I just eat a reasonable portion and enjoy it.
Final Thoughts
So that’s my go-to creamy butter chicken! I’ve probably talked your ear off at this point, but when you make a recipe this often, you have a lot to say about it.
This has saved weeknight dinners more times than I can count. It’s my answer to “what’s for dinner” when I’m tired, don’t want takeout, and still want something that tastes really good. My kids are happy, my husband’s happy, and I’m happy because I’m not stressed about cooking.
Make it yours! Try different add-ins, swap in your favorite vegetables, adjust the garlic (though more is always better in my opinion). The best recipes are the ones you adapt to your family’s tastes.
If you make this, drop a comment and let me know what you think! I love hearing how recipes turn out in your kitchen. And if something doesn’t work, tell me that too—I’m here to help troubleshoot.
Happy cooking! And I hope your kitchen smells half as good as mine does right now.
Frequently Asked Questions
Can I use chicken breast instead of thighs?
You can, but thighs are much better. They stay juicy and don’t dry out. If you use breast, cut it into large chunks and remove it from the heat as soon as it’s cooked. Overcooked breast meat will be tough and dry, which clashes with the creamy sauce.
Why did my sauce turn out watery?
Usually means you didn’t simmer it long enough. The sauce needs to cook for 8-10 minutes to thicken. Also, if you added too much cream at the end, it can thin it out. Let it simmer uncovered for a few more minutes to reduce.
Can I make this ahead for a dinner party?
Sort of. Make the sauce up to 2 days ahead and store in the fridge. Cook the chicken fresh right before serving (takes 10 minutes). Reheat the sauce gently and toss with hot chicken. It won’t be quite as good as fresh, but it’s close and saves you stress during the party. I do this all the time.
Why did my sauce get grainy or separated?
The heat was too high when you added the cream, which made it separate. Dairy can break if boiled. Always reduce heat to low before adding cream. If it’s already separated, try whisking in a splash of warm water or cream—it might come back together.
Can I use jarred garlic?
You can, but fresh tastes so much better in this recipe. Jarred garlic has a weird metallic taste that really shows up in cream sauces. If you must use it, use half the amount because it’s stronger. But honestly, mincing 4 cloves takes like 2 minutes. Buy pre-peeled garlic cloves if you want to save time.
How do I reheat leftovers without it getting dry?
Add a splash of milk or cream to a skillet, add your leftover chicken, and heat gently over low heat, stirring frequently. The extra liquid brings back the creamy texture. Microwave sort of works but tends to dry it out. If you do microwave, definitely add a splash of milk first and heat in short bursts, stirring between.
Can I double this recipe?
Absolutely! Double everything and use your biggest pot. The cooking times stay the same. I do this when I’m meal-prepping or feeding a crowd. Just make sure your skillet is big enough for the sauce—you might need to use two pans or a very large skillet.
Pin This Recipe!
Creamy Butter Chicken: Best Homemade Recipe
- Total Time: 40 minutes
- Yield: 6 servings 1x
Description
A rich, velvety homemade butter chicken recipe that tastes better than takeout. This dish features tender chicken thighs in a bright, fresh tomato-based sauce with a perfect balance of spices and cream, ready in about 40 minutes.
Ingredients
- 2 pounds boneless, skinless chicken thighs
- ½ cup full-fat Greek yogurt
- 2 tablespoons fresh lemon juice
- 1 tablespoon garam masala
- 1 teaspoon ground cumin
- 4 cloves garlic, minced
- 1 tablespoon fresh ginger, grated
- 1 teaspoon salt
- 3 tablespoons unsalted butter
- 1 large yellow onion, finely diced
- 4 cloves garlic, minced
- 1 tablespoon fresh ginger, grated
- 1 can (15 ounces) tomato sauce or crushed tomatoes
- ½ cup heavy cream
- 1 teaspoon ground coriander
- ½ teaspoon cayenne pepper (optional)
- 1 teaspoon sugar
- Salt and pepper to taste
- Fresh cilantro for garnish
- 1 tablespoon oil (for cooking chicken)
Instructions
- In a large bowl, combine Greek yogurt, lemon juice, 1 tablespoon garam masala, cumin, minced garlic, grated ginger, and salt. Add chicken thighs and toss to coat. Cover and refrigerate for at least 30 minutes (up to 2 hours).
- Heat a large skillet over medium-high heat with oil. Add chicken in a single layer and cook for 4-5 minutes per side until golden brown and cooked through. Remove chicken and set aside.
- In the same skillet, reduce heat to medium and melt butter. Add diced onion and cook for 5-7 minutes until soft and translucent.
- Add minced garlic and grated ginger to the onions and cook for 1 minute until fragrant.
- Stir in ground coriander, remaining garam masala, and cayenne pepper. Toast spices for 30 seconds.
- Pour in tomato sauce and stir to combine. Bring to a gentle simmer and cook for 8-10 minutes until the sauce thickens.
- Stir in sugar, salt, and pepper. Taste and adjust seasoning.
- Reduce heat to low and stir in heavy cream. Warm through for 1-2 minutes without boiling.
- Return cooked chicken to the skillet, spoon sauce over it, and simmer together for 2 minutes to meld flavors.
- Garnish with fresh cilantro and serve immediately over basmati rice or with naan bread.
Notes
Use chicken thighs for juiciness; breast meat can dry out. Toast spices to unlock flavor. Do not boil after adding cream to prevent separation. The sauce should coat the back of a spoon. Store leftovers in the fridge for up to 4 days; do not freeze as dairy may separate.
- Prep Time: 10 minutes
- Cook Time: 30 minutes
- Category: Main Course
- Cuisine: Indian
Nutrition
- Serving Size: 1 serving (approx. 1
- Calories: 480
- Sugar: 8
- Sodium: 520
- Fat: 28
- Saturated Fat: 15
- Carbohydrates: 18
- Fiber: 3
- Protein: 35
Keywords: butter chicken, creamy chicken, indian recipe, homemade takeout, easy dinner, chicken thighs, tomato sauce, heavy cream



