Maalu Hodhi – Sri Lankan Fish Curry Recipe

 Sri Lankan Food   Mains 

Maalu Hodhi – Sri Lankan Fish Curry Recipe

Rich, aromatic Sri Lankan fish curry with coconut milk and lime.

Serves

4

Calories

328 kcal

Cuisine

Sri Lankan

☆☆☆☆☆ No ratings yet. Be the first to rate it

Sri Lankan fish curry

On this page: What is it · History · What you need · Step by step · Serving & storage · Recipe card

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.

What Is It?

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.

A Little History

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. For the other dishes in a rice and curry spread, see our guide to Sri Lankan curries, and the Sri Lanka travel and food guide for where to eat them.

At a glance

Serves

4

Calories

328 kcal

Protein

see recipe card

Course

Main Course

Why it works

01 Whole spices sizzled in coconut oil first

02 Lime at the end balances the richness

03 Tastes even better after resting

Sri Lankan fish curry

Cooking this later?

Save it to your Pinterest board so it’s there when you need it.

What You Need

Exact amounts are in the recipe card

Equipment tip: For curry prep, the chef’s knife we recommend handles aromatics and fish, while this stainless cookware set suits simmering the curry. Serve with rice made in our rice cooker pick.

For the Curry

  • 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
Sri Lankan fish curry ingredients

Step-by-Step Instructions

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.

1. Toast the whole spices

Heat the coconut oil in a large pot over medium heat.

Add the mustard seeds and fenugreek seeds. Let them sizzle until fragrant.

2. Build the base

Add the sliced onion, curry leaves, garlic, ginger, and green chili. Sauté until soft and lightly golden.

Stir in the turmeric powder, chili powder, and chopped tomato. Cook until the tomato softens and breaks down into the mixture.

Pouring coconut milk over the fish curry

3. Add the fish and coconut milk

Add the fish pieces and gently coat them in the spice mixture.

Pour in the coconut milk and add a splash of water if needed. Season with salt.

Simmer uncovered over low heat for 10–15 minutes until the fish is fully cooked and the curry thickens slightly.

Tip: Avoid stirring the fish too much to prevent breaking.

4. Finish with lime

Finish with fresh lime juice before serving.

Serving & Storage

Serving

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.

Storing Leftovers

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.

Fish curryup to 2 days

For extra freshness, add another squeeze of lime just before serving.

Sri Lankan Fis Curry

Sri Lankan fish curry

This vibrant, protein-rich dish is easy to cook and perfect with rice or roti.
Course Main Course
Cuisine Sri Lankan
Prep Time 15 minutes
Cook Time 25 minutes
Servings 4 servings
Calories 328

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
💡 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.

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.
Calories: 328kcal | Carbohydrates: 5.5g | Protein: 234g | Fat: 23.6g

Made this curry?

Rate it with the stars in the recipe card and tell us how it went in the comments: what you swapped, what you added, how spicy you made it.

Products we use

Our kitchen kit for this recipe

Visit the shop

Aroma Digital Rice Cooker & Food Steamer

Aroma Digital Rice Cooker & Food Steamer

View in shop
Victorinox Fibrox Pro Chef’s Knife (20 cm)

Victorinox Fibrox Pro Chef’s Knife (20 cm)

View in shop
T-fal Stainless Steel Cookware Set (11-piece)

T-fal Stainless Steel Cookware Set (11-piece)

View in shop
Wooden Spoons

Wooden Spoons

View in shop

More to cook

More recipes from our kitchen

All Sri Lankan recipes

Sri Lankan Aubergine Curry in a bowl

Sri Lanka

Wambatu Moju (Eggplant Curry)

Coconut Roti

Sri Lanka

Pol Roti (Coconut Roti)

Sri Lankan String Hoppers

Sri Lanka

String Hoppers

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating