Worked out from this recipe's ingredients. If you're cooking for an allergy, always read the full ingredient list.
A Goan-rooted vindaloo built on a ground-from-scratch vinegar, chili and garlic paste that marinates the chicken overnight. The result is bright and sour-forward with a deep, layered burn you can dial up or down — tangy-hot rather than one-note punishing. Thighs stay juicy through a slow braise, and a little sugar plus a pinch of cinnamon and clove keep the vinegar in balance.
Make the chile soak: bring the 1/2 cup vinegar and 1/2 cup water to a bare simmer in a small saucepan. Off the heat, add the Kashmiri chiles and chiles de árbol, press them under with a spoon, and let soften 20 minutes. This is your heat control point — use 1 árbol for medium, 2 for hot, 3 if you want it aggressive.
Meanwhile, toast the cumin seeds, peppercorns, mustard seeds, cloves, cinnamon and cardamom seeds in a dry skillet over medium heat, shaking constantly, until fragrant and the mustard seeds begin to pop, 60–90 seconds. Tip onto a plate to cool, then grind to a fine powder in a spice grinder.
Scrape the softened chiles and all their soaking liquid into a blender. Add the garlic, ginger, ground toasted spices, turmeric, 1 tsp sugar and 2 tsp salt. Blend 2 full minutes to a smooth, brick-red paste, scraping down and adding up to 2 tbsp water only if the blender stalls. It should be thick enough to mound on a spoon.
Toss the chicken with 1 tsp salt, then fold in all but 3 tablespoons of the paste until every piece is coated. Cover and refrigerate at least 8 hours and up to 24. Refrigerate the reserved 3 tablespoons of paste separately — it goes in at the end for fresh bite. Let the marinated chicken sit at room temperature 30 minutes before cooking.
Heat the oil in a Dutch oven over medium-high. Add the onions and a pinch of salt and cook, stirring often, 15–18 minutes, until deeply golden brown at the edges — this sweetness is what keeps the vinegar from turning harsh. Lower the heat if they threaten to scorch.
Stir in the tomato paste and cook 1 minute. Add the marinated chicken with all its paste and cook over medium heat, stirring, for 6–8 minutes, until the paste darkens, tightens around the meat and you see oil separating at the edges. Keep it moving so the spices toast rather than burn.
Pour in the water or stock, scrape the bottom clean, and bring to a simmer. Reduce heat to low, cover with the lid slightly ajar, and cook at a lazy bubble for 30–35 minutes, stirring every 10 minutes, until the chicken is fork-tender and the sauce has thickened to coat a spoon.
Stir in the reserved 3 tablespoons of paste and simmer uncovered 5 minutes more. Now balance: add the remaining 1 tsp sugar, then salt in small pinches, tasting after each. If the heat feels flat or scratchy, add the 1 tbsp finishing vinegar to lift it; if it feels too sharp, simmer 3 more minutes and add another pinch of sugar.
Turn off the heat, cover, and rest 10 minutes so the sauce settles and the burn rounds out. Scatter with cilantro and serve over basmati rice with a spoonful of cold yogurt on the side.
Optional but worth it: refrigerate overnight and reheat gently the next day with a splash of water. The sourness and heat integrate noticeably.
Chef's tips
Kashmiri chiles bring color and mild fruity heat; the árbol brings the actual burn. Adjust only the árbol count and you keep the deep red sauce at every heat level.
Vinegar is the point, not an accident — but add the finishing tablespoon only after tasting. Sharpness reads as heat, so a too-sour sauce will seem hotter than it is.
If the sauce ever tastes bitter rather than hot, you burned the paste in step 6. Next time drop the heat to medium-low and add a splash of water to the pan as you fry.
Thighs are non-negotiable for a 35-minute braise; breast meat will go stringy. If you must use breast, cut it in 1 1/2-inch pieces and add it in the last 12 minutes.
Traditional Goan versions use waxy potatoes: add 12 oz peeled Yukon Golds in 1-inch cubes along with the liquid in step 7 and add 1/4 cup extra water.
Nutrition (per serving, estimated)
620calories
42gprotein
68gcarbs
19gfat
Estimates only — values vary with brands and portions.
Made with Sprig
Overnight-Marinated Chicken Vindaloo was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.