Coconut Fish Curry
This Indian-style fish curry comes together fast yet tastes slow-cooked. Tender white fish simmers in coconut milk, tomatoes, ginger, and warm spices.
Make it mild or fiery, then serve with rice or warm bread tonight.

Easy Coconut Fish Curry : Indian-Style, Easy & Full of Flavor
If you’ve never tried a fish curry, make this your first, it’s cozy, fragrant, and deeply satisfying without any complicated steps.
In under 15 minutes, everything is gently simmering in a rich coconut milk sauce with warm spices and a bright tomato note, so the kitchen smells amazing while you barely lift a finger.
At home, it’s the kind of meal my husband would happily put on the weekly rotation… and I understand why.
I often cook it at lunchtime when the kids are at school, because then I can make it “my way”: just for two, properly spicy, the kind of heat that makes your eyes water, in the best possible way.
Cooking for the whole family? Simply dial the chilli up or down to suit everyone.
Inspired by Jamie Oliver, it’s a weeknight curry that feels special. Serve with rice or warm pita, plus a chilled mango lassi to cool your palate.

Ingredients for Coconut Fish Curry (with Substitutions & Notes)
- 400 g white fish (cod): cut into chunky pieces so it stays tender (other white fish works too).
- 2 tbsp neutral oil: sunflower/vegetable/rapeseed, best for blooming spices.
- 2 garlic cloves: finely chopped for a strong savory base.
- 3 shallots (or 1 onion): thinly sliced; onion is slightly sweeter and more mellow.
- 1/2 tsp mustard seeds: they “pop” in hot oil, use a splatter screen or lid.
- 1 cm fresh ginger: grated or finely chopped for freshness.
- 1/2 green chilli: adjust to taste; remove seeds for less heat.
- 1 tsp curry powder: your main spice shortcut, add more if you like it bolder.
- 200 g coconut milk: makes the sauce silky and balances the chilli.
- 200 g fresh tomatoes: chopped/crushed for a bright, tangy sauce.
- Fresh coriander (cilantro): stirred in at the end for a fresh finish.
- Salt: season gradually, then adjust at the end.
- 10 fresh curry leaves (kaloupilé): best fresh, dried has very little flavor.

How to make Indian fish curry (step-by-step)
- Prep the aromatics: thinly slice the shallots (or onion), chop the garlic, and grate the ginger.
- Cut the fish: slice into large chunks.
- Pop the mustard seeds: heat the oil over medium heat, add mustard seeds, and cover (they jump like popcorn). Once they start popping, lower the heat and remove the lid.
- Build the base: add shallots/onion, garlic, ginger, chilli, and curry leaves. Cook for 5 minutes, stirring often.
- Bloom the curry powder: mix curry powder with a tiny splash of water, pour into the pan, and cook 1 minute over fairly high heat, stirring well.
- Make the sauce: add coconut milk and crushed tomatoes. Stir, salt, and bring to a boil.
- Cook the fish: as soon as it boils, reduce to gentle bubbles, add the fish, and simmer uncovered without stirring for about 1 hour.
- Cooking time varies with fish type, chunk size, and pan. Taste: if the fish feels rubbery, it needs longer.
- Finish: chop fresh coriander and sprinkle over just before serving.
Fich curry with coconut milk on video
Choosing the right fish (so you don’t overcook it)
- Cod and other white fish work best in chunky pieces so they stay tender. Haddock, pollock, or coley are great options too.
- Salmon gives a richer, softer result because it’s fattier, keep an eye on it so it doesn’t flake apart.
- If using frozen fish, thaw fully, drain well, and pat dry to avoid a watery sauce; you may need a little extra simmer time depending on how much moisture it releases.
Serving ideas
- Basmati rice to soak up the sauce (a squeeze of lime is lovely).
- Naan or pita warmed for 1-2 minutes for maximum scooping.
- Steamed vegetables (broccoli, green beans, cauliflower) to balance the richness.
- Mango lassi on the side to cool the palate, especially if you went spicy.
Storage and reheating
- Fridge: cool completely, store airtight for up to 2 days.
- Freezer: freeze up to 1 month (best when the fish is well covered in sauce). Thaw overnight in the fridge.
- Reheat gently: warm on low heat, stirring carefully to avoid breaking the fish. Add a splash of water or coconut milk if the sauce thickens.
FAQ (6 quick answers)
- No curry leaves, what now? Use extra coriander plus a little lime zest; it won’t be identical, but still fragrant.
- Sauce too thin? Simmer uncovered 5-10 minutes to reduce.
- Sauce too thick? Loosen with a splash of water or coconut milk.
- Why mix curry powder with water first? It helps prevent clumps and spreads the spice evenly.
- Mustard seeds not popping? The oil likely isn’t hot enough (or the seeds are old).
- Can you add vegetables? Yes, add spinach, peas, courgette, or peppers near the end so they stay fresh and bright.
Other Dishes to try
- Chicken Masala Curry
- Lemon Chicken Thighs with Mushrooms in a Light Creamy Sauce
- Chinese Beef and Onion Stir-Fry
- Homemade Lamb Curry Recipe
Creamy Coconut Fish Curry recipe
- Total Time: 1 hour 15 minutes
- Yield: 4 servings 1x
Description
This Indian-style fish curry comes together fast yet tastes slow-cooked. Tender white fish simmers in coconut milk, tomatoes, ginger, and warm spices. Make it mild or fiery, then serve with rice or warm bread tonight.
Ingredients
- 400 g white fish (cod)
- 2 tbsp cooking oil
- 2 garlic cloves
- 3 shallots (onion here)
- 1/2 tsp mustard seeds
- 1 cm fresh ginger, chopped
- 1/2 green chilli
- 1 tsp curry powder
- 200 g coconut milk
- 200 g fresh tomatoes
- Fresh coriander (cilantro)
- Salt
- 10 fresh curry leaves (I didn’t have any), also called “kaloupilé” (these are real “curry” leaves; they need to be fresh, dried ones have no flavour)
Instructions
- Start by thinly slicing the shallots (you can use onions if you don’t have any) and the garlic. Grate the ginger.
- Cut the fish into pieces.
- Heat the oil over medium heat in a frying pan and add the mustard seeds.
- Cover with a splatter screen or lid, as they will jump like popcorn! Lower the heat as soon as they start to “pop”, then remove the lid.
- Add the shallots, garlic, ginger, chilli, and curry leaves.
- Sauté over medium heat for 5 minutes, stirring regularly.
- Mix the curry powder with a tiny bit of water, then pour it into the pan. Stir and sauté over fairly high heat for 1 minute, stirring well.
- Pour in the coconut milk and the crushed tomatoes.
- Stir, season with salt, and bring to a boil.
- As soon as it boils, lower the heat, add the fish, and simmer gently for about 1 hour, uncovered, without stirring. Cooking time will vary depending on the fish you choose, the size of the pieces, your cookware, etc. Taste: if the fish is rubbery, it isn’t cooked enough.
- Chop fresh coriander just before serving.
- Prep Time: 15 min
- Cook Time: 1 hour
- Category: main dish
- Cuisine: indian cuisine
Nutrition
- Serving Size: 1 serving
- Calories: 300 kcal
