You make it once. And suddenly every $18 delivery box tastes like a disappointment.
That’s the thing about a really good homemade chicken curry. It’s rich, deeply spiced, and so much better than the version that shows up lukewarm at your door in a plastic container.
And the wild part? It’s not even that hard to make.
This is the kind of recipe that sounds impressive at a dinner table but actually comes together in about 45 minutes. Weeknight-friendly. Cozy. The kind of meal that makes your whole kitchen smell absolutely incredible.
Here’s everything you need to know to make it happen.
What You’ll Need
For the Chicken
- 1.5 lbs (680g) boneless, skinless chicken thighs, cut into bite-sized pieces
- 1 tsp salt
- ½ tsp black pepper
- 1 tsp turmeric powder
For the Curry Base
- 3 tbsp neutral oil (vegetable or avocado)
- 1 large yellow onion, finely diced
- 5 garlic cloves, minced
- 1 tbsp fresh ginger, grated
- 2 Roma tomatoes, diced (or 1 can crushed tomatoes)
- 1 can (14 oz) full-fat coconut milk
- ½ cup plain yogurt (whole milk)
- 1 tbsp tomato paste
The Spice Blend
- 2 tsp cumin powder
- 2 tsp coriander powder
- 2 tsp garam masala
- 1.5 tsp paprika
- 1 tsp turmeric powder
- ½ to 1 tsp cayenne pepper (adjust to your heat preference)
- 1 tsp salt (plus more to taste)
For Finishing
- 1 tbsp butter
- A small handful of fresh cilantro, chopped
- Juice of half a lemon
Tools You’ll Need
- Large heavy-bottomed pan or Dutch oven
- Wooden spoon or silicone spatula
- Sharp chef’s knife
- Cutting board
- Measuring spoons and cups
- Box grater (for the ginger)
- Ladle (for serving)
Pro Tips
These are the things that actually make a difference:
- Use chicken thighs, not breasts. Thighs stay juicy even if you accidentally cook them a little too long. Breasts dry out fast. Thighs = way more forgiving.
- Don’t rush the onions. Cooking them low and slow (about 12 to 15 minutes) until they’re deeply golden is what creates that rich, sweet base. Cutting this step short is the #1 reason homemade curry tastes flat.
- Bloom your spices in oil. Adding your spice blend directly to the hot oil and onion mixture (before the liquids go in) unlocks a depth of flavor you simply can’t get otherwise. 60 seconds in the hot pan makes a huge difference.
- Temper the yogurt before adding it. Stir a spoonful of the hot curry into the yogurt first, then pour the yogurt into the pan. This keeps it from curdling and splitting.
- Finish with butter. A tablespoon of butter stirred in right at the end makes the sauce silky and restaurant-level glossy. It’s a small thing that does a lot.
How to Make Chicken Curry
Total time: ~45 minutes | Serves: 4
Step 1: Season the Chicken
Toss your chicken pieces with salt, pepper, and turmeric in a bowl. Set aside while you prep everything else.
Step 2: Build the Base
Heat oil in your pan over medium heat. Add the diced onion and cook, stirring occasionally, for 12 to 15 minutes until deeply golden and soft. Don’t rush this.
Add the minced garlic and grated ginger. Cook for another 2 minutes, stirring constantly so nothing burns.
Step 3: Add Tomatoes and Cook Down
Add your diced tomatoes and tomato paste. Stir well and cook for about 5 to 6 minutes until the tomatoes break down and the mixture starts pulling away from the sides of the pan.
Step 4: Bloom the Spices
Add all your spices directly to the pan. Stir everything together and cook for 60 seconds. The mixture will thicken and smell incredible.
Step 5: Add the Chicken
Add your seasoned chicken pieces and stir to coat every piece in the spice mixture. Cook for 4 to 5 minutes, letting the outside of the chicken seal.
Step 6: Add Coconut Milk and Yogurt
Pour in the coconut milk and stir. Then temper the yogurt (stir a spoonful of the hot sauce into it first) and add it to the pan.
Stir well, bring to a gentle simmer, then reduce heat to low. Cover and cook for 15 minutes.
Step 7: Finish and Serve
Uncover, taste for salt, and adjust. Stir in the butter, squeeze in the lemon juice, and top with fresh cilantro.
Serve over basmati rice or with warm naan.
Substitutions and Variations

No coconut milk? Use heavy cream instead. It gives a richer, more indulgent result.
Dairy-free? Skip the yogurt and use an extra splash of coconut milk. Use a plant-based butter to finish.
No fresh tomatoes? One can of crushed or diced tomatoes works perfectly.
Want it spicier? Add a sliced green chili with the onions, or increase the cayenne.
Vegetarian version? Swap the chicken for chickpeas and cubed paneer. Same method, just reduce the cook time in step 6 to 10 minutes.
Protein swap? Shrimp works great here. Add it in the last 5 minutes only, since shrimp cooks fast.
Make-Ahead Tips
This curry actually tastes better the next day. The spices have more time to settle and deepen.
- Make the curry base ahead: Cook everything up through Step 5 (without adding the liquids), let it cool, and refrigerate for up to 2 days. When you’re ready to eat, just pick up from Step 6.
- Marinate the chicken overnight: Toss the chicken in its seasoning, cover, and refrigerate. This gives you a head start and adds extra flavor.
Nutritional Breakdown (Per Serving, Approximate)
| Nutrient | Amount |
|---|---|
| Calories | ~420 kcal |
| Protein | 32g |
| Fat | 26g |
| Carbohydrates | 12g |
| Fiber | 3g |
| Sodium | 680mg |
Note: These values are estimates and don’t include rice or bread.
Meal Pairing Suggestions
- Basmati rice — the classic, and for good reason
- Garlic naan — for soaking up every drop of sauce
- Cucumber raita — cooling and fresh alongside the spice
- Simple salad — sliced cucumbers, red onion, and lemon juice
- Mango lassi — if you want to go all in on the experience
Leftovers and Storage
Good news: leftovers are arguably the best part of making this.
- Fridge: Store in an airtight container for up to 4 days. Reheat on the stovetop over low heat, adding a splash of water or coconut milk if the sauce has thickened too much.
- Freezer: Freeze for up to 3 months. Let it thaw overnight in the fridge before reheating.
- Note: The sauce may look separated after freezing — just stir it well as it heats and it’ll come back together.
FAQ
Can I use chicken breasts instead of thighs?
You can, but keep a close eye on them. Breasts cook faster and dry out more easily. Pull them from the heat as soon as they’re cooked through (internal temp: 165°F / 74°C).
My curry tastes flat. What went wrong?
Almost always one of two things: the onions weren’t cooked long enough, or you need more salt. Taste and adjust before you serve.
Can I make this without coconut milk?
Yes. Use heavy cream or even a good chicken broth for a lighter version. The flavor will be different but still really good.
Is this curry spicy?
At the amounts listed, it’s medium. Adjust the cayenne up or down based on your preference.
Can I double the recipe?
Absolutely. It freezes well, so making a big batch is always a good idea.
What kind of pan works best?
A Dutch oven or a heavy-bottomed stainless steel or cast iron pan holds heat evenly and gives you better results than a thin non-stick pan.
Wrapping Up
If you’ve been putting off making curry at home because it seemed like too much work, this recipe will change your mind completely.
It’s the kind of dish that feels like a project but is actually just 45 minutes and a handful of pantry spices. And once you nail it, you’ll be making it on repeat.
Give it a try this week, and let me know how it goes in the comments below. Did you add extra heat? Swap something out? Make it vegetarian? I love hearing how you make these recipes your own. Drop your questions down there too.