Malaysian Fish Head Curry Recipe

South Indian and Malaysian cuisines come together in this spicy vermillion curry that's simmered with fish heads, eggplant, and okra.

Updated February 07, 2024
Overhead view of fish head curry

Serious Eats / Michelle Yip

Why It Works

  • Making your own curry powder allows you to adjust the flavor as desired.
  • Toasting the spices develops their flavors, which gently infuse the dish as it cooks.

In the early 1900s, my paternal grandfather sailed from Tamil Nadu to then-Malaya as a 12-year-old orphan. He was a part of one of many immigration waves from India, which mostly consisted of men and boys from the southern Indian regions of Tamil Nadu and Kerala who were brought by British colonizers to Malaya as indentured laborers to work on rubber plantations in an abusive and exploitative system that existed alongside and then eventually replaced enslavement. Beyond my grandfather’s brave and harsh journey, I don’t know much about him, though I’m told he opened what was possibly the first Indian restaurant in the sleepy port town of Pontian, Johor. My dad grew up eating many meals at his father’s restaurant, which trickled down to my own childhood, in which there was always curry on our dining table.

Overhead view of spooning curry onto fish

Serious Eats / Michelle Yip

Malaysian-style curry, typically a brilliant red-orange gravy with different vegetables and proteins, tends to be on the spicier side. The most famous version is fish head curry, which likely began as a poor man’s meal but has since risen in popularity to become one of the most expensive items on Indian restaurant menus. For many, sharing a decadent fish head curry as part of a banana leaf–rice meal with family and friends is still a special treat.

Picture this: A large tureen filled with steaming curry is brought to the table, in which several large fish heads are submerged, surrounded by bobbing vegetables. Popular fish varieties in restaurants are whitefish like snapper and seabass, though I personally prefer oily fish like large mackerel and salmon, as they stand up well to the spice of the curry sauce. Diners spoon the curry sauce onto their plates of rice, and communally pick at the fish heads over the course of the meal. Many will call dibs on their favorite parts: the little scallops of cheek meat, the tender flesh in the crevices of the collar, the gooey eyeballs saturated with spice. When the fish heads are seemingly picked clean, some folks will place what remains of the skull on their plate, and tunnel through every hollow and crevice, triumphant whenever they discover a piece of flesh that someone else overlooked. It’s a feast, one best enjoyed with a large group of loved ones on a weekend afternoon.

Overhead view of eating curry

Serious Eats / Michelle Yip

While the curry sauce is what contributes the bulk of the flavor, most restaurants don’t make their own spice blend for the curry; many instead opt to use ready-made packets of ground spices labeled “fish curry powder,” or order their own custom mixes to be ground at local spice mills. While the use of pre-ground spice mixes is convenient, they tend to lean quite heavily on chile powder, which gives the curries their vivid reddish-orange color. I personally love heat, but too much chile powder makes the curry rather one-note. On top of that, I prefer to grind my own spices, which, because they are fresh and more potent, produce an overall hotter blend without having to go heavy on the chile powder. While this does result in a curry with a less vibrant color, it makes for more balanced flavors all around, which is a tradeoff I'm happy to make.

A technique often used when preparing Malaysian curries—dubbed the “reverse tadka” by Serious Eats contributor Nik Sharma—is to toast a selection of spices at the start of the cooking process. These spices remain whole, separate from the ones that are ground into a powder. For fish curries, the mix usually contains mustard seeds, cumin seeds, fennel seeds, fenugreek seeds, and sometimes nigella seeds. It's a combination that can also be bought ready-made at shops, often called “panch phoron.”

Overhead view of toasting spices

Serious Eats / Michelle Yip

It's a technique I use in this recipe, in which eggplant are first fried in oil until golden, then the whole spices are bloomed in the hot oil before diced onion and a paste of garlic and ginger and fried until sweet and fragrant. The curry is built on top of that with tomato, tamarind, coconut milk, curry leaves, and a homemade mix of ground spices. After that the fish heads go in with okra and the fried eggplant and simmered until the fish is cooked and the vegetables are tender.

The soft textures of the fish and vegetables married with the boldness of the curry and the occasional crunch of whole spice make for a sensorial, lick-your-fingers meal that you won’t soon forget.

Side view of fish head curry

Serious Eats / Michelle Yip

Recipe Details

Malaysian Fish Head Curry Recipe

Prep 15 mins
Cook 75 mins
Total 90 mins
Serves 4
Cook Mode (Keep screen awake)

Ingredients

For the Curry Powder:

  • 1 teaspoon coriander seeds

  • 1/2 teaspoon cumin seeds

  • 1/2 teaspoon fennel seeds

  • 1/2 teaspoon whole black peppercorns

  • 1/4 teaspoon whole white peppercorns

  • 1 teaspoon ground turmeric

  • 1 teaspoon Kashmiri chile powder

For the Curry:

  • 3 medium cloves garlic (1/2 ounce; 15g)

  • One 1-inch knob peeled ginger (1/2 ounce; 15g)

  • 3 tablespoons (45ml) neutral oil, such as vegetable oil, divided

  • 3 small Japanese eggplants (10 1/2 ounces; 300g), quartered lengthwise and cut into 3-inch lengths

  • 1 teaspoon whole mustard seeds

  • 1 teaspoon whole fenugreek seeds

  • 1/2 teaspoon whole cumin seeds

  • 1/2 teaspoon whole fennel seeds

  • 1 small yellow onion (4 ounces; 113g), thinly sliced

  • Kosher salt

  • 2 large garden tomatoes (14 ounces; 400g), cored and diced

  • 25 curry leaves, woody stems removed

  • 1 tablespoon (15ml) tamarind paste

  • 1 pound (454g) fish heads (from about 2 large fish, preferable a large oily fish like mackerel or salmon), split in half lengthways and gills removed (see notes)

  • 10 large okra pods (5 ounces; 140g), stem ends trimmed and pods sliced in half on a bias crosswise

  • 3 small green chiles, such as serranos or green bird's eye, stemmed, sliced in half lengthwise, and seeded

  • 1 teaspoon light brown sugar, turbinado sugar, or granulated sugar

  • 1/2 cup (120ml) full-fat coconut milk

  • Cooked white rice or warm flatbreads, for serving

Directions

  1. For the Curry Powder: In a dry skillet, toast coriander seeds, cumin seeds, fennel seeds, black peppercorns, and white peppercorns over medium heat until they darken slightly and become fragrant, about 1 minute. Remove from heat and transfer the toasted spices to a mortar or spice grinder. Allow spices to cool for 1 minute, then grind spices until finely ground. Transfer to a small bowl and stir in the chile powder and turmeric. Set aside.

    Two image collage of toasting and then grinding spices

    Serious Eats / Michelle Yip

  2. For the Curry: Using the same mortar (no need to wipe it out), pound the garlic and ginger into a smooth paste.

    Overhead view of grinding garlic and ginger in mortar

    Serious Eats / Michelle Yip

  3. In a large sauté pan or medium Dutch oven, heat 1 tablespoon vegetable oil over medium-high until shimmering. Add the eggplant in a single layer and cook until first side is lightly browned, about 2 minutes. Flip the eggplant and cook until second side is lightly browned, about 2 minutes (we’re not looking to fully cook the eggplant; we just want to get some color on them). Transfer to a plate and set aside.

    Two image collage of cooking eggplant

    Serious Eats / Michelle Yip

  4. Add the remaining 2 tablespoons vegetable oil to the same sauté pan or Dutch oven and reduce heat to medium-low. Add the mustard seeds, fenugreek seeds, cumin seeds, and fennel seeds  and cook, stirring occasionally, until the spices are fragrant and the mustard seeds begin to sputter, 30 seconds.

    Overhead view of tossing seeds

    Serious Eats / Michelle Yip

  5. Stir in the sliced onions, season with salt, and cook, stirring often, until the onion begins to soften, 6 to 7 minutes. Stir in the garlic and ginger paste along with the diced tomatoes, and cook until the tomatoes begin to break down into a sauce, about 10 minutes.

    Overhead view of cooking onions in pan

    Serious Eats / Michelle Yip

  6. Meanwhile, slowly add 1/2 cup (120ml) water to the curry powder while whisking to form a paste. Stir the curry paste into the broken-down tomatoes and cook until thickened, about 5 minutes.

    Four image collage of adding mixture to onion mixture in pna

    Serious Eats / Michelle Yip

  7. Add the curry leaves to the skillet and cook until fragrant, about 1 minute. Add tamarind paste and 2 cups (475ml) water, then stir well, making sure to scrape up any bits stuck to the bottom of the skillet.

    Two image collage of adding curry leaves and tamarind paste

    Serious Eats / Michelle Yip

  8. Add the fish head halves, reserved eggplant, sliced okra, and sliced green chiles, making sure the liquid in the skillet comes at least 2/3 of the way up the sides of the fish heads; add more water if necessary. Add a large pinch of salt and bring to a boil over medium-high heat, then cover with a lid, reduce heat to low, and simmer until the fish heads and okra are fully cooked, about 20 minutes.

    Overhead view of adding fishhead and covering with lid

    Serious Eats / Michelle Yip

  9. Stir in the sugar and coconut milk and season with salt. Simmer for another 5 minutes, then remove from heat. Serve warm with rice or flatbread.

    Overhead view of fish head curry cooking after coconut milk has been added

    Serious Eats / Michelle Yip

Special Equipment

Mortar and pestle

Notes

I recommend using the heads of oily fish like mackerel and salmon, but feel free to use the fish heads of your choice. Have your fishmonger remove the gills and split the heads in half lengthwise for you.

Make-Ahead and Storage

The curry can be refrigerated in an airtight container for up to 5 days. Freezing is not recommended.

More Serious Eats Recipes