Zai Shun Curry Fish Head: A Home-Style Recipe

Updated November 4, 2026

Total time
1 hr 8 min
prep 25 min · cook 43 min
Serves
4
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Zai Shun Curry Fish Head: A Home-Style Recipe

This Zai Shun curry fish head recipe is a home-style take on Singaporean curry fish head, a dish of fish simmered with vegetables in a fragrant, tangy curry. Coconut milk softens the spice, while tamarind and tomatoes add brightness, making the rich gravy especially good with rice. Fish curry varies between cooks and households; this version keeps the method practical without claiming to reproduce a restaurant’s exact recipe.

Ingredients

  • 1 cleaned, split fish head, about 2½ lb (1.1 kg), preferably snapper or another firm-fleshed fish; ask the fishmonger to remove the gills and cut it into 4–6 manageable pieces.
  • 2 medium yellow onions, about 8 oz (225 g), roughly chopped.
  • 4 garlic cloves, about ½ oz (15 g), peeled.
  • 1 piece fresh ginger, 2 in (5 cm) long, about 1 oz (30 g), peeled and sliced.
  • 1 stalk lemongrass, about 1 oz (30 g), tough outer layer removed and tender part sliced; use 1 tsp (2 g) finely grated lime zest if you cannot find it, knowing the aroma will be less grassy and citrusy.
  • 3 tbsp neutral cooking oil (45 ml).
  • 12 fresh or thawed frozen curry leaves, about 2 g; omit if unavailable, or add a little extra lemongrass for fragrance.
  • 3 tbsp fish curry powder (about 24 g), or a blend of 2 tbsp (16 g) mild curry powder and 1 tbsp (8 g) Madras curry powder.
  • 1 tsp ground turmeric (about 3 g).
  • ½ tsp cayenne pepper (about 1 g), optional, for extra heat.
  • ⅓ cup water (80 ml), to make a curry-powder paste.
  • 1 tsp belacan, or shrimp paste, about 5 g, optional; it adds a savory, fermented depth. Leave it out for a shellfish-free version.
  • 1 can coconut milk, 13½ oz (400 ml), well shaken.
  • 1 cup water (240 ml), plus up to ½ cup (120 ml) more if needed.
  • 1 tbsp tamarind concentrate (15 ml) stirred with 2 tbsp water (30 ml), or 2 tbsp (30 ml) tamarind water; if neither is available, use 1 tbsp (15 ml) lime juice for a fresher, less rounded sourness.
  • 2 medium tomatoes, about 10 oz (280 g), cut into wedges.
  • 1 small Asian eggplant, about 8 oz (225 g), cut into 1-in (2.5 cm) pieces.
  • 6 oz okra (170 g), stems trimmed; green beans cut into 2-in (5 cm) lengths are a practical alternative.
  • 1 tsp fine salt (6 g), then more to taste.
  • ¼ tsp ground black pepper (about ½ g).
  • 2 tbsp chopped cilantro (about 8 g), for serving, optional.

Instructions

  1. Prepare the fish and aromatics. Have the fish head cleaned and cut before you start; remove any remaining gill tissue, since it can taste bitter. Pat the fish dry with paper towels rather than rinsing it, and keep it chilled while you work. In a food processor, blend the onions, garlic, ginger, and lemongrass into a coarse paste, adding a spoonful of the measured water only if needed to help the blades move. In a small bowl, stir together the curry powder, turmeric, cayenne, and ⅓ cup water until smooth. This advance preparation makes the cooking easier to manage and helps the spices cook evenly.
  2. Cook the aromatic base. Set a wide, heavy pot or deep skillet over medium heat and add the oil. When it shimmers, add the onion paste and curry leaves. Cook for about 8 minutes, stirring often and scraping the bottom, until the paste smells sweet and fragrant and has lost its raw, sharp onion smell. If it starts to catch, lower the heat and add a tablespoon of water; avoid scorching it, because burnt aromatics can make the whole curry taste bitter.
  3. Bloom the spices and build the gravy. Add the curry-powder mixture and the belacan, if using. Stir for 3 minutes so the spices toast in the oil but do not stick or darken too much. Pour in the coconut milk, 1 cup water, and the diluted tamarind. Stir well, bring the liquid just to a gentle simmer, and cook for 5 minutes. Taste a small spoonful: it should be savory, mildly sour, and rounded by coconut. Do not boil it vigorously, which can cause the coconut milk to separate.
  4. Simmer the vegetables. Add the eggplant, tomatoes, salt, and black pepper. Cover partly and simmer gently for 10 minutes, turning the eggplant once, until it is beginning to soften but still holds its shape. Add the okra and stir carefully. If the sauce looks very thick before the fish goes in, add up to ½ cup more water; the gravy should be pourable but not watery, and the fish will release some moisture as it cooks.
  5. Cook the fish gently. Arrange the fish-head pieces in the curry so they are mostly surrounded by liquid. Cover the pot and simmer gently for 15 minutes, turning the pieces once if they are not fully submerged. Check the thickest part of the flesh with a food thermometer, taking care not to touch bone: USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. The flesh should also be opaque and separate easily from the bone. If it has not reached 145°F (63°C), continue simmering and check again after 2 minutes; the exact time depends on the size of the pieces.
  6. Finish and serve. Turn off the heat and taste the gravy. Add a little more salt or tamarind if it needs balance, or a splash of water if it is too concentrated. Scatter over cilantro if using. Ladle the fish and vegetables into a broad serving bowl, spoon the curry gravy around them, and serve while hot. Handle the pieces gently: cooked fish near the head can be delicate, and stirring hard may break it up.

Tips

  • Ask the fishmonger to prepare the head. Fish heads can be awkward to cut safely at home. Request a cleaned head with the gills removed and the head split or chopped into several pieces. If you do cut it yourself, use a sturdy, sharp cleaver and a stable board, and keep the pieces large enough to lift without losing the cheeks and collar meat.
  • Keep the simmer gentle. A rolling boil can break up the fish and make coconut gravy look curdled. Small, steady bubbles are enough to cook the fish. Use a wide pot so the pieces can sit in a single layer as much as possible, and turn them only once.
  • Adjust the heat and sourness at the end. Curry powders differ in strength, and tamarind products vary in acidity. Start with the listed cayenne and salt, then taste after the fish is cooked. Add a little extra tamarind for sharper tang or a splash of water to mellow an intense curry.
  • Choose the substitute with the flavor change in mind. Fish curry powder, curry leaves, tamarind, and belacan give this dish much of its characteristic flavor. The listed alternatives will still make a satisfying curry, but lime is brighter than tamarind, and omitting belacan makes the gravy less deeply savory.

Serving Suggestions

Serve the curry immediately with steamed jasmine rice or another plain long-grain rice, which soaks up the coconut-tamarind gravy. For a more filling meal, put the fish, eggplant, okra, and plenty of sauce in a large shallow bowl and let everyone serve themselves. Roti or another plain flatbread is also useful for scooping up the gravy. A simple side of sliced cucumber or lightly dressed greens brings a cool, crisp contrast; keep the side seasoning restrained so it does not compete with the curry.

Fish-head pieces include bones and can be tricky to eat, so provide small bowls for discarded bones and warn guests before serving. If you prefer easier portions, offer the fish head as the centerpiece and add boneless fish fillets, or serve the curry with a spoon and fork so diners can pick the meat away from the bones comfortably.

Variations

Use fish steaks or fillets: If a fish head is unavailable, use about 2 lb (900 g) of firm fish steaks, such as snapper, grouper, or cod. Add steaks for roughly 8–12 minutes, or boneless fillets for about 5–8 minutes, then check the thickest section for 145°F (63°C). Pieces vary in thickness, so use the thermometer rather than relying on the clock alone. The flavor will be less gelatinous and rich than a head-based curry, but the method works well.

Make it hotter: Increase the cayenne to 1 tsp (about 2 g), or add 1–2 sliced fresh red chilies with the curry leaves. For a milder pot, omit the cayenne and use a mild curry powder. Add other vegetables: Long beans, potatoes, or sliced bell pepper can replace some of the eggplant or okra. Add potatoes with the eggplant and simmer until nearly tender before adding fish; add quick-cooking vegetables with the okra. For a lighter, less creamy sauce, replace up to half the coconut milk with water, though the gravy will be less rich.

Storage and Reheating

Cool leftovers promptly and refrigerate them within 2 hours of cooking in a shallow, covered container. Keep the fish and curry together so the meat stays moist, and refrigerate at 40°F (4°C) or colder for 3–4 days. Fish can become fragile after cooking, so avoid transferring it repeatedly between containers. If the pot has been sitting out longer than 2 hours, discard the leftovers rather than saving them.

For best texture, reheat only the portion you plan to eat. Put it in a covered saucepan over low heat with a tablespoon or two of water, and warm it gently until steaming throughout, turning the fish carefully. Check that leftovers reach 165°F (74°C), the USDA FSIS reheating temperature. A microwave also works: cover the portion, heat in short intervals, and check more than one spot, since thick fish pieces can warm unevenly. The gravy may separate slightly after chilling; gentle stirring as it warms usually brings it back together. Freezing is possible for up to 2 months for best quality, though the fish and vegetables may soften after thawing. Thaw overnight in the refrigerator and reheat to 165°F (74°C).

Frequently Asked Questions

What kind of fish head should I buy?
Snapper is a good choice because the head has substantial meat and holds together during simmering. Grouper or another firm, mild fish also works. Buy a fresh head from a fish counter, ask for the gills to be removed, and have it cut into pieces that fit your pot. The fish should smell clean and mild, not strongly fishy.

Can I make curry fish head without coconut milk?
Yes. Replace it with an equal amount of water or unsalted fish stock, then taste and adjust the curry seasoning. The result will be thinner and more sharply spiced, without coconut milk’s richness. For a middle ground, use half coconut milk and half water, as described in the variations.

Is fish curry powder essential?
No, but it gives the gravy a distinct, layered curry flavor. A blend of mild curry powder and Madras curry powder is a practical substitute. Curry blends differ in salt, chili, and turmeric content, so start with the amount in the ingredient list and adjust only after the sauce simmers.

How can I tell when the fish is cooked?
Check the thickest flesh with a food thermometer without touching bone; it should reach 145°F (63°C). The flesh should look opaque and separate from the bone readily. Do not judge by color alone, since fish-head pieces vary in thickness and some flesh sits close to bone.

Can I prepare the curry ahead?
You can blend the aromatics and measure the spices a day ahead, keeping them covered in the refrigerator. You can also cook the vegetable gravy ahead and chill it promptly, then bring it to a gentle simmer before adding the fish and cooking it to 145°F (63°C). Cooking the fish just before serving gives it the best texture and avoids repeatedly reheating delicate pieces.

What if I cannot find tamarind?
Use the listed lime juice substitution, adding it gradually near the end so the sourness stays balanced. Lime brings a cleaner, brighter acidity, whereas tamarind tastes fruitier and deeper. If your tomatoes are especially tart, begin with less lime, taste the gravy, and add more only if needed.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).