This is a dish that you will find in many Southeast Asian cuisines where the combination of coconut milk and chilies is ubiquitous. The spices may vary, so may the part of the fish used, but, essentially it’s still fish in coconut milk.
But this is fish soup with coconut cream — not milk. Can coconut milk and cream be used interchangeably? Not really. But although you may substitute coconut milk to make this soup, you’ll get a thinner broth. If you prefer a soup that’s thick and creamy — almost like a chowder — stick with coconut cream. For more about coconuts, see the post below.
A guide to coconuts for eating, drinking and cooking
Young and mature coconuts are used differently in cooking. The flesh of young coconuts are soft and sweet. Mature ones have tough flesh that’s best for squeezing coconut milk.
But why fish head for this recipe? First, because we love fish head here at home. Contrary to what most people think, fish heads are quite fleshy especially if one does not balk at eating the jelly-like skin, lips and eyes which are all delicious.
Second, on the day I made this soup, I had two whole talakitok (trevally), each weighing about three-quarters of a kilo. The heads of fish that size are more than enough for a meal for two people, so, I went ahead and cooked them.
Fish head soup with coconut cream

Ingredients
- 1 to 2 fish heads (I used trevally but salmon head is even better) about 500 grams total weight
- 4 cloves garlic
- 2 shallots
- 1 one-inch piece ginger
- 3 to 4 finger chilies
- 2 tablespoons cooking oil
- fish sauce to taste
- 2 cups coconut cream
- sliced scallions to garnish
Instructions
- Clean the fish heads; remove the gills (you can ask the fish monger to do this for you). If the heads are rather large, you can chop them into halves.
- Crush, peel and finely mince the garlic (it’s easier to peel garlic after crushing the cloves first).
- Peel and thinly slice the shallots.
- Peel and grate the ginger.
- If you want the chilies to bite but not scorch, slit them open lengthwise, scrape off and discard the seeds.
- Heat the cooking oil in a pot that should be wide enough to hold the fish heads in a single layer to ensure even cooking.
- Add the garlic, shallots, ginger and chilies. Cook until fragrant (about a minute over medium heat).
- Add the fish heads in a single layer.
- Pour in about a cup of water, season with fish sauce or salt then bring to a boil.
- Cover and simmer for about 10 minutes (longer if they are rather large). The water need not cover the fish heads — the heat from the steam is enough to cook them.
- Turn up the heat to medium and pour in the coconut cream.
- Bring to a gentle boil. Continue cooking the fish, uncovered, for a few minutes.
- Taste the soup and stir in more fish sauce, if necessary.
- With a large spoon or spatula, lift the cooked fish heads and transfer to individual soup bowls.
- Pour the broth and spices over them and garnish with sliced scallions.