Recipes

Fish Curry Recipe

This fish curry combines tender white fish with a silky coconut-tomato sauce flavored with ginger, garlic, curry leaves, and warm spices. The fish cooks gently in the finished sauce so it stays moist and holds together.

Fish Curry Recipe

Overview

This fish curry recipe makes four servings of tender fish in a fragrant coconut-tomato sauce. The sauce is gently spiced rather than aggressively hot, with ginger, garlic, curry leaves, and lime adding brightness.

Use firm white fish and add it only after the sauce has thickened. A gentle simmer—not a rapid boil—keeps the pieces intact and prevents the coconut milk from becoming grainy.

Ingredients

  • 700 g firm white fish fillets, such as cod, haddock, pollock, tilapia, or sea bass, cut into 5 cm pieces
  • 1 teaspoon fine salt, divided
  • 2 tablespoons fresh lime juice, divided
  • 2 tablespoons neutral oil, such as sunflower or canola oil
  • 1 medium yellow onion, about 180 g, finely chopped
  • 4 garlic cloves, finely grated or minced
  • 2 teaspoons finely grated fresh ginger
  • 1 teaspoon ground cumin
  • 1 teaspoon ground coriander
  • 1 teaspoon paprika
  • 1/2 teaspoon ground turmeric
  • 1/4 teaspoon cayenne pepper, optional
  • 1 tablespoon tomato paste
  • 400 g can chopped tomatoes
  • 400 ml can full-fat coconut milk, shaken well
  • 120 ml water
  • 10 fresh curry leaves, optional
  • 1/2 teaspoon sugar, only if the tomatoes taste sharply acidic
  • 2 tablespoons chopped fresh cilantro
  • 1 lime, cut into wedges, for serving
  • Cooked basmati rice or naan, for serving

How to make it

  1. Pat the fish dry with paper towels. Toss it with 1/2 teaspoon of the salt and 1 tablespoon of the lime juice. Leave it for 10 minutes while you prepare the sauce. Do not marinate it for much longer, as the lime can make the surface of the fish firm and chalky.

  2. Heat the oil in a wide, deep skillet or shallow saucepan over medium heat. Add the onion and the remaining 1/2 teaspoon salt. Cook for 6–8 minutes, stirring occasionally, until the onion is soft and translucent but not deeply browned.

  3. Add the garlic and ginger. Cook for 1 minute, stirring constantly, until fragrant. Add the cumin, coriander, paprika, turmeric, and cayenne, if using. Stir for 30 seconds so the spices coat the onion without scorching.

  4. Stir in the tomato paste and cook for 1 minute. Add the chopped tomatoes, coconut milk, water, and curry leaves. Stir well, scraping up any spice mixture from the bottom of the pan.

  5. Bring the sauce to a gentle simmer, then reduce the heat to medium-low. Cook uncovered for 12–15 minutes, stirring every few minutes, until the sauce is slightly thickened and no longer tastes raw or sharply tomatoey. It should coat the back of a spoon but still be loose enough to simmer around the fish. If it tastes unusually acidic, stir in the sugar.

  6. Taste the sauce before adding the fish. Add more salt if needed, but remember that the fish has already been salted. Stir in the remaining 1 tablespoon lime juice.

  7. Lower the heat until the sauce is barely bubbling. Nestle the fish pieces into the sauce in a single layer, spooning a little sauce over the tops. Cover the pan and cook for 6–10 minutes, depending on the thickness of the pieces. Avoid stirring with a spoon; gently shake the pan once or twice instead.

  8. Check a thick piece by flaking it with a fork. The center should be opaque, moist, and separate into large flakes, with no translucent raw-looking section. If using a thermometer, cook the fish to 63°C in the thickest part. If it needs more time, cover and simmer for another 1–2 minutes.

  9. Remove the pan from the heat and rest it, covered, for 3 minutes. The sauce will settle and the fish will finish cooking gently. Scatter over the cilantro and serve with lime wedges, basmati rice, or naan.

Expert tips

  • Choose the right fish: Cod, haddock, pollock, tilapia, sea bass, and other firm white fish work well. Very thin fillets can overcook quickly, so cut them into evenly sized pieces.
  • Keep the simmer gentle: A rolling boil can break up the fish and make a coconut-based sauce look separated. Look for small, occasional bubbles around the edges.
  • Do not overcrowd the pan: Arrange the fish in one layer. If the pieces are stacked, they will cook unevenly and may need to be stirred, which can cause them to break.
  • For a hotter curry: Add 1/2 teaspoon cayenne or one thinly sliced green chile with the garlic and ginger. Add heat gradually; it is easier to increase it than to correct an overly spicy sauce.
  • For a less rich sauce: Replace up to half of the coconut milk with additional water or unsalted fish stock. The finished curry will be lighter and less creamy.
  • If the sauce is thin: Remove the cooked fish to a plate with a slotted spoon and simmer the sauce uncovered for 3–5 minutes. Return the fish just long enough to warm through.
  • If the fish breaks apart: It was likely stirred too vigorously, cooked at too high a simmer, or left in the pan too long. Use a wide pan, move the pieces as little as possible, and lift them with a broad spatula.
  • If the sauce looks split: Remove the pan from the heat and whisk in 1–2 tablespoons of warm water. A slight separation is not harmful, but overheating coconut milk can make the sauce look oily.

Serving and storage

Serve the curry immediately with rice or naan. A cool side such as cucumber raita balances the warm spices without adding another complicated dish.

Cool leftovers promptly in a shallow, covered container and refrigerate within 2 hours. Use them within 2 days. Reheat gently in a saucepan over low heat until piping hot throughout; avoid repeated reheating, vigorous stirring, or boiling, which can dry out the fish and break it into small pieces. Freezing is not ideal because the fish can become softer and the coconut sauce may separate after thawing.

Frequently asked questions

What fish is best for fish curry?

Firm white fish such as cod, haddock, pollock, tilapia, or sea bass works well. Choose pieces of similar thickness so they finish cooking at the same time. Salmon can also be used, although it will give the curry a richer flavor.

Can I use frozen fish?

Yes. Thaw it completely in the refrigerator, then pat it very dry before seasoning. Excess surface water can thin the sauce and make the fish steam unevenly.

How do I stop fish from falling apart in curry?

Use firm fish, cut it into large evenly sized pieces, and add it only after the sauce has thickened. Keep the curry at a gentle simmer and shake the pan instead of stirring the fish with a spoon.

Can I make fish curry without coconut milk?

Yes. Replace the coconut milk with 400 ml of unsalted fish stock or water for a tomato-based curry. Simmer the sauce a little longer so it reduces and thickens before adding the fish.

How can I tell when the fish is cooked?

The flesh should look opaque and flake easily in the center of the thickest piece. For a precise check, the thickest part should reach 63°C.

More from FoodNotes