Indian-Style Fish in Coconut Milk Recipe
A mild, coastal Indian-inspired fish curry built around tender white fish, concentrated tomato, and coconut milk. The measured spices are modest, so they are fried briefly in oil and the sauce is reduced before the fish goes in; this keeps the coconut from overwhelming their flavor. Lime juice and cilantro added at the end give the rich sauce a fresh, bright finish.
This is a streamlined Indian-style coconut fish curry inspired by the fish-and-coconut combinations found along India's coasts. It should not be presented as a strictly Kerala or Goan preparation, since it does not include several ingredients that often define those regional traditions. Its onion-tomato base, ground spices, coconut milk, lime, and cilantro make it a practical home-cooking interpretation rather than a region-specific classic.
The character of this curry comes from contrast rather than heavy heat: deeply cooked tomato and carefully bloomed spices give the coconut sauce savory depth, while lime and cilantro keep the finish lively. Reducing the sauce before adding the fish also allows the fillets to cook briefly instead of sitting in a thin, diluted broth.
Why this version works
- Frying the ground spices in oil for 30–40 seconds releases their aroma, which is important because the spice quantities are deliberately mild.
- Cooking the tomatoes until thick and glossy removes excess water and creates a more concentrated base for the coconut milk.
- A short uncovered reduction prevents 400 ml of coconut milk from muting the tomato and spices.
- Fish cooking time is based on the thickness of the pieces, with visual and temperature cues for a more reliable result.
- Lime juice is added off the heat so its acidity stays fresh and does not interfere with the fish's texture during cooking.
Chef's tips
Use a wide pan so the fish can sit in one layer, and choose fillets of similar thickness even if they come from different sections. Before adding the fish, taste the reduced sauce: it should seem slightly more seasoned than necessary because the unseasoned interior of the fish and its released juices will soften the flavor.
How to serve
Spoon the fish and plenty of coconut sauce over plain steamed rice, keeping the pieces intact as you transfer them. Finish each serving with some of the cilantro from the pan and serve immediately while the lime aroma is still fresh.
Watch out for
- Do not let the garlic, ginger, or ground spices brown; scorched spices will make the entire coconut sauce bitter.
- Avoid a rolling boil after adding the coconut milk. A quiet simmer keeps the sauce smooth and cooks the fish more gently.
- Do not crowd or stack the fish. A single layer promotes even cooking and reduces the need for stirring.
- Thin pollock or haddock pieces may finish several minutes before thick cod portions, so inspect the thickest piece early.
- Once the fish is in the pan, use a spatula or shake the pan instead of stirring with a spoon.
Substitutions
- Cod, haddock, pollock, hake, or another firm white fish fillet can be used; adjust the cooking time to the actual thickness rather than the species alone.
- Any neutral vegetable oil may be used for frying the onion and blooming the spices.
- Fresh or packaged coconut milk both work, but a thinner coconut milk may need a few additional minutes of uncovered reduction.
- If the tomatoes are unusually large or small, use two that together provide enough chopped flesh to form a thick base rather than a watery layer.
Ingredients
- white fish fillet e.g. cod, pollock, tilapia, skinless - 600 g
- coconut milk from a can, well shaken - 400 ml
- onion - 1 piece
- garlic - 3 cloves
- ginger - 2 cm
- tomatoes - 2 piece
- vegetable oil - 2 tablespoons
- ground turmeric - 0.5 teaspoons
- ground cumin - 0.5 teaspoons
- ground coriander - 0.5 teaspoons
- ground chili or less if you prefer it milder - 0.5 teaspoons
- lime juice or lemon - 1 tablespoon
- salt to taste
- fresh cilantro for serving - 2 tablespoons
Preparation
- Cut the fish into pieces about 4–5 cm wide, keeping them as even in thickness as possible. Pat them dry, season lightly with salt on both sides, and leave for 10 minutes while you start the sauce.
- Finely chop the onion, garlic, and ginger, and chop the tomatoes. Heat the vegetable oil in a wide, deep pan over medium heat. Cook the onion for 6–8 minutes, stirring regularly, until soft and pale gold around the edges.
- Add the garlic and ginger. Cook for about 60–90 seconds, stirring continuously, until their raw aroma disappears; lower the heat if the garlic begins to color.
- Add the turmeric, cumin, coriander, and chili directly to the oil-coated onion mixture. Stir for 30–40 seconds, just until the spices smell toasted and form a golden paste. Do not let the paste darken or stick.
- Stir in the tomatoes and a small pinch of salt. Cook over medium heat for 6–8 minutes, pressing the tomatoes against the pan, until they collapse into a thick mixture and the oil begins to glisten at the edges.
- Pour in the coconut milk and scrape the bottom of the pan well. Bring it only to a gentle simmer, then cook uncovered for 5–7 minutes, stirring occasionally, until the sauce lightly coats the back of a spoon. Taste and add enough salt to bring the spice flavors forward.
- Lower the heat and place the fish in a single layer in the sauce. Cover and cook at a very gentle simmer according to thickness: allow 3–5 minutes for pieces about 1.5 cm thick, 5–7 minutes for 2–2.5 cm pieces, or 7–9 minutes for pieces close to 3 cm thick. Turn especially thick pieces once, using a thin spatula.
- Check the thickest piece rather than relying only on the clock. The flesh should be opaque through the center, separate along its natural flakes with light pressure, and reach 63°C if tested with an instant-read thermometer. Remove the pan from the heat as soon as it is done.
- Drizzle in the lime juice and gently tilt or shake the pan to distribute it without breaking the fish. Scatter over the chopped cilantro and serve promptly.
Storage
The fish tastes best fresh, as it can fall apart when reheated. If you have leftovers, reheat very gently over low heat, just until the sauce is hot.
I prefer this curry when the sauce has reduced enough to cling to the fish but still flows easily around the rice. Checking the fillets early makes a noticeable difference: the coconut sauce stays luxurious, while the fish remains moist and separates into clean flakes.