Singapore Fish Head Curry in Tomato Tamarind Recipe

Singaporean Recipes

Tangy Tomato-Tamarind Fish Curry

Quick Answer Singapore fish head curry is a South-Indian-style curry where a large fish head, or firm fish steaks, simmers in a tangy gravy of tomatoes, tamarind, and fish curry powder, enriched with coconut milk and studded with okra, eggplant, and long beans. It is built on a tempering of mustard seeds, fenugreek, and curry leaves. It is bold, sour, and spicy, uses halal fish, and is ready in about 55 minutes.

Few dishes capture Singapore’s mixed kitchen quite like fish head curry. It is a proud piece of Indian-Chinese fusion born in the city’s coffee shops, where a once-overlooked cut became the centerpiece of a shared, celebratory bowl. The gravy is loud in the best way: sour from tamarind, deep from tomatoes, warm from curry powder, and rounded off with coconut milk.

This curry rewards patience with the sour-spicy balance more than anything else. My first attempt leaned too far into tamarind and drowned everything; the sweet spot is a gravy that makes you sit up, then reach for rice to calm it down again.

Ready in about 55 minutes  |  Serves 4  |  One big pot

Prep Time
20 min
Cook Time
35 min
Total Time
55 min
Servings
4
Intermediate Halal Dairy-Free About 360 cal / serving
A fish head in a rich red-orange tamarind-tomato and coconut curry with okra and eggplant, served with rice
Singapore fish head curry in a tangy tomato-tamarind and coconut gravy, served with steamed rice.

Why This Singapore Fish Head Curry Works

This curry succeeds because it treats sourness as a headline flavor, not a background note. Tamarind and tomatoes give it a bright, mouth-watering tang, while fish curry powder and dried chilies bring heat and earthy depth. Coconut milk then softens it all into something rich enough to coat every grain of rice.

The tempering is the true starting point. Frying mustard seeds, fenugreek, and curry leaves in hot oil pulls a nutty, aromatic backbone out of the spices that you cannot fake by stirring them in later. Fenugreek in particular adds a subtle, almost maple-bitter edge that is a signature of good South-Indian-style fish gravy.

Cooking the tomatoes down before the tamarind and coconut milk go in is what gives the gravy its body. You want them jammy and the oil beginning to separate, so the base tastes deep rather than watery, and the sourness reads as balanced instead of sharp.

Pro observation: The tomato base is ready for the tamarind when the oil starts to pool at the edges and the mixture smells sweet rather than raw. That glossy sheen is your green light.

Ingredients

Adjust servings above to rescale · Serves 4

Kitchen Measurement Converter

Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.

Want more options? Open the full tomato measurement converter.

Ingredient Notes & Substitutions

The Fish

Use a halal fish head from a firm, meaty variety such as snapper or grouper. If a whole head is hard to source, thick firm fish steaks work beautifully and are easier to serve. Ask your fishmonger to clean and halve the head.

Tomatoes and Tamarind

Ripe red tomatoes build the sweet-tart base. Tamarind paste delivers the signature sourness; start with less than you think and taste, as brands vary in strength.

Fish Curry Powder

Look for a blend labeled fish or seafood curry powder, which leans on coriander, chili, fenugreek, and turmeric. A regular Madras curry powder is a fine stand-in.

The Vegetables

Okra, eggplant, and long beans are traditional and soak up the gravy well. Green beans can replace long beans, and any small eggplant works. Add them so they finish tender, not mushy.

Equipment

  • Wide, deep pot or claypot
  • Wooden spoon
  • Sharp knife and board
  • Small bowl for spices
  • Measuring spoons
  • Ladle for serving

Before You Start

1. Clean and salt the fish. Rinse the fish head or steaks, pat dry, and rub lightly with salt and a pinch of turmeric. Let it sit while you prep so it seasons through and stays firm.

2. Line up the tempering. The tadka takes seconds, so have the mustard seeds, fenugreek, and curry leaves ready by the stove before the oil heats.

3. Start the rice early. This curry is meant to be spooned over steamed rice, so get the rice going before the tempering.

Step-by-Step Instructions

1

Prep the Fish and Aromatics

Rinse and dry the fish, then rub it with a little salt and turmeric and set it aside. Slice the onion, chop the tomatoes, and cut the okra, eggplant, and long beans into bite-size pieces. Loosen the tamarind paste in a little warm water so it is ready to pour.

2

Temper the Spices

Heat 3 tablespoons of oil in a wide pot over medium heat. Add the mustard seeds and wait until they pop, about 30 seconds, then add the fenugreek seeds, curry leaves, and dried red chilies. Let them sizzle for 10 to 15 seconds until fragrant. Stand back a little, as the curry leaves can spit.

Mustard seeds, fenugreek, and curry leaves tempering in hot oil
Pop the mustard seeds first, then add fenugreek and curry leaves for the aromatic base.
3

Soften the Onion and Bloom the Spices

Add the sliced onion and green chilies to the tempered oil and cook 6 to 7 minutes until soft and golden. Stir in the ginger-garlic paste and cook 1 minute more. Add the fish curry powder and turmeric and stir for 30 seconds, splashing in a little water if the spices catch, until fragrant.

4

Build the Tomato Base

Add the chopped tomatoes and a teaspoon of salt. Cook 8 to 10 minutes, stirring, until the tomatoes collapse into a thick, jammy sauce and the oil separates at the edges. Pour in the tamarind water with about a cup of fresh water to make a loose, pourable gravy.

Tomatoes cooking down into a thick jammy tamarind base in a pot
Cook the tomatoes until jammy and the oil separates, then add the tamarind water.
5

Simmer the Vegetables and Fish

Add the eggplant and long beans and simmer 5 minutes, then add the okra. Nestle the fish head or steaks into the gravy, spooning sauce over the top. Cover and cook gently 10 to 12 minutes, until the fish turns opaque and flakes and the vegetables are tender. Do not stir hard once the fish is in.

6

Add Coconut Milk and Serve

Pour in the coconut milk and add the sugar. Warm through on low heat for 3 to 4 minutes without boiling, so the coconut milk stays smooth. Taste and adjust with more salt or a touch more tamarind for tang. Scatter fresh cilantro over the top and serve hot with steamed rice.

Finished Singapore fish head curry with coconut milk, garnished with cilantro and served with rice
Stir in coconut milk at the end, keep it gentle, and finish with a shower of cilantro.

Chef’s Tips From Real Kitchen Testing

1

Add the fish head last and let it poach in the gravy, spooning sauce over rather than stirring. It stays intact and silky instead of falling to shreds.

2

Balance the sour and the spicy in stages. Add tamarind a little at a time near the end, then a pinch of sugar to round it, tasting until the gravy makes you want another spoonful.

3

Stir the coconut milk in only at the finish and keep the heat low. A hard boil after it goes in is the fastest way to a grainy, split gravy.

Recipe Variations

Serving Suggestions

  • Steamed white or fragrant jasmine rice
  • Warm roti prata or naan to mop the gravy
  • A cooling cucumber and yogurt raita
  • Lime wedges and extra fresh cilantro

Nutrition Facts

Estimated nutrition per serving of fish head curry
NutrientAmount per serving
Calories360
Protein28 g
Carbohydrates16 g
Fat22 g
Saturated Fat13 g
Fiber5 g
Sugar7 g
Sodium780 mg

Values are estimates per serving and vary with the exact fish, brands, and portion sizes you use.

Make-Ahead Tips

The gravy is even better made ahead, because the tamarind and spices settle and deepen. Cook the base and vegetables up to a day early, then reheat gently and add the fresh fish just before serving. Stir the coconut milk in at the very end.

Storage, Freezing & Reheating

Refrigerator
Keeps 2 days in an airtight container. Cooked fish is best eaten within a day for the freshest taste and texture.
Freezer
Freeze the gravy without the fish for up to 1 month. The coconut milk may look separated after thawing but comes back together when warmed and stirred.
Reheating
Warm gently on the stove over low heat until the fish is piping hot throughout. Avoid a hard boil so the coconut milk stays smooth.

Common Mistakes to Avoid

×Overcooking the fish. Once it turns opaque and flakes, it is done; extra minutes in the pot leave it dry and stringy.
×An unbalanced sour-spicy gravy. Too much tamarind turns it harsh; correct it with a pinch of sugar and a splash of coconut milk rather than dumping in more spice.
×Splitting the coconut milk. Adding it too early or boiling it hard curdles it into grainy curds. Stir it in last and keep the heat low.

Troubleshooting

Gravy tastes flat? It usually needs salt and a little more tamarind to bring the tang forward, then a pinch of sugar to round it out.

Gravy split or grainy? The coconut milk boiled too hard. Lower the heat and whisk in a splash of warm water to bring it back together.

Fish falling apart? It was stirred too much or simmered too long. Nestle it in, spoon sauce over instead of stirring, and pull it off the heat as soon as it flakes.

A Note on Singaporean Cooking

Fish head curry is one of Singapore’s great fusion stories. It grew out of the city’s South Indian kitchens, then took on Chinese diners’ love of the fish head as a prized cut full of tender cheek meat. The result is neither strictly Indian nor Chinese but distinctly Singaporean, a bowl meant to be shared.

Tamarind and curry leaves are the soul of the gravy, giving it the sour lift and fragrant depth that set it apart from a creamy northern-style curry. Every stall and home cook tunes the sour-spicy balance differently, which is half the fun of making it your own. If you love these deep, spiced tomato flavors, our creamy Indian tomato soup shares the same spirit, and you can browse more in our full collection of tomato recipes.

Food-safety note: Cook fish until it turns opaque, flakes easily, and reaches an internal temperature of 145 F (63 C) at the thickest part. Use fresh, well-chilled fish, and refrigerate leftovers promptly.

Frequently Asked Questions

It is tangy and bold, with sourness from tamarind and tomatoes, warmth and heat from fish curry powder and chilies, and a rich, mellow finish from coconut milk. The fish is tender and the gravy is made for spooning over rice.
Yes. Thick, firm fish steaks or fillets from a halal variety such as snapper or grouper work well and are easier to serve. Add them at the same stage and cook just until they flake.
The flesh turns from translucent to opaque, flakes easily with a fork, and reaches 145 F (63 C) at the thickest point. Pull it off the heat as soon as it does so it stays moist.
A generous squeeze of fresh lime juice added at the end is the closest easy swap, or use a little more tomato for tartness. Add either gradually and taste, since the gravy should be brightly sour, not sharp.
Stir it in only at the very end and keep the heat low; never let it boil hard. If it does split, whisk in a splash of warm water off the heat to bring it back together.
Yes. It uses halal fish and contains no prohibited ingredients. Everything in the gravy, from the spices to the coconut milk and vegetables, is suitable for a halal table.

Last updated: September 23, 2026

Was this recipe helpful?
Thanks for rating!
Timer
0:00

Leave a Comment