Malu Curry
Sri Lankan Fish Curry (Malu Curry)
Also known as Sri Lankan goraka fish curry, fish ambul thiyal style coconut curry, ceylon fish curry
This is malu curry, and malu simply means fish. Firm white fish simmered in a roasted-spice and coconut gravy, soured with goraka (Malabar tamarind) rather than lime, so the tang comes out dark and deep, not bright and fruity. Pick a firm fish and the chunks stay meaty and hold together in a gravy that clings to every last piece.

Also in our Southern collection.
A dark, tangy fish curry soured with goraka and finished in coconut milk. The one that shows what Sri Lankan seafood is really about.
- Total time
- 45 min
- 15 min prep · 30 min cook
- Serves
- 4 people
- Difficulty
- Medium
- Spice level
- Medium
- Country help
- USA · UK · AU · CA substitutes included
CeylonCooking
ceyloncooking.com/recipes/sri-lankan-fish-curry

Sri Lankan Fish Curry (Malu Curry)
Scan to open on your phone
Nutrition
Estimated values, per serving.
About This Dish
Ask for malu curry in a Sri Lankan home and you'll be pointed straight to the pot in the middle of the table. Fish is the everyday protein of the island, and this is the curry that does the talking for it. Malu just means fish in Sinhala, and a malu curry can be made with whatever the boats brought in that morning, tuna one day, kingfish the next, seer and mullet when they run. What ties every version together is goraka, that smoky-sour dried fruit that gives the gravy its dark colour and its slow, clinging tang. This is southern coastal cooking at its most sure of itself: spice first, properly savoury, never shy.
But goraka does more than add sourness. In coastal kitchens it was prized as a preservative, keeping a fish curry good for an extra day in a hot climate before refrigeration was common, and that is how it got tangled up with seafood for good. You can see the habit in the cooking itself: the curry is simmered low and slow in a clay pot, the fish is barely stirred, and the gravy is reduced down until it clings to each chunk instead of drowning it. A good malu curry is dark, almost mahogany, and it tastes of the sea, the spice tin and the goraka all at once.
The thing that makes this curry is the contrast. Roasted curry powder brings a toasted, almost coffee-like depth, the coconut milk rounds it all out into something rich and smooth, and the goraka cuts straight through with a sharp sourness that keeps every mouthful awake. Spoon it over red rice with a sambol on the side and you've got the kind of plate that explains why people fall hard for Sri Lankan food.
Goraka: The Soul of Sri Lankan Fish Curry
Goraka is the dried, smoke-cured rind of Garcinia cambogia, the fruit that also goes by Malabar tamarind or brindleberry. The pieces look like blackened, leathery scraps of dried fruit, and that dark colour is exactly what tints a good malu curry. Lime and ordinary tamarind give you a bright, fruity sourness. Goraka gives you something deeper, almost savoury, a sour note with a faint smokiness that sits beautifully against fish and coconut.
You soak it in warm water to soften it first, and both the pieces and their dark soaking water go into the pot. Beyond flavour, goraka has long doubled as a natural preservative in coastal kitchens, which is why it became the souring agent for seafood curries on the island and not for vegetable dishes. If you can't find it, tamarind paste is the everyday stand-in, only the curry comes out a shade brighter and less brooding than the original.
What It Should Taste Like
Roasted-spice warmth, creamy coconut and a deep, almost smoky sourness from the goraka. The fish stays meaty and the gravy comes out dark, savoury and clingy, never thin or watery. Every bite should land sour and rich with a gentle heat behind it, all at once.
Ingredients
This recipe makes 4 servings. Change the number and every amount below updates with it. Substitutes for hard-to-find items are in the sidebar.
The US button converts grams, millilitres and centimetres to ounces, cups and inches. Spoon measures stay exactly as they are.
Open this in the recipe converter
The Fish
- Firm white fish steakstuna, kingfish or any firm fish, in chunks600 g
- Salt½ tsp
- Ground turmeric¼ tsp
The Gravy
- Coconut oil2 tbsp
- Onionsliced1
- Garlic3 cloves
- Ginger1 tbsp
- Curry leaves1 sprig
- Pandan (rampe)5 cm piece
- Gorakasoaked in warm water 15 min; or 1 tbsp tamarind paste3 pieces
- Sri Lankan roasted curry powder2 tbsp
- Chilli powder1-2 tsp
- Thick coconut milk200 ml
- Water150 ml
Method
Follow these 7 steps. Each one explains not just what to do, but why it matters.
Ready to Start Cooking?
The screen shows one step at a time, with just the ingredients that step needs at your serving count, a timer you can tap, and your phone kept awake.
- 01
Season the Fish
Rub the fish chunks all over with the salt and turmeric, then leave them to sit while you build the gravy.
This short rest does quiet work, but it matters. The salt seasons the flesh from the outside in and firms it up slightly, so the chunks are less likely to flake apart later in the pot, while the turmeric lays down a warm golden base and helps settle any faint fishy smell. You'll see the surface go glossy and yellow within a minute or two, and that's the seasoning taking hold. Even the time it takes to chop the aromatics is enough of a rest, and it beats seasoning at the last second.

Tip: Pat the fish dry with paper towel before the salt and turmeric go on. A dry surface holds the seasoning better and stays meatier in the gravy.
- 02
Soak the Goraka
Soak the goraka in a little warm water for 15 minutes, until the pieces soften and the water turns dark and sour.
Goraka comes to you hard, leathery and almost black, and dropping it into the pot just like that gives you tough little nuggets and only a fraction of its flavour. Warm water coaxes the rind open, softening it and pulling that smoky sourness out into the liquid, which is why both the pieces and their dark soaking water go into the curry later. Watch the water shift from clear to a deep tea-brown. That colour is the tang you're after, and it's what will tint the whole gravy. If your goraka is especially hard, give it the full 15 minutes, or a touch longer.

Tip: Keep every drop of the soaking water. That dark liquid carries most of the sourness, so pouring it away is throwing away the whole point of the goraka.
- 03
Fry the Aromatics
Heat the coconut oil, then in go the curry leaves and pandan, followed by the onion, garlic and ginger. Cook until soft and golden.
The order matters here, so don't skip it. Curry leaves and pandan go in first so they can crackle and bloom in the hot oil, letting out that resinous, almost grassy perfume that is the smell of a Sri Lankan kitchen and nothing else. Then the onion, garlic and ginger soften slowly into a sweet, fragrant base. Don't rush them to a hard brown. You want them translucent, just turning golden at the edges, sweet rather than scorched, because this gentle base is what carries all the spice and sourness that's coming. Listen for a steady, lively sizzle, not a violent spit.

Tip: Bruise the pandan and tear it a little before it goes in. Roughing up the leaf lets out far more of its toasty, basmati-like aroma into the oil.
- 04
Bloom the Spices
Add the roasted curry powder and chilli powder and fry for about a minute until fragrant, and do take care not to let them burn.
This minute is where the curry finds its backbone. Frying the roasted curry powder and chilli powder briefly in the hot, oily base wakes the spices up, turning their flavour from dusty and flat to something deep, nutty and fragrant that perfumes the whole pan. The catch is that ground spice burns in seconds once the oil is hot, and burnt spice goes bitter and acrid with no way back. Keep everything moving with your spoon, and if the pan looks dry or the spices threaten to catch, splash in a spoonful of the goraka water early to cool things down.

Tip: Lower the heat a touch before the powders go in. They only need a quick bloom, and a calmer pan gives you the seconds you need to stop them scorching.
- 05
Build the Sauce
Add the goraka with its dark soaking water, along with the plain water, then simmer for 5 minutes to build a dark base.
Now the curry starts to look like itself. As the goraka water hits the spiced base, the whole pan darkens to a deep brown and the smell turns sharp and sour, exactly as it should. These five minutes of gentle simmering cook the raw edge out of the spices and let the flavours settle into one savoury, sour gravy before any delicate fish goes near it. You want it bubbling steadily, not boiling hard, just enough to reduce a little and concentrate. Taste it now and it should already be punchy, a little aggressive even. The coconut milk later will round it off.

Tip: Get all the sourness and seasoning in now, while there's no fish to break up. Adjusting the gravy later means stirring, and stirring is what flakes the fish apart.
- 06
Add the Fish
Slide the seasoned fish into the pan in a single layer, spoon the gravy over the top, and simmer gently for 8-10 minutes without stirring much, so the pieces don't break up.
Fish is fragile, and the whole craft of this step is treating it that way. Laying the chunks in a single layer means they cook evenly and stay in the gravy, and spooning the sauce over the top bastes them and seasons them right through without you ever having to stir. Resist the urge to poke and turn. A gentle simmer with the odd swirl of the pan is all the movement they need. You'll know the fish is done when it turns opaque and just begins to flake when you nudge it with a fork, usually right around the 8 to 10 minute mark, depending on how thick your chunks are.

Tip: Shake the pan or tilt it gently instead of stirring with a spoon. Moving the whole pan spreads the gravy around without tearing the fish.
- 07
Finish with Coconut
Now pour in the thick coconut milk and simmer gently for 3-4 minutes until the gravy thickens and clings, then taste for salt and sourness.
The coconut milk is the last, transforming touch, turning a sharp dark broth into a rich, glossy gravy that coats every chunk of fish. Add it at the end and keep the heat low, because thick coconut milk will split into grainy curds and oily streaks if you let it boil hard. A gentle simmer for a few minutes is all it needs to thicken and cling to the fish. This is also your moment to balance the curry. A final taste will tell you whether it wants a pinch more salt to deepen the savouriness, or whether the goraka has already carried enough sour. The gravy should look dark, satiny and just thick enough to coat the back of a spoon.

Tip: Once the coconut milk is in, never let it reach a rolling boil. Keep it at a lazy simmer and stir as little as you can, so the gravy stays smooth and the fish stays whole.
Common Mistakes to Avoid
- Stirring the fish too much and watching it fall apart. Spoon the gravy over it gently, or swirl the pan, and leave the spoon alone.
- Picking a delicate, flaky fish that disintegrates in the gravy. Choose a firm steak or chunk that holds its shape.
- Skipping the sour element. Goraka or tamarind is what makes this taste Sri Lankan, not just a coconut fish stew.
- Boiling the curry hard after the coconut milk goes in. That's how you end up with grainy curds and oily streaks.
- Burning the spices while they bloom. Ground spice scorches in seconds and turns bitter, so keep the heat moderate and the spoon moving.
- Throwing away the dark goraka soaking water. That liquid carries most of the sourness and the colour, so it's doing half the work for you.
Serving Ideas
- On steamed red rice with a green leaf mallung, for a simple, balanced plate.
- Alongside dhal and pol sambol for a full rice and curry spread.
- With bread or flatbread to mop up that dark, clingy gravy.
- Spooned over plain rice with a wedge of lime and a spoonful of lunu miris on the side.
- As the centrepiece of a seafood spread, next to a prawn curry and a crunchy sambol.
Sri Lankan Fish Curry is one of the courses in our seafood rice and curry menu and our sri lankan party menu menu, if you want the whole plate rather than one dish.
Storage and Make-Ahead
Keeps for 2 days in the fridge in a sealed container, and reheat it gently over low heat so the coconut gravy doesn't split. The flavour deepens overnight as the goraka settles in, only the fish softens with time, so it's best eaten within a day. Freezing isn't great here, the fish texture suffers when it thaws.
Two Ways to Cook It
Use tamarind paste instead of goraka, a firm white fish from the supermarket, and shop-bought roasted curry powder. Keep the chilli to 1 tsp, use tinned coconut milk, and just spoon the gravy over the fish instead of stirring. It's a forgiving curry once you stop fussing with it.
Use real goraka, soaked and added with its dark water, plus fresh-pressed coconut milk and a clay pot (a chatti) if you have one. The unglazed clay holds a gentle, even heat and adds a faint earthy note that defines southern coastal fish curry. Let it rest off the heat for ten minutes before serving so the flavours settle into each other.
Lighter and Healthier Version
Fish curry is already a lean, protein-rich dish, but most of the richness comes from the coconut milk and the frying oil. A few small swaps keep all that goraka tang and roasted spice while trimming the saturated fat, without turning it thin or watery.
Lighten the Coconut
Use light coconut milk, or thin the thick stuff with a little extra water and let the gravy reduce a touch longer so it still clings. You keep the creamy character on far less fat.
Ease off the Oil
Fry the aromatics in 1 tbsp of oil instead of 2, in a non-stick or heavy pan so nothing catches. The spices still bloom well in less fat.
Lean into the Goraka
Let the goraka and roasted spices carry the flavour instead of the coconut. A sharper, more sour gravy needs less coconut milk to taste right.
Pick a Leaner Fish
A firm white fish such as kingfish, or a lean steak, keeps the dish high in protein and lower in fat than an oily fish, while still holding together in the pot.
Frequently Asked Questions
It's called malu curry, since malu simply means fish in Sinhala. You'll also see it written as goraka fish curry, after the souring fruit at its heart, or as ceylon fish curry. They all point to the same dish of firm fish simmered in a dark, roasted-spice and coconut gravy.
Cooked It? Tell Us How It Went
Your notes on this sri lankan fish curry help the next person get it right: what you swapped, what you would do differently, where the recipe should have warned you. Tap a star if you are in a hurry, or write a few lines if you have a minute.
You Might Also Like
Sri Lankan Home Cooking Starter Pack
40 authentic Ceylon recipes made simple for foreign kitchens: spice guide, pantry checklist, substitute guide, 7-day meal plan and printable shopping lists.


