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.
Share Recipe
No ratings yet
Print Pin Rate
Course: Main Course
Cuisine: Sri Lankan
Keyword: Fish
Prep Time: 15 minutes
Cook Time: 25 minutes
Servings: 4 servings
Calories: 328kcal

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
Start Cooking

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.

Notes

💡 Notes:
  • Use freshly ground spices for a richer flavor.
  • Adjust chili levels to your heat preference.
  • Avoid stirring the fish too much to prevent breaking.

🧊 Storage:
Keep in an airtight container in the fridge for up to 2 days. Flavors deepen over time.

Nutrition

Calories: 328kcal | Carbohydrates: 5.5g | Protein: 234g | Fat: 23.6g