You know that feeling when you take one bite of something and immediately start doing the math on how soon you can make it again?
That’s this curry.
Indian chicken curry is one of those dishes that smells like it’s been cooking for hours even when it hasn’t. The kind that fills your kitchen, gets into your clothes, and honestly… you’re not even mad about it.
And the flavor? Layers. Every single bite is different.
This isn’t a complicated recipe, but it does deliver the kind of depth you’d expect from a dish that’s been perfected over centuries in Indian kitchens. You’re going to make this once and it’ll become your go-to cold-weather dinner for life.
What You’ll Need

For the Chicken Marinade
- 750g (1.65 lbs) boneless chicken thighs, cut into bite-sized pieces
- 1/2 cup plain whole-milk yogurt
- 1 tsp turmeric powder
- 1 tsp Kashmiri red chili powder (or regular chili powder)
- 1 tsp salt
For the Curry Base
- 3 tbsp neutral oil (vegetable or sunflower)
- 2 medium onions, finely diced
- 1 tbsp ginger paste (or freshly grated ginger)
- 1 tbsp garlic paste (or 4–5 minced garlic cloves)
- 2 medium tomatoes, finely chopped (or 1/2 cup canned crushed tomatoes)
- 1/2 cup plain whole-milk yogurt
Spices
- 1 tsp cumin seeds
- 2 bay leaves
- 1 cinnamon stick
- 3 green cardamom pods, lightly crushed
- 1.5 tsp coriander powder
- 1 tsp cumin powder
- 1 tsp garam masala
- 1/2 tsp turmeric powder
- 1 tsp Kashmiri red chili powder
- 1 tsp salt (adjust to taste)
For Finishing
- 1/2 cup water (more as needed)
- 2 tbsp heavy cream or full-fat coconut milk (optional but highly recommended)
- Handful of fresh cilantro, roughly chopped
Tools You’ll Need
- Large heavy-bottomed pan or Dutch oven (cast iron works beautifully)
- Wooden spoon or spatula
- Sharp knife and cutting board
- Mixing bowl (for marinating)
- Measuring spoons
Pro Tips
A few things that make a real difference here, especially if this is your first time:
- Use chicken thighs, not breasts. Thighs stay juicy even when they get a little overcooked. Breasts dry out fast in a curry and you lose that tender, pull-apart texture.
- Marinate for at least 30 minutes. Even a short marination makes the chicken noticeably more flavorful and tender. If you can swing overnight in the fridge, do it. You’ll taste the difference.
- Cook your onions low and slow. This is the step most people rush and it’s what separates a flat curry from a deeply flavored one. You want them golden brown and almost jammy before you add anything else. Give them a full 15 minutes.
- Add yogurt off high heat. When you stir in the yogurt for the base, reduce the flame first. High heat causes it to curdle and split, and while it still tastes fine, the texture of the sauce suffers.
- Bloom the whole spices first. Dropping cumin seeds, cardamom, and cinnamon into hot oil before anything else releases their oils and gives the entire curry a base that no amount of powder-only cooking can replicate.
Make Ahead Tips
Indian chicken curry actually gets better the next day as all the spices mellow and deepen overnight in the fridge.
You can:
- Marinate the chicken up to 24 hours in advance
- Make the entire curry 1–2 days ahead and refrigerate
- Freeze it in portions for up to 3 months (thaw overnight in the fridge before reheating)
Reheat gently on the stovetop with a splash of water to loosen the sauce.
Substitutions and Variations
No chicken thighs? Bone-in chicken pieces (drumsticks, thighs with bone) give even more flavor. Just increase cooking time by 10–15 minutes.
Dairy-free? Swap yogurt for full-fat coconut milk and skip the cream at the end. It’ll be slightly different but still deeply good.
Want it richer? Add 2 tbsp of cashew paste (blended soaked cashews) along with the tomatoes. This is how restaurant-style butter chicken gets that creamy, velvety texture.
Spice level? Kashmiri chili is mild and gives that deep red color without turning up the heat. Use regular chili powder if you want more fire, or dial it back to 1/2 tsp for a milder version.
Vegetarian? Swap chicken for chickpeas, paneer, or firm tofu. The base and spices work beautifully with all three.
How to Make Indian Chicken Curry

Step 1: Marinate the Chicken
In a mixing bowl, combine the chicken pieces with yogurt, turmeric, Kashmiri chili powder, and salt.
Mix well until every piece is coated.
Cover and refrigerate for at least 30 minutes. If you have time, let it sit overnight.
Step 2: Build the Base
Heat 3 tablespoons of oil in a large heavy-bottomed pan over medium heat.
Once hot, add the cumin seeds, bay leaves, cinnamon stick, and cardamom pods. Let them sizzle for about 30–45 seconds until fragrant. This step matters more than it sounds.
Add the diced onions and cook on medium-low heat for 12–15 minutes, stirring occasionally, until they’re deep golden brown. Not light yellow. Golden brown.
Step 3: Add Ginger, Garlic, and Tomatoes
Add the ginger paste and garlic paste. Cook for 2 minutes until the raw smell disappears.
Add the chopped tomatoes and cook for 5–7 minutes, mashing them down as they soften. You want them to fully break down and almost melt into the onion base.
Step 4: Add the Dry Spices
Lower the heat slightly. Add the coriander powder, cumin powder, turmeric, and Kashmiri chili powder.
Stir everything together and cook for 2 minutes. If it starts to stick to the bottom, add a small splash of water.
Step 5: Add Yogurt
Turn the heat to low. Add the yogurt one tablespoon at a time, stirring constantly to prevent it from curdling. Once it’s all in, cook for 3–4 minutes until it’s fully incorporated into the masala.
Step 6: Add the Chicken
Add the marinated chicken pieces directly into the pan.
Increase heat to medium and stir to coat every piece in the masala. Cook for 5 minutes, stirring occasionally.
Add 1/2 cup of water, stir, cover the pan, and let it simmer on medium-low for 18–20 minutes until the chicken is cooked through and the sauce has thickened.
Step 7: Finish and Serve
Stir in the garam masala and the cream (if using). Taste and adjust salt.
Let it cook uncovered for a final 3–4 minutes. Scatter fresh cilantro over the top.
Serve hot.
What to Serve It With
| Pairing | Why It Works |
|---|---|
| Basmati rice | Soaks up the sauce perfectly |
| Garlic naan | For scooping and dragging through the curry |
| Jeera rice (cumin rice) | Adds subtle flavor without overpowering |
| Plain roti | The everyday, no-fuss option |
| Raita (cucumber yogurt) | Cools down the heat and balances the spices |
Nutritional Breakdown (Per Serving, Approx. 4 Servings)
| Nutrient | Amount |
|---|---|
| Calories | ~380 kcal |
| Protein | 32g |
| Fat | 22g |
| Carbohydrates | 10g |
| Fiber | 2g |
| Sodium | ~620mg |
Values are approximate and will vary based on exact ingredients and portion size.
Leftovers and Storage
Fridge: Store in an airtight container for up to 4 days. The flavor deepens overnight, so day-two curry is genuinely worth looking forward to.
Freezer: Freeze in individual portions for up to 3 months. Leave out the cream before freezing and stir it in when reheating.
Reheating: Low heat on the stovetop with a splash of water. Microwave works fine too, just cover it so it doesn’t splatter.
FAQ
Can I use bone-in chicken instead of boneless?
Yes, and many people actually prefer it. Bone-in adds more flavor to the sauce. Just cook for an extra 10–15 minutes and check that the chicken is cooked through before serving.
My sauce looks too thick. What do I do?
Add water, a few tablespoons at a time, and stir. Indian curry sauces thicken as they cool, so a sauce that looks right in the pan will be perfect by the time it hits the table.
Can I make this without a Dutch oven?
Absolutely. Any large, deep pan with a lid works. The heavier the base, the more evenly it cooks, but a regular saucepan will still get the job done.
How do I know when the chicken is cooked through?
The pieces should be opaque all the way through with no pink inside. The internal temperature should hit 165°F (74°C). After 18–20 minutes of simmering, boneless thighs are almost always done.
Is Kashmiri chili the same as regular chili powder?
No. Kashmiri chili is much milder and is mainly used for its deep brick-red color. If you can’t find it, a mix of regular chili powder and a little sweet paprika gets you close.
Can I make it in an Instant Pot?
Yes. Follow the same steps for the base on the sauté setting, then pressure cook on high for 8 minutes with a quick release. The sauce will be thinner, so simmer it uncovered on sauté for a few minutes at the end to reduce.
Wrapping Up
Indian chicken curry is one of those recipes that sounds impressive but is actually very forgiving once you understand the logic behind it.
Build the base slowly. Use good spices. Don’t rush the onions.
That’s genuinely it.
Make this on a Sunday and you’ll have some of the best lunches of your week sorted. And honestly? Once you’ve had this homemade version, the takeout version will start to feel like a downgrade.
Try it out and drop a comment below telling me how it went. Did you make it spicier? Add coconut milk? Go rogue with paneer? I want to know. 👇