Spicy Sri Lankan Fish Curry: A Traditional Recipe Worth Mastering
Jun 19, 2026

The first time I made a proper Sri Lankan fish curry, my kitchen smelled like a spice market for two days. I'm not exaggerating. Roasted curry powder has a way of clinging to your hair, your shirt, your curtains. But when I finally sat down with a plate of rice and that deep, tangy, coconut-rich gravy spooned over the top, I forgot all about the laundry. This is food that earns its mess.
If you've ever had Sri Lankan home cooking, you know it hits differently from the curries you might be used to. There's a sourness from goraka (a dried fruit that's hard to find but worth hunting for), a heat that builds slowly, and the kind of layered spice that comes from toasting everything dark before it ever touches a pan of oil.
What makes Sri Lankan fish curry its own thing
Sri Lankan cooking leans heavily on coconut, tamarind or goraka for sourness, and freshly roasted spices. The island's curries split roughly into two camps: the milder white curries and the fiery red ones loaded with chili. Fish curry usually sits firmly in the red, spicy camp, and that's exactly where we're headed.
I'll mention here that if you fall in love with this style, you'll probably want to try a sri lankan chicken curry next. The flavor base is similar — that same roasted curry powder and coconut milk backbone — but chicken takes longer to cook and soaks up the gravy in a way that's deeply satisfying. More on that later.
The ingredients you'll need
Use a firm, meaty fish that won't fall apart. Tuna is the classic choice in Sri Lanka, but kingfish, mackerel, or even a firm white fish like halibut work well.
- 700g firm fish, cut into thick chunks
- 2 tablespoons Sri Lankan roasted curry powder (the dark, toasted kind)
- 1 teaspoon ground turmeric
- 1 to 2 tablespoons red chili powder (adjust to your nerve)
- 1 teaspoon ground black pepper
- 1 large onion, finely sliced
- 4 cloves garlic, minced
- A thumb of ginger, grated
- 2 green chilies, slit lengthways
- 1 sprig curry leaves
- A small stick of cinnamon
- 3 pieces of goraka (or 2 tablespoons tamarind pulp if you can't get goraka)
- 400ml thick coconut milk
- 200ml thin coconut milk or water
- 2 tablespoons coconut oil
- Salt to taste
A quick word on the curry powder. The standard yellow stuff from the supermarket isn't the same. Sri Lankan roasted curry powder is dry-roasted until almost smoky, which gives it that distinctive earthy depth. You can find it at South Asian grocers or roast your own blend of coriander, cumin, fennel and chilies at home. It's worth the effort.

Let's cook it
Start by soaking the goraka in a little warm water for ten minutes to soften it. If you're using tamarind, mix it with a few tablespoons of warm water and squeeze out the pulp.
Season your fish chunks with a pinch of turmeric and salt and set them aside while you build the base. This little step keeps the fish from tasting flat.
Heat the coconut oil in a wide, heavy pan over medium heat. Toss in the cinnamon stick and curry leaves — they'll crackle and perfume the oil within seconds. Add the sliced onion and cook until it goes soft and golden at the edges. Don't rush this. Browned onions are the difference between a good curry and a great one.
Now in go the garlic, ginger and green chilies. Stir for a minute until the raw smell lifts. Lower the heat and add the curry powder, chili powder, turmeric and black pepper. This is the moment you have to pay attention. Spices burn fast, so keep them moving and let them toast for maybe thirty seconds until everything smells fragrant and a shade darker.
The trick I learned from a friend's amma: pour in a splash of the thin coconut milk the second the spices look like they might catch. It deglazes the pan and saves the whole dish.
Add the rest of the thin coconut milk, the goraka along with its soaking water, and a good pinch of salt. Let it simmer gently for about five minutes so the flavors marry.
Slide the fish pieces in carefully, in a single layer if you can. Don't stir aggressively or they'll break. Just spoon some of the gravy over them. Cover and let it cook for around eight minutes.

Pour in the thick coconut milk last. This is important — if you boil thick coconut milk hard, it can split and turn grainy. Keep the heat low, swirl the pan gently, and let it warm through for another three or four minutes until the gravy looks rich and glossy. Taste and adjust the salt and sourness.
Getting the balance right
A good Sri Lankan fish curry walks a line between heat, sour and the sweetness of coconut. If it tastes too sharp, a touch more coconut milk rounds it out. Too flat? A little more goraka or a squeeze of lime. The gravy should coat the back of a spoon, not be watery.
Let it rest for ten minutes off the heat before serving. Like most curries, it actually tastes better the next day once everything has had time to settle.
What to serve it with
Steamed red rice is the traditional partner, but plain white rice is perfectly fine. I love it with a side of coconut sambol — that fierce little condiment of grated coconut, chili and lime — and maybe some stir-fried green beans. The contrast keeps every bite interesting.
And if you're cooking for a crowd, this is where that sri lankan chicken curry idea comes back. Make both, set them in the middle of the table with rice and a few sides, and you've got a proper Sri Lankan spread. The chicken version uses the same roasted spices but benefits from a longer simmer and often a finishing splash of roasted curry powder right at the end for extra punch.
Don't worry if your first attempt isn't perfect. Mine wasn't. The fish broke up, I went heavy on the chili, and I forgot the goraka entirely. But I learned something each time, and now this curry is one of those dishes I can throw together without thinking. Give it a few tries. Your kitchen might smell like a spice market for a couple of days, but trust me, that's a feature, not a bug.
Get more recipes like this
Weekly recipe inspiration delivered to your inbox. No spam, ever.
Comments
Sign in to leave a comment.
Sign In
English
Sinhala