Singaporean Recipes
Tangy Tomato-Tamarind Fish Curry
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.

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
Kitchen Measurement Converter
Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.
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
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.
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.

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.
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.

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.
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.

Chef’s Tips From Real Kitchen Testing
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.
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.
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
| Nutrient | Amount per serving |
|---|---|
| Calories | 360 |
| Protein | 28 g |
| Carbohydrates | 16 g |
| Fat | 22 g |
| Saturated Fat | 13 g |
| Fiber | 5 g |
| Sugar | 7 g |
| Sodium | 780 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
Common Mistakes to Avoid
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
More Tomato Recipes to Try
Last updated: September 23, 2026
