Sri Lankan Fish Curry — Bold, Coastal & Deeply Traditional

There are few dishes that capture the essence of Sri Lankan cuisine as powerfully as a steaming bowl of fish curry (maalu hodhi). Rich with coconut milk, earthy turmeric, and the unmistakable heat of chili, this dish is a perfect expression of the island’s culinary soul — deeply rooted in history, shaped by trade, and grounded in everyday life.

Sri Lankan fish curry

🐟 A Coastal Staple with Centuries of Tradition

With the Indian Ocean lapping at its shores, Sri Lanka has long relied on fish and seafood as a daily source of protein. Historical records suggest that even ancient Sinhala kingdoms had specialized fishing communities, particularly along the west and south coasts. These communities passed down techniques for cleaning, salting, and cooking fish that remain in practice today.

Curry itself is believed to be over 2,000 years old in the region, and the Sri Lankan take on fish curry is especially vibrant due to its layered use of spices, coconut milk, and souring agents like tamarind or lime. While Indian curries typically use cream, yogurt, or ghee, Sri Lankan fish curry is distinctly lighter, spicier, and more aromatic, thanks to the use of fresh curry leaves, mustard seeds, fenugreek, and pandan leaves — ingredients native to the island’s tropical climate.

Over time, influences from Arab spice traders, South Indian Tamil cuisine, and Portuguese colonizers helped evolve the dish further. But at its core, Sri Lankan fish curry remains a local celebration of the sea, often made with freshly caught tuna, kingfish, mackerel, or reef fish.

🍲 The Many Faces of Fish Curry

Depending on the region, you’ll find many variations:

  • Red fish curry (miris maalu hodhi) – Made with generous amounts of chili and no coconut milk. Fiery and bold.
  • White fish curry (kiri maalu) – A mild, coconut milk-based curry, often served with string hoppers.
  • Jaffna fish curry – Tamarind-rich, dark, and incredibly spicy.
  • Colombo-style curry – Balanced, with turmeric, curry leaves, and coconut milk.


In the north and east, you'll often find tamarind or goraka (sour fruit) used to enhance the tang. In the south, chili and garlic dominate, making it more robust and peppery.

👩‍🍳 Why This Dish Deserves a Spot on Your Table

Sri Lankan fish curry is more than just delicious — it’s:

  • Naturally gluten-free & dairy-free
  • High in protein and healthy fats
  • Customizable with different fish or spice levels
  • Easy to make in under 30 minutes

The real magic is in the tempering (tadka): mustard seeds, curry leaves, garlic, and onions are fried in coconut oil to release their aromas before the rest of the dish is built around that base. The fish is then simmered gently to keep it tender, soaking up all that spice and richness.

🍛 What to Serve with Fish Curry

Sri Lankan fish curry is incredibly versatile and pairs well with:

  • Steamed white or red rice
  • String hoppers (idiyappam)
  • Coconut roti or paratha
  • Pittu or hoppers
  • Coconut sambol or lunu miris on the side

The flavors intensify beautifully overnight, making leftovers even better the next day.

📜 Cultural Notes: From Village Fires to City Kitchens

In traditional Sri Lankan villages, fish curry was often prepared in clay pots over open wood fires, with the head of the household or elder stirring the pot. Today, it’s equally common in urban kitchens, family restaurants, and luxury hotels — yet its preparation remains grounded in the same principles.

Even among Sri Lankans abroad, fish curry is a dish that ties people to home. The aroma of curry leaves sizzling in coconut oil is said to evoke instant nostalgia for anyone who grew up on the island.

Share this recipe


Sri Lankan fish curry

Sri Lankan fish curry
This vibrant, protein-rich dish is easy to cook and perfect with rice or roti.
No ratings yet
Prep Time 15 minutes
Cook Time 25 minutes

NUTRITION

Calories: 328kcal | Carbohydrates: 5.5g | Protein: 234g | Fat: 23.6g
Amount of servings 4 servings

Ingredients
 

  • 400 g firm white fish
  • 1 onion sliced
  • 1 tomato chopped
  • 2 cloves garlic minched
  • 1 cm ginger grated
  • 1 green chilli sliced
  • 1 tsp tumeric powder
  • 1 tsp chilli powder to taste
  • 1/2 tsp fenugreek seeds
  • 1/2 tsp mustard seeds
  • 1 sprig curry leaves
  • 150 ml coconut milk thick
  • 10 gr coconut oil
  • salt to taste
  • juice of half a lime

Instructions
 

  • Heat coconut oil in a pot. Add mustard seeds and fenugreek. Let them sizzle.
  • Add sliced onion, curry leaves, garlic, ginger, and green chili. Sauté until soft and golden.
  • Stir in turmeric, chili powder, and chopped tomato. Cook until the tomato breaks down.
  • Add the fish pieces and gently coat them in the spice mixture.
  • Pour in the coconut milk and a splash of water if needed. Add salt.
  • Simmer uncovered on low heat for 10–15 minutes, or until the fish is cooked through and the curry is thick and fragrant.
  • Finish with a squeeze of lime juice.
  • Serve hot with rice, roti, or string hoppers.
Tried this recipe?Let us know how it was!