Chicken Tikka Masala
Chicken Tikka Masala is built in two stages. Yogurt-marinated thigh chunks sear hard until their edges char, then simmer briefly in a tomato, butter, and cream sauce made in the same pan, and thigh fat is what lets them take that heat without drying. The char, and the browned drippings it leaves behind, is where your sauce gets its roasted depth. Plan on about 30 minutes of prep, 40 minutes of cooking, and at least 30 minutes of hands-off marinating in between, because the dish is better by the next day.
- Prep
- 30 min
- Cook
- 40 min
- Total
- 100 min
- Additional time
- 30 min
- Serves
- 4
Ingredients
What you’ll need — tap to tick off as you go
- 600 g
- 150 g
- 1 tbsp
- 1 tbsp
- 3 cloves
- 2 tsp
- 1 tsp
- 1 tsp
- 1 tsp
- ½ tsp
- ¼ tsp
- 1 tsp
- 2 tbsp
- 2 tbsp
- 400 g
- 150 ml
- 100 ml
- 15 g
Process
Timers built in · swap anything · ask as you cook
Whisk 150 g full-fat yogurt with 1 tbsp lemon juice, 1 tbsp grated ginger, and 2 minced garlic cloves; the acid and aromatics start tenderizing right away. Then stir in 1 tsp garam masala, 1 tsp cumin, 1 tsp coriander, 1 tsp smoked paprika, 0.5 tsp turmeric, 0.25 tsp cayenne, and 0.5 tsp salt. Add the 600 g chicken thigh chunks and turn until coated. Cover and refrigerate for 30 minutes to 4 hours.
Heat 1 tbsp of the vegetable oil in a large skillet over medium-high heat, then lift the chicken from the bowl and let the excess yogurt drip off. Thick yogurt burns before the meat browns. Sear in a single layer without moving the pieces, 3 to 4 minutes per side; you'll know they are ready when the edges are charred in spots and the centers are opaque, then work in batches and pull each piece at 74°C. (No thermometer? Cut into the thickest chunk; white center, no pink.)
Reduce the heat to medium, then add the remaining 1 tbsp oil, the 2 tbsp butter, and the finely chopped onion to the same skillet, and cook for 5 minutes, stirring and scraping the browned bits off the pan bottom, until the onion is soft and golden at the edges. Why scrape so insistently? Those drippings are the link between the charred chicken and the sauce. Do not leave them behind.
Stir in the remaining minced garlic clove and cook for 30 seconds, just until it stops smelling sharp, then add 1 tsp garam masala and 0.5 tsp salt and stir for another 30 seconds. Blooming the spice in hot butter dissolves its aromatics into the fat, which carries them through the whole sauce; skip this and the dish tastes raw and powdery.
Pour in the 400 g tomato puree and the 100 ml water, scraping the pan bottom clean as the liquid goes in, then simmer for 10 minutes, stirring occasionally, until the sauce thickens slightly. Drag your spoon across the pan; the trail it leaves should hold for a beat. That simmer rids the canned puree of its raw edge before the cream arrives. If it spits at the edges, don't worry; turn the heat down and keep stirring.
Worried the cream will split? Dairy poured into a hard boil is exactly how it happens, so reduce the heat to low. Stir in the 150 ml heavy cream, then return the chicken to the skillet with the juices it released, and simmer gently for 5 minutes, until the chicken is heated through and the sauce coats each piece like a glaze.
Taste the sauce. Add salt if it reads flat. Scatter over the 15 g chopped cilantro if you are using it, then serve hot with rice or naan. The sauce thickens as it stands. If it looks heavy in the pan, loosen it with a splash of water before it goes to the table.

Why this recipe works
What does the yogurt actually do? Three jobs at once. Its lactic acid tenderizes the surface of the meat, its fat carries the ground spices flush against the chicken, and the coating keeps the pieces moist enough to take hard heat before they dry out. The char they pick up, scraped loose with the onions, is the roasted flavor a sauce built only from tomato and cream cannot supply. Blooming the garam masala in hot butter draws out aromatics that liquid alone leaves locked in the powder, and cream stirred in off the boil emulsifies into the tomato under gentle heat, which is why you add it at the end.
Equipment
- Large bowl for marinating
- Large skillet, about 28 to 30 cm wide
- Instant-read thermometer
- Wooden spoon or stiff spatula
- Chef's knife and cutting board
- Measuring cups and spoons
- Rimmed baking sheet with a rack (optional, for a broiler or grill finish)
Kitchen notes
Kitchen notes
- Crush a pinch of dried fenugreek leaves between your fingertips and stir them in after the heat goes off, because that savory, faintly maple note is the finishing touch in restaurant tikka masala gravies and it fades if it simmers. (Sold as kasuri methi.)
- Scrape the darkened layer under the chicken; do not wipe it away. Those drippings, carried into the sauce by the onion and butter, are much of the dish's roasted depth. Only scrub your pan if the residue smells burnt. The fond is worth the extra scraping, and a stainless or cast-iron skillet gives it somewhere to build; give the onions room and they will do the rest.
- Warm the cream first. A cold liquid dropped into a hot sauce is one of the fastest ways to make it split. Taking the chill off your cream costs a few seconds. (A short spin in the microwave is plenty.)
- Whisk a knob of extra butter into the finished sauce, off the heat, for the restaurant sheen. It emulsifies into the tomato and rounds the cream.
- Judge your sauce only after the full simmer. Canned tomato puree tastes sharp and thin straight from the tin. Both qualities settle as it cooks down and the cream goes in.
Common mistakes
- Dry, stringy chicken: your chunks overcook when they stay in the skillet until every face is deeply charred, so sear 3 to 4 minutes per side, pull each piece at 74°C, and let the final simmer bring it home.
- The chicken steams instead of charring: a crowded pan, or thick yogurt left clinging to the pieces, traps the moisture and burns the meat before it browns. Do not crowd the pan. Work in batches, keep a single layer, and let the excess marinade drip off first.
- The sauce tastes raw and dusty: the puree was rushed, or the garam masala went into cool liquid, so give your tomato the full 10 minutes and bloom the spice in hot butter before any liquid goes in.
- Grainy, split sauce: cream or yogurt that hit a hard boil, or light dairy doing the work of full-fat. Drop the heat to low before the cream goes in, and if it still separates, pull the pan off the heat and whisk in a spoonful of cream to bring it back together.
- Pasty, over-thick sauce: the puree reduces too far while the chicken finishes, so keep the 100 ml water at hand and loosen your sauce to a pourable coating consistency right before serving.
- Dull, one-note flavor: tomato and cream with no salt in layers. Season at the spice bloom and again after the cream. If it still reads flat, brighten it with a squeeze of lemon.
Serving suggestions
- Steamed basmati rice or torn naan carries the sauce; both are traditional, and both do the work of soaking up the cream.
- A cool cucumber and onion salad or a spoonful of plain yogurt on the side cuts through the richness between bites.
- Lemon wedges at the table. A squeeze over the plate sharpens the sauce against the cream.
- Serve straight from the pan while the sauce is hot and pourable; the 600 g of chicken divides evenly across 4 servings. Whatever sauce is left over, spoon it over hot noodles or rice for an easy second dinner.
Variations
- Broiler char: spread the marinated chunks on a rack over a foil-lined tray and broil close to the element, turning once, until spotted black at the edges, then stir the tray drippings into the onions and carry on with the sauce.
- Grill version: cook the chunks on a hot grill, 4 to 5 minutes per side, for a smokier char. Then simmer them in the sauce for the final 5 minutes.
- Cashew body: for a dairy-free take, soak raw cashews until soft, then blend them to a smooth paste with a little water. Stir that paste in at the cream stage for richness without dairy.
- Vegetable version: roast cauliflower florets tossed in the same marinade until charred, then fold them through your sauce instead of the chicken.
Refrigerator
- RefrigeratorCool the dish within 2 hours of cooking, then store it covered in the fridge for up to 4 days. The sauce thickens as it chills, so expect to loosen it when you reheat. Don't skip the splash of water or cream; the sauce tightens noticeably as it chills, and a slow warm-up under a lid is what keeps it from splitting.
- ReheatingGently warm it in a pan over low heat with a splash of water or cream until you see steam, or microwave it covered in 30-second bursts, stirring between. The USDA target for reheating is 74°C.
- FreezingFreezes well for up to 3 months in a freezer-safe container. Let it thaw in the fridge overnight, then reheat gently, whisking in a spoonful of cream if your sauce looks slightly grainy after thawing.
- Make aheadMarinate the chicken up to 24 hours. The finished dish can be made up to 3 days ahead and improves overnight as the spices settle, so add the cilantro fresh when you serve it.
Updated:
How this recipe was developed
- USDA FSIS Safe Minimum Internal Temperature Chart (all poultry cooked to 74°C; leftovers reheated to 74°C)
- USDA FSIS Leftovers and Food Safety (refrigerate within 2 hours; keep 3 to 4 days; reheat leftovers to 74°C)
- BBC Good Food chicken tikka masala (cook the rawness out of ground spices; simmer until the chicken is cooked through; stir dairy in off the heat; freeze up to 3 months)
- RecipeTin Eats chicken tikka masala (thigh meat for high-heat charring; char the yogurt-coated chicken before it meets the sauce)
Editorial references are kept internally for verification. This page makes no claim of external certification or professional testing.
Gallery


FAQ
The questions we get asked most
Why did my sauce curdle?
Yogurt and cream split when they meet hard heat, or when the dairy is lower-fat. Drop the heat to low before the cream goes in, and keep everything full-fat. If your sauce looks a little speckled at first, it's fine; keep the heat low and keep stirring, and it evens out. Pour it in slowly rather than all at once. If your sauce still looks grainy, take the pan off the heat and whisk in a spoonful of cream to pull the emulsion back together.
How do I know when the chicken is done?
The center of your thickest chunk should read 74°C, the USDA minimum for poultry. The pieces are ready to leave the pan when the edges are charred in spots and the meat is opaque through. Any piece still shy of 74°C finishes during the 5-minute simmer in the sauce.
Why doesn't mine taste as rich as the restaurant version?
Restaurant gravies lean on fat, salt, and a finishing herb. This recipe gets its richness from the full 2 tbsp butter and 150 ml cream, so do not trim them on your first cook. Season in two stages, at the spice bloom and again after the cream, and finish with the crushed fenugreek tip. That note is what most home versions miss.
Can I make it ahead or freeze it?
Both routes work: marinate up to 24 hours, or cook the full dish up to 3 days ahead, when it improves overnight, or freeze it up to 3 months. Thaw it in the fridge overnight and reheat gently with a splash of water or cream.
Can I use chicken breast instead of thighs?
Yes: cut your pieces into 3 cm chunks and shorten the sear to 2 to 3 minutes per side. Breast has less margin. Pull it at 74°C and let the simmer only warm it through, or it turns chalky.
How spicy is this, and can I dial it down?
With the 0.25 tsp cayenne it lands at mild-to-medium warmth; most of the character comes from the garam masala rather than heat. Leave the cayenne out entirely, or swap in mild paprika. Judge the heat only after the cream goes in, since the dairy rounds the burn.
Is it gluten-free, and what should I serve with it?
As written it is gluten-free, but gluten fillers can hide in yogurt and spice blends, so check your labels before you buy. Serve it with basmati rice to keep the plate gluten-free, since naan does not qualify. Take the pan to the table while the sauce still bubbles; meals like this are made for sharing.
Ask KitchenMind about this recipe
Tell it what’s different tonight — it works within the actual recipe.


