Don Signature Crab - Singapore Food Guide

Singapore Fish Head Curry

A Singapore-style, wok-to-pot fish head curry combining fragrant spice paste, tamarind tang and coconut cream for a communal, hawker-style main of fish head and vegetables.

About this dish

Singapore Fish Head Curry is a heartland favourite you’ll find at zi char stalls, Peranakan restaurants and East Coast eateries — a crowd-pleasing, communal dish meant for sharing over hot rice. The dish blends South Indian curry techniques with local flavours: a punchy spice paste, a sour tamarind note and sometimes a splash of coconut milk, finished with eggplant, okra and tomato for texture.

This recipe is written for the approachable Singapore home kitchen: a wok to fry aromatics and a pot to simmer the sauce until the fish is just cooked through. It suits weekend family dinners, a weekend makan with friends, or a more festive spread during gatherings when you want something comforting but showy. Think kopitiam-meets-Peranakan — hearty, saucy, and meant to be eaten with steamed jasmine rice or crusty bread to mop up the gravy.

Taste-wise expect layers: warm curry spices (coriander, cumin, turmeric), the sweet funk of belacan or shrimp paste, the bright sourness of tamarind and the mellow creaminess if you add coconut milk. The fish head gives succulent, gelatinous bits around the cheeks and collar — the best part for many Singaporeans — while eggplant and okra soak up the curry. Serve it hot, with a pot of cold barley or a local beer, and you’ve got proper hawker-centre vibes at home.

Ingredients

  • 1 large fish head (red snapper or sea bass head), about 800 g–1 kg, cleaned and halved if whole
  • 2 tbsp vegetable oil (or coconut oil for more fragrance)
  • 4–5 shallots, peeled and roughly chopped
  • 4 cloves garlic, peeled
  • 3 cm piece galangal or ginger, sliced
  • 8–10 dried red chillies, soaked to soften (adjust to heat tolerance)
  • 1 tbsp belacan (shrimp paste), toasted
  • 2 tsp ground coriander
  • 1 tsp ground cumin
  • 1 tsp turmeric powder
  • 2 stalks lemongrass, white parts bruised and tied
  • 8 curry leaves (optional)
  • 400 ml canned coconut milk (optional for a richer gravy)
  • 400 ml water or light fish stock
  • 2 tbsp tamarind paste (or 3 tbsp tamarind juice), to taste
  • 1 tbsp light soy sauce or fish sauce
  • 1 tsp palm sugar or brown sugar
  • 1 medium aubergine / brinjal (eggplant), cut into large chunks
  • 8–10 okra, tops trimmed
  • 2 medium tomatoes, quartered
  • Handful fresh coriander (cilantro) leaves and sliced red chillies to garnish
  • Salt and white pepper to taste
  • Lime wedges, to serve

Step-by-Step Method

  1. Prepare the fish head: rinse and pat dry, season lightly with salt and a pinch of turmeric. If large, halve the head along the spine so it’s easier to serve; set aside in the fridge while you make the paste.
  2. Make the spice paste: blend shallots, garlic, galangal/ginger, soaked dried chillies and toasted belacan into a smooth paste with a splash of water. Alternatively pound in a mortar for a more rustic texture.
  3. Heat 1 tbsp oil in a wok or large frying pan over medium-high heat; add the spice paste and sauté for 4–6 minutes until fragrant and the oil separates, stirring so it doesn’t burn. Add ground coriander, cumin and turmeric and fry for 30 seconds.
  4. Add lemongrass and curry leaves, then pour in the tamarind paste, light soy or fish sauce and sugar. Stir to combine, then add the water or fish stock and bring to a simmer.
  5. If using coconut milk, lower heat and slowly stir in the coconut milk now, keeping the curry at a gentle simmer so it doesn't split. Taste and adjust the sourness or salt like a zi char stall — more tamarind for tang, more sugar to balance.
  6. Heat remaining oil in another wok or the same pan on high and quickly pan-fry the fish head pieces, skin-side down, for 1–2 minutes to get some colour (optional step for extra texture). Carefully transfer fish into the simmering curry, spooning sauce over the fish.
  7. Add eggplant, okra and tomatoes to the curry. Simmer gently on medium-low for 10–12 minutes until vegetables are tender and the fish is cooked through (fish cheek flesh should flake easily). Keep the curry at a gentle simmer — avoid vigorous boiling to prevent the fish from falling apart.
  8. Taste and adjust seasoning with fish sauce or salt, a pinch more sugar or extra tamarind for brightness. If the gravy is too thin, simmer uncovered briefly; to make it silkier, stir in a little more coconut milk off the heat.
  9. Turn off the heat and garnish with fresh coriander and sliced red chillies. Serve immediately with steamed jasmine rice or crusty bread to mop up the gravy, plus lime wedges and sambal belacan on the side.

Tips & Serving Ideas

  • Buy the fish head from wet markets (e.g. Geylang, Tiong Bahru) or supermarket fish counters; ask the fishmonger to split the head for you to make cooking and serving easier.
  • Belacan (shrimp paste) and good tamarind make a big difference — these are widely available at NTUC, Cold Storage or Sheng Siong; toast the belacan briefly to reduce raw funk if needed.
  • Adjust spice by changing the number of dried chillies or using fewer bird's eye chillies; for family meals tone down the heat and serve sliced chilli on the side like at a kopitiam.
  • For more ‘zi char’ depth, pan-fry the fish until slightly crisp before adding to the curry; this creates texture that holds up during simmering.
  • Make-ahead: curry tastes even better the next day as flavours meld — reheat gently on low and add a splash of water or coconut milk if too thick. Great for next-day lunchboxes with rice.
  • If you can’t find coconut milk or prefer a lighter curry, omit it and increase tamarind or tomato for body; coconut milk gives a creamier mouthfeel common in Singapore versions.

You might also like

More recipes to save for later.