Sri Lankan Fish Curry

Sri Lankan fish curry is rich, aromatic, and packed with bold layers of spice balanced by creamy coconut milk and fresh lime. It is one of the most comforting and recognizable dishes found across Sri Lankan coastal cooking, where fresh seafood and fragrant spice blends are part of everyday life.
The curry starts with toasted mustard and fenugreek seeds before onion, garlic, ginger, chili, and tomato are slowly cooked down into a deeply flavorful base. Fresh fish is gently simmered in coconut milk until tender, allowing the sauce to become thick, fragrant, and intensely savory.
Served with rice, roti, or string hoppers, this is the kind of curry that tastes even better as the flavors continue developing.
Sri Lankan fish curry is a coconut-based curry made with firm white fish simmered in a spicy sauce flavored with curry leaves, chili, garlic, ginger, tomato, and aromatic whole spices.
Unlike heavier creamy curries, this style keeps a balance between richness and acidity. Coconut milk softens the heat while lime juice brightens the entire dish at the end.
The texture is light but full-bodied, with tender fish pieces absorbing the curry while remaining flaky and delicate.

Fish curries are deeply connected to Sri Lanka’s coastal food culture. Surrounded by the Indian Ocean, the country has relied on seafood for generations, and curries became one of the most practical and flavorful ways to cook fresh fish.
Sri Lankan curries are heavily influenced by local spice cultivation and centuries of trade routes passing through the island. Ingredients such as curry leaves, coconut milk, chili, turmeric, fenugreek, and mustard seeds form the backbone of many traditional dishes.
Each region and household has its own variation. Some versions are fiery and intense, while others lean more heavily into coconut milk for a softer, creamier finish. Despite the differences, the combination of fish, spice, coconut, and acidity remains at the heart of the dish.
Firm white fish
Onion
Tomato
Garlic
Fresh ginger
Green chili
Turmeric powder
Chili powder
Fenugreek seeds
Mustard seeds
Curry leaves
Thick coconut milk
Coconut oil
Salt
Lime juice
The curry develops flavor in stages, starting with whole spices sizzling in coconut oil to release their aroma into the base of the dish.
Onion, garlic, ginger, curry leaves, and chili are sautéed until soft and fragrant before tomato and powdered spices are added to create a thick spiced mixture. The fish is then coated gently in this base so it absorbs the flavors without breaking apart.
Coconut milk is added toward the end, allowing the sauce to become smooth and rich while keeping the curry balanced and fresh. Gentle simmering is important to keep the fish tender and flaky.
A squeeze of lime at the end lifts the curry and balances the richness perfectly.


Sri Lankan fish curry is traditionally served with steamed rice, roti, string hoppers, or coconut sambol. It also pairs beautifully with dhal curry and lightly pickled vegetables as part of a larger rice-and-curry spread.
The curry often tastes even better after resting for a few hours as the spices continue infusing into the sauce.
Store leftovers in an airtight container in the refrigerator for up to 2 days. Reheat gently over low heat to keep the fish intact and prevent the coconut milk from splitting.
For extra freshness, add another squeeze of lime just before serving.

Product We Use
to make our cooking experience better