Sri Lankan Fish Curry, or Malu mirisata, is a spicy curry with warm spices, tangy tamarind, and tender fish. This simple yet flavorful curry can be made with other firm fish varieties and souring agents like goraka or tomatoes. You’ll love this spicy Sri Lankan recipe that’s ready in less than 30 minutes.

Growing up in Sri Lanka – an island nation means I ate a lot of fish curries. It helps since one of our main protein sources is fish and it’s plenty available.
Lunch often meant rice and fish curry, dinner paired with idiyappam, roti, or pittu, and for breakfast, nothing beats leftover fish curry with toast and eggs—pure comfort!
In Sri Lanka, we cook fish curry in two main ways:
• “Mirisata” – A spicy, broth-like curry with lots of red chili and spices that will make your sinuses happy.
• “Kirata” – A mild, creamy curry cooked with plenty of coconut milk.
The recipe I’m sharing today is a classic we often made back home—the spicy version of Sri Lankan fish curry. I’ve added a touch of coconut milk to balance the heat, but you can skip it and add more red chili if you prefer a hotter, more traditional curry.
Don’t be intimidated by the ingredient list—this recipe is actually very simple to make. Plus, since fish cooks so quickly, you can have this delicious curry ready in under 30 minutes!
Have your rice, dal, and poppadams ready for an authentic Sri Lankan rice and curry!
Ingredients and Notes

*Scroll down for the recipe card with a full ingredient list and measurements.
- Kingfish
- Spices: Fenugreek Seeds, Chili Powder, Black Pepper, Turmeric Powder, Sri Lankan Curry Powder, Cumin Powder, and Coriander Powder
- Aromatics: Curry Leaves, Pandan leaf, Onion, Garlic, Green Chilies
- Others: Coconut Oil, Tamarind Concentrate, Water, Coconut Milk, Salt
What Kind of Fish to Use
I used Kingfish, also known as Spanish mackerel, Seer fish, or “Thora” in Sinhalese. It’s a bone-in, firm fish that holds up well in curry. If you prefer boneless fish, feel free to use your favorite firm variety. Here are a few great options:
• Yellowfin Tuna (Kelawalla)
• Skipjack Tuna (Balaya)
• Sailfish (Thalapath)
• Haddock
• Swordfish
Souring Agents
In Sri Lanka, we use three main souring agents for curries—tomatoes, tamarind, and goraka (garcinia).


I use tamarind concentrate in my fish curry, about 1.5 tbsp. Keep in mind that ready-made concentrates vary in taste, so start small and add more as needed. If you have a block of tamarind, take a golf ball-sized piece, mix it with ¼ cup warm water, and strain to make your own concentrate.

At my mom’s house, we always used goraka, a small dried fruit known as Garcinia. The curry we made with goraka is brothy with intense heat. With goraka controlling the sourness can be tricky—the longer it sits, the more sour the curry gets. Recently, I found goraka paste at a local Sri Lankan store, and it’s been a game-changer! If you’re using the paste, start with ½ tsp and adjust to your taste.
As for tomatoes, use two large tomatoes, chopped. Cook them down with onions and spices until they’re mushy. We don’t want large tomato pieces in the curry.
How to Make Sri Lankan Spicy Fish Curry
*Scroll down for the printable recipe card for a full list of ingredients and instructions.
Prepare the Fish: Rinse the kingfish steaks and pat them dry. Remove any bones that are jutting out.

Start the Curry Base: Heat coconut oil in a wide pan over medium heat. Add the fenugreek seeds, curry leaves, and pandan leaf. Sauté for about 2 minutes until fragrant.


Add Aromatics and Spices: Stir in the sliced red onions, garlic and green chillies. Sauté until the onions are soft.
Toss in the chili powder, black pepper, curry powder, cumin powder, turmeric, and coriander powder. Sauté for about a minute to release the aroma of the spices.

Simmer the Curry: Pour in water, add salt and tamarind concentrate, and bring the curry to a boil.

Cook the Fish: Gently place the fish steaks in the pan and spoon some curry over them. Cover and cook on medium heat for 5 minutes. You can flip the fish if you prefer, but be careful not to break it.

Finish with Coconut Milk: Spoon more curry over the fish and cook for another 5 minutes until fully cooked. Finally, add the coconut milk and simmer for 2 to 3 minutes.

Adjust and Serve: Taste the curry and adjust the salt or tamarind if needed. Serve hot with rice and enjoy!
Storage
Store leftover fish curry in an airtight container in the refrigerator for up to 2-3 days. To reheat, warm gently on the stove over low heat, adding a splash of water or coconut milk to maintain the curry’s creamy texture.
How to Serve Sri Lankan Fish Curry
Sri Lankan fish curry is a key part of a traditional rice and curry meal. Serve it with white rice, roti (parotta), naan, or even a slice of crusty bread. Pair it with some dal and a few Sri Lankan vegetable curries for a complete and satisfying meal!

More Sri Lankan Recipes You’ll Love:
★Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps us to thrive and continue providing free recipes.
Recipe

Sri Lankan Fish Curry
Ingredients
- 1 pound kingfish
- 2 tbsp coconut oil
- 1 sprig of curry leaves
- 1 stick pandan leaf
- 1 tsp fenugreek seeds
- 1 red onion sliced
- 4 garlic cloves sliced
- 2 green chillies
- 1 tbsp chilli powder more if needed
- ½ tsp black pepper freshly ground
- ½ tsp turmeric powder
- 1 tbsp Sri Lankan curry powder
- 1 tbsp coriander powder
- 1 tsp cumin powder
- 1½ tbsp tamarind concentrate*
- 1 tsp salt
- 1 ¼ cup water
- ¼ cup coconut milk canned
Instructions
- Rinse the kingfish steaks and pat them dry.
- Heat coconut oil in a wide pan over medium heat. Add the fenugreek seeds, curry leaves, and pandan leaf. Sauté for about 2 minutes until fragrant.
- Stir in the sliced red onions, garlic and green chillies. Sauté until the onions are soft.
- Toss in the chili powder, black pepper, curry powder, cumin powder, turmeric, and coriander powder. Sauté for about a minute to release the aroma of the spices.
- Pour in water, add salt and tamarind concentrate, and bring the curry to a boil.
- Gently place the fish steaks in the pan and spoon some curry over them. Cover and cook over medium heat for 5 minutes. You can flip the fish if you prefer, but be careful not to break it.
- Spoon more curry over the fish and cook for another 5 minutes until fully cooked. Finally, add the coconut milk and simmer for 2 to 3 minutes.
- Taste the curry and adjust the salt or tamarind if needed.
Notes
- Tamarind concentrates and pastes can vary depending on the brand, so it’s best to start with 1 tablespoon and adjust according to your taste.
- If you’re using goraka paste, start with 1/2 teaspoon and adjust as needed. You can also use a dried goraka piece, but keep in mind that it may make the curry a bit more watery.
- If using tomatoes, use 2 tomatoes chopped. Cook them down with spices before adding water.
- You can skip adding coconut milk for a spicier curry.
- Leftovers can be kept in the fridge in an airtight container. Reheat them with a splash of water or coconut milk.
This post was originally published on 8th October 2015.
The post Sri Lankan Fish Curry appeared first on Love And Other Spices.