Skip to content

Recipe: Fish Curry

This fragrant tomato-and-coconut curry with pieces of flaky white fish is a staple at chef Meherwan Irani’s dinner table

Bookmark article to read later

By House & Garden South Africa | June 15, 2022 | Recipes

At home, Meherwan likes to make double or triple batches of the coconut milk curry and freeze it in two-cup portions. Then, when he’s ready for dinner, all he has to do is defrost a portion and sear pieces of spiced whitefish that finish cooking in the reheated curry. If you want to prepare this recipe with premade curry, bring 2 cups of curry to a gentle simmer in a saucepan over medium-low heat, then add the seared fish to the pan and simmer until the fish is opaque and flakes easily.


  • Fish
  • 700g firm white fish (such as grouper, tilapia, or cod), cut into 2" pieces
  • 1 tsp Diamond Crystal or ½ tsp. Morton kosher salt
  • 1 tsp Kashmiri chilli powder or ½ tsp. cayenne pepper
  • ½ tsp ground turmeric
  • 3 Tbsp grapeseed oil or vegetable oil
  • Curry and Assembly
  • 3 Tbsp grapeseed oil or vegetable oil
  • 1 tsp brown mustard seeds
  • 3–4 fresh or dried curry leaves (optional)
  • ½ tsp asafetida (optional)
  • 1 8 cm piece ginger, peeled, finely grated
  • 5 garlic cloves, finely grated
  • Kosher salt
  • 1 large red onion, chopped
  • 1 tsp ground turmeric
  • 1 400g can crushed tomatoes
  • 1 can unsweetened coconut milk (not low-fat)
  • 1 cup low-sodium vegetable or chicken broth
  • Thinly sliced red onion, coriander leaves with tender stems; cooked basmati rice, wild rice, or warm naan; and lime wedges (for serving)

Recipe Preparation


Combine fish, salt, chilli powder, and turmeric in a medium bowl and, using your hands, gently toss fish to evenly coat in spices.

Heat oil in a large nonstick skillet over medium-high. Working in batches to avoid crowding, cook fish pieces until lightly browned, about 2 minutes per side (the fish won’t be cooked all the way through). Transfer fish to a plate.

Curry and Assembly

Heat grapeseed oil in a medium Dutch oven or other heavy pot over medium-high. Add a few mustard seeds to the pot. When seeds start to wiggle and pop, reduce heat to medium and add curry leaves (if using), asafetida (if using), and remaining mustard seeds. Cover pot and cook spices, swirling, until mustard seeds start popping more gradually, about 30 seconds. Uncover pot and return heat to medium-high. Add ginger and garlic and cook, stirring constantly, until beginning to brown, about 1 minute. Add chopped onion and a big pinch of salt and cook, stirring often and reducing heat if needed to prevent burning, until onion is golden brown and jammy, 7–9 minutes.

Stir in turmeric, then tomatoes and bring to a simmer. Reduce heat to medium and cook, stirring often, until tomatoes are glossy and darkened in colour and oil starts to separate around edges of pot, 5–7 minutes.

Add coconut milk and broth and stir to combine; season with salt. Bring curry to a simmer, then reduce heat to medium-low. Cover and cook, stirring occasionally to prevent sticking, 10 minutes.

Add fish to curry. Return to a gentle simmer and cook until the fish is just cooked through and flakes easily with a fork, about 4 minutes. Taste and season with more salt if needed.

Divide fish curry among bowls. Top with sliced red onion and cilantro. Serve with rice and lime wedges for squeezing over.

Do ahead: Curry can be made 5 days ahead. Let cool, then transfer to an airtight container.

Recipe by Meherwan Irani