Kam Long Ah Zai curry fish head is a rich, tangy curry associated with Johor Bahru, Malaysia, where fish head is simmered with vegetables in a fragrant, spiced gravy. This home-style version uses coconut milk, tamarind, tofu puffs, cabbage, and okra for a generous one-pot meal; recipes and levels of heat vary from cook to cook.
Ingredients
- 1 cleaned red snapper or other firm white-fish head, split or cut into pieces, about 2 to 2¼ lb (900 g to 1 kg); ask the fishmonger to prepare it if needed
- 4 dried red chiles (about ¼ oz/8 g), stemmed and seeded if you prefer less heat
- ½ cup (75 g) peeled shallots, roughly chopped
- 5 garlic cloves (about 25 g), peeled
- 2 in (5 cm) fresh ginger (about 30 g), peeled and sliced
- 2 stalks lemongrass (about 60 g), tender inner portions sliced; substitute 1 tablespoon (15 g) lemongrass paste if necessary
- ¼ cup (30 g) Malaysian or Singapore-style fish curry powder
- 1 teaspoon (4 g) belacan, or fermented shrimp paste; substitute 2 teaspoons (10 ml) fish sauce, which gives a milder, less deeply fermented flavor
- ½ cup (120 ml) neutral oil, such as canola or peanut oil
- 2½ cups (600 ml) water or unsalted fish stock
- 1 cup (240 ml) full-fat coconut milk, well shaken
- 1 tablespoon (15 ml) tamarind concentrate, or 2 tablespoons (30 ml) tamarind water made from a soft tamarind block
- 1 teaspoon (5 g) granulated sugar
- 1 teaspoon (6 g) fine salt, plus more to taste
- 8 oz (225 g) firm green cabbage, cut into broad pieces
- 6 oz (170 g) fresh okra, trimmed and left whole or halved lengthwise
- 6 oz (170 g) fried tofu puffs, halved; if unavailable, use fried tofu pieces
- 2 medium tomatoes (about 10 oz/280 g), cut into wedges
- 2 scallions (about 30 g), sliced, for serving
Instructions
- Put the dried chiles in a small heatproof bowl and cover them with hot water. Leave them to soften for 15 minutes while you prepare the other ingredients; this soaking time is included in the 30-minute prep estimate. Drain the chiles before blending. Pat the fish head dry with paper towels and check for any remaining scales or loose gills. Keep it refrigerated while you make the curry paste.
- In a blender or small food processor, combine the drained chiles, shallots, garlic, ginger, lemongrass, curry powder, and belacan. Add 2 tablespoons (30 ml) of the measured oil and blend to a thick paste, stopping to scrape down the sides. If the blades struggle, add water 1 tablespoon (15 ml) at a time; avoid adding so much that the paste turns watery.
- Heat the remaining oil in a wide, heavy pot or deep skillet over medium heat. Add the curry paste carefully and cook for 7 to 9 minutes, stirring often so it does not catch on the bottom. It should become glossy and smell fragrant, with the raw, sharp smell of the aromatics fading. If it starts sticking before it is fragrant, lower the heat and stir in a tablespoon of water.
- Pour in the water or fish stock, coconut milk, tamarind, sugar, and salt. Stir well, scraping up any paste from the base of the pot. Bring the mixture to a gentle simmer over medium heat, which should take about 3 to 4 minutes. Keep it below a hard boil: vigorous boiling can make coconut milk look split and can cause the curry to reduce too quickly.
- Add the cabbage and tofu puffs. Simmer gently for 4 minutes, turning the tofu puffs once so they begin to absorb the curry. Add the okra and tomato wedges and simmer for another 2 minutes. The vegetables will finish cooking alongside the fish, so they should not be completely soft at this stage.
- Lower the fish head pieces into the curry, arranging them in a single layer as much as the pot allows. Spoon curry over the exposed surfaces, cover, and simmer gently for 8 to 12 minutes, depending on the thickness of the pieces. Avoid stirring, which can break delicate fish flesh; instead, gently shake the pot once or spoon sauce over the top.
- Check the thickest edible piece of fish with an instant-read food thermometer, placing the probe in the flesh and keeping it away from bone. Fish is safe at the USDA FSIS minimum internal temperature of 145°F (63°C). The flesh should also look opaque and separate easily. If it has not reached temperature, continue simmering for 1 to 2 minutes at a time and check again.
- Taste the curry and adjust with a little more salt, sugar, or tamarind to balance it. The flavor should be savory, aromatic, gently sour, and only as spicy as you like. Turn off the heat, scatter over the scallions, and serve while hot.
Tips
- Choose the fish carefully. Ask for a cleaned head from a firm-fleshed fish such as snapper. A head with plenty of cheek and collar meat is satisfying, but sizes vary, so use the weight as a guide. If you cannot find a fish head, use about 2 lb (900 g) thick fish steaks and check them early; thinner steaks cook faster.
- Keep the curry at a gentle simmer. A rolling boil can break up the fish and make the coconut milk separate. Once the fish goes in, resist the urge to stir; baste it with sauce or move the pot instead.
- Adjust the heat in the paste. Remove chile seeds for a milder curry, or add one fresh red chile to the blender for more heat. Curry powders differ in salt and spice, so taste before adding extra salt at the end.
- Use tamarind to balance, not dominate. Concentrates vary in strength. Start with the listed amount, taste after the fish is cooked, and add a little more if the coconut milk tastes too rich. Lime juice can add brightness at the table, but it is sharper and less rounded than tamarind.
Serving Suggestions
Serve the curry immediately in a wide, deep bowl so everyone gets fish, vegetables, tofu puffs, and plenty of gravy. Steamed jasmine rice is a natural partner because it soaks up the coconut-tamarind sauce; plain white rice or another fragrant long-grain rice also works. Put extra sliced chiles or lime wedges on the table for people who want more heat or acidity, and offer a simple plate of sliced cucumber to add a cool, crisp contrast.
Fish head contains bones and small cartilage pieces, so remind diners to eat carefully, especially if serving children. For a shared meal, provide serving spoons and let each person take a portion of fish and curry rather than passing pieces directly from the pot.
Variations
For a less rich gravy, replace half the coconut milk with water or unsalted stock. The curry will be thinner and less creamy but will still carry the spice and tamarind flavors. If you cannot source Malaysian or Singapore-style curry powder, use a mild Madras-style curry powder; the flavor will shift toward a more roasted, earthy spice profile. Taste it before salting, since blends vary.
Vegetables can be changed according to availability. Eggplant, long beans, or a little extra cabbage can stand in for okra, though the texture will differ. Add firm vegetables early enough to soften and tender ones later so they do not collapse. To make the dish with fish fillets instead of a head, use thick, skin-on pieces and reduce the simmering time as needed; always check for 145°F (63°C) in the thickest flesh.
For a milder family-style curry, use fewer dried chiles and choose a mild curry powder. For a more pronounced sour note, add tamarind in small increments near the end rather than increasing it all at once. These are practical home variations, not a claim to reproduce any restaurant’s exact formula.
Storage and Reheating
Cool leftovers promptly and refrigerate them within 2 hours, preferably in a shallow airtight container. Cooked fish curry keeps for 3 to 4 days in the refrigerator. The fish is delicate, so store it with enough sauce to keep it from drying out, and avoid repeatedly warming and cooling the same pot. If you expect leftovers, you can also refrigerate the curry and fish separately, then combine them gently for reheating.
Reheat only the portion you plan to eat in a covered saucepan over low heat, adding a splash of water if the gravy has thickened. Turn the fish carefully and heat until the center reaches 165°F (74°C), the USDA FSIS temperature for reheated leftovers. A microwave also works: use a covered microwave-safe dish, heat in short intervals, and check the fish in more than one spot. Do not let the curry sit at room temperature for more than 2 hours. Freezing is possible for up to 2 months, although the fish may become softer and the coconut-based gravy may separate slightly after thawing; thaw overnight in the refrigerator and reheat gently.
Frequently Asked Questions
Can I make this curry with fish steaks instead of a fish head?
Yes. Use thick, firm white-fish steaks, ideally skin-on, with a similar total weight. Add them when the vegetables are nearly tender and begin checking after about 6 minutes, since steaks may cook sooner than thick head pieces. Confirm 145°F (63°C) in the thickest part.
Where can I buy fish curry powder and belacan?
Look in Southeast Asian grocery stores or the international aisle for fish curry powder and belacan, which is fermented shrimp paste. If belacan is unavailable, use the fish sauce substitution in the ingredient list. A general curry powder can work in place of fish curry powder, but the aroma and balance will be different.
Why did my coconut curry separate?
A little separation is not necessarily a problem, but a hard boil or prolonged high heat can make the coconut milk look grainy or oily. Keep the pot at a gentle simmer and stir the liquid before adding the fish. If it separates, lower the heat and gently whisk the sauce around the fish without breaking it.
How do I know when the fish head is cooked?
Use an instant-read thermometer in the thickest flesh, away from bone, and cook fish to 145°F (63°C), the USDA FSIS safe minimum. The flesh should look opaque and flake readily. Because a fish head has unevenly sized pieces, check more than one thick section and give larger pieces extra time if needed.
Can I prepare the curry paste ahead?
Yes. Blend the paste up to 2 days ahead and keep it covered in the refrigerator. You can also freeze it for about 2 months. Thaw frozen paste in the refrigerator before frying it; do not leave it out at room temperature for an extended period.
Can I make the whole curry ahead of time?
It is best freshly cooked because fish can overcook when reheated. If making it ahead, cook the curry base and vegetables, cool and refrigerate them within 2 hours, then bring the base to a simmer and cook the fish just before serving. If the complete dish is already cooked, refrigerate it promptly and reheat leftovers to 165°F (74°C).
Related
- Vietnamese Steamed Rice Rolls (Bánh Cuốn), Made at Home
- Vietnamese Ramen Soup: Chicken, Ginger and Lemongrass
- Vietnamese Soup Dishes: Chicken Pho (Pho Ga)
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).