There is something truly irresistible about the rich, vibrant flavors that a Sri Lankan Fish Curry Recipe brings to your dinner table. This dish effortlessly combines the warmth of exotic spices, the creaminess of coconut milk, and the tender, flaky texture of fresh swordfish or tuna. Every spoonful tells a story of tradition and sunshine, making it not just a meal, but an experience you will want to share with everyone you love. Whether it’s a simple weeknight dinner or a special occasion, this curry promises to brighten your meal with its bold, comforting taste.
Ingredients You’ll Need

This Sri Lankan Fish Curry Recipe uses a handful of simple yet powerful ingredients. Each element plays a vital role—whether it’s the earthy turmeric, the fiery heat from chili powders, or the fragrant curry leaves, every bite is layered with authentic flavor and a beautiful balance of textures and colors.
- 450 – 500 g swordfish or tuna: Choose firm, fresh fish that holds well to absorb all the spices without falling apart.
- 1 tsp sea salt: Enhances all other flavors and balances the heat from the spices.
- ¼ tsp turmeric powder: Adds a gentle warmth and vibrant golden hue to the curry.
- 1 tsp Sri Lankan curry powder: The heart of the dish, giving it that unmistakable Sri Lankan flair.
- ½ tsp ground black pepper: Adds a subtle heat and depth—adjust based on your spice preference.
- ½ tsp cayenne pepper (or Kashmiri chili powder): Injects a lively kick and beautiful red color; reduce or skip for a milder curry.
- ½ medium onion (sliced or diced): Builds sweetness and softness in the curry base.
- 2 – 3 cloves garlic (minced): Provides aromatic essence that infuses every bite.
- 1 inch piece of ginger (minced): Adds a zesty, fresh layer of flavor.
- 10 curry leaves: A classic ingredient that imparts that unmistakable South Asian aroma.
- 2 green chilies (or jalapeno, split lengthwise): Offers fresh heat and a slight tang.
- ½ tsp turmeric powder (additional): Ensures a bright, consistent color and earthy undertone.
- 2 tsp Sri Lankan curry powder (additional): Doubles down on the authentic spice blend for richness.
- ½ tsp ground cardamom: Introduces a warm, sweet-spicy note to complement the heat.
- ½ tsp ground cumin: Gives a smoky, nutty background flavor.
- ¾ tbsp ground black pepper (freshly ground preferred): Intensifies the spice punch.
- ¾ tbsp cayenne pepper (or Kashmiri chili powder): For layered heat and color that stays vibrant.
- 1 stick of cinnamon (about 3 inches): Adds warmth and subtle sweetness that rounds out the flavors.
- 1 tsp tamarind concentrate: Delivers a tangy, slightly sour contrast that brightens the curry.
- 2 cups coconut milk (preferably full fat): Creates the creamy, luscious sauce that ties everything together.
- Salt to taste: Adjusts the seasoning perfectly at the end.
How to Make Sri Lankan Fish Curry Recipe
Step 1: Marinating the Fish
Start by cutting your fish into chunky pieces, about 2 to 3 inches. Don’t worry about exact cuts—a rustic look only adds charm! Toss the fish with sea salt, turmeric, Sri Lankan curry powder, black pepper, and cayenne pepper. This quick 10-to-20-minute marinade envelopes the fish in a vibrant spice coat that begins building a flavorful foundation right away.
Step 2: Preparing the Curry Base
Heat 1 to 2 tablespoons of oil in a heavy-bottomed pot over medium heat. Once shimmering, add the onions and cook them slowly until they soften and start to turn translucent. This sweetness is key for a balanced curry. Then, add minced garlic and ginger, letting their aromas fill your kitchen as they cook until the onions are wonderfully tender.
Step 3: Blooming the Spices
In goes the curry leaves, green chilies, turmeric, a generous helping of the Sri Lankan curry powder, cardamom, cumin, freshly ground black pepper, cayenne, and the cinnamon stick. Sauté this mixture for about 30 to 60 seconds until those fragrant spices burst open with flavor, but watch closely to prevent any burning—it’s this step that makes the curry sing.
Step 4: Combining Fish and Tamarind
Gently stir in the marinated fish pieces along with the tangy tamarind concentrate. It’s important to be gentle here to keep the fish intact while ensuring each piece gets coated with the luscious spice blend.
Step 5: Adding Coconut Milk and Simmering
Pour in the rich coconut milk, swirling it through the pot to marry the spices and fish into a creamy sauce. Turn the heat to medium-high and bring the curry to a gentle boil. Then reduce the heat to maintain a simmer, cooking for about 20 minutes uncovered. This slow simmer cooks the fish perfectly and allows the flavors to deepen beautifully.
Step 6: Finishing Touches
Give your curry a taste and adjust salt or tamarind according to your liking. If possible, let the curry rest for 10 to 20 minutes before serving—this step really helps the spices mellow and the flavors marry. Trust me, leftovers are even better the next day, making it a wonderful dish to enjoy over time.
How to Serve Sri Lankan Fish Curry Recipe

Garnishes
A sprinkle of fresh cilantro or finely sliced spring onions adds a pop of color and fresh brightness that balances the curry’s rich and spicy profile. For an extra touch, a few curry leaves on top can visually echo the authentic flavors inside.
Side Dishes
This curry shines best served alongside fluffy steamed rice or warm roti bread to soak up every last drop of its luxurious sauce. Pairing it with simple vegetable sides or a cooling cucumber salad also helps to balance the heat and creates a harmonious meal.
Creative Ways to Present
For a delightful twist, serve your Sri Lankan Fish Curry Recipe in a rustic bowl accompanied by banana leaf-lined plates—it instantly elevates the dining experience and adds traditional charm. You could also offer small bowls of accompaniments like mango chutney or toasted coconut to invite guests to customize their flavor journey.
Make Ahead and Storage
Storing Leftovers
Leftover Sri Lankan Fish Curry Recipe keeps beautifully in the refrigerator for up to 3 days. Store it in an airtight container to preserve the bold spices and creamy texture, and you’ll find the flavors even more melded and delicious with time.
Freezing
If you want to store the curry for longer, freezing is a great option. Use a freezer-safe container and leave some space for expansion. When thawed, the curry retains most of its taste and richness, making for a comforting future meal.
Reheating
Reheat gently on the stove over low to medium heat, stirring occasionally, until warmed through. Avoid high heat to keep the fish tender and prevent the coconut milk from separating. Adding a splash of water or coconut milk during reheating can help refresh the sauce.
FAQs
Can I use other types of fish in the Sri Lankan Fish Curry Recipe?
Absolutely! While swordfish and tuna work wonderfully due to their firm texture, you can also use salmon, cod, or any firm white fish. Just adjust cooking times accordingly to keep the fish tender.
Is this curry very spicy?
The curry has a pleasant heat with warming spices, but you can easily tailor it by reducing or omitting the cayenne or chili powders for a milder version that still packs plenty of flavor.
What if I don’t have tamarind concentrate?
If tamarind concentrate isn’t available, regular tamarind paste or even a splash of lemon juice can provide the necessary tang. Adjust to taste so the curry maintains its characteristic balance of sourness.
Can I make this recipe vegan or vegetarian?
While this Sri Lankan Fish Curry Recipe centers on fish, you can swap it out for firm tofu or vegetables like eggplant and jackfruit for a vegetarian or vegan alternative that still absorbs the spiced coconut sauce beautifully.
Do I need to use fresh curry leaves?
Fresh curry leaves offer the best flavor, but if you can’t find them, dried curry leaves or a pinch of curry leaf powder can be used as substitutes, though the aroma won’t be quite as vibrant.
Final Thoughts
Taking the time to craft this Sri Lankan Fish Curry Recipe is an adventure in flavor that rewards you with a dish bursting with warmth, spice, and soulful comfort. Whether you are introducing yourself to Sri Lankan cuisine or revisiting a beloved classic, this curry is sure to become a staple in your kitchen. So gather your ingredients, light that stove, and dive into a truly unforgettable meal—your taste buds will thank you for it!
Print
Sri Lankan Fish Curry Recipe
- Total Time: 50 minutes
- Yield: 4 servings
Description
This Sri Lankan Fish Curry features tender pieces of swordfish or tuna cooked in a rich and aromatic blend of spices, coconut milk, tamarind, and fresh curry leaves. The curry boasts a perfect balance of heat and tanginess, simmered slowly to allow the flavors to fully develop, making it an authentic and comforting dish perfect to serve with rice or roti.
Ingredients
Fish Marinade
- 450 – 500 g swordfish or tuna, cut into 2–3 inch pieces
- 1 tsp sea salt
- ¼ tsp turmeric powder
- 1 tsp Sri Lankan curry powder (roasted or unroasted)
- ½ tsp ground black pepper (adjust if you prefer less heat)
- ½ tsp cayenne pepper (or Kashmiri chili powder, optional for less heat)
Curry Base
- ½ medium onion, sliced or diced
- 2 – 3 cloves garlic, minced
- 1 inch piece of ginger, minced
- 10 curry leaves
- 2 green chilies or jalapeno, split lengthwise
- ½ tsp turmeric powder
- 2 tsp Sri Lankan curry powder
- ½ tsp ground cardamom
- ½ tsp ground cumin
- ¾ tbsp ground black pepper (freshly ground preferred)
- ¾ tbsp cayenne pepper (or Kashmiri chili powder)
- 1 stick cinnamon (about 3 inches)
- 1 tsp tamarind concentrate (more if using regular tamarind paste)
- 2 cups coconut milk (preferably full fat)
- Salt to taste
- 1–2 tbsp vegetable oil, canola oil, or coconut oil for cooking
Instructions
- Marinate the Fish: Cut the swordfish or tuna into 2-3 inch pieces. In a bowl, combine the fish with 1 tsp sea salt, ¼ tsp turmeric powder, 1 tsp Sri Lankan curry powder, ½ tsp black pepper, and ½ tsp cayenne or Kashmiri chili powder. Mix well to coat the fish evenly and let it marinate for 10-20 minutes to absorb the flavors.
- Prepare the Curry Base: Heat 1-2 tablespoons of your chosen oil in a medium to large pot over medium heat. Add the sliced onion and sauté until it begins to soften. Then add the minced garlic and ginger, continuing to sauté until the onion fully softens and releases its aroma.
- Add the Spices and Aromatics: Into the pot, add the curry leaves, green chilies, turmeric powder, Sri Lankan curry powder, cardamom, cumin, freshly ground black pepper, cayenne pepper, and the cinnamon stick. Stir and sauté for 30-60 seconds until the spices are fragrant, making sure not to burn them.
- Add Fish and Tamarind: Gently add the marinated fish pieces and tamarind concentrate to the pot. Carefully mix so the fish is fully coated with the spice blend without breaking the pieces.
- Incorporate Coconut Milk and Simmer: Pour in the 2 cups of full-fat coconut milk and stir to combine everything. Bring the curry to a boil over medium-high heat, then reduce to a gentle simmer. Cook uncovered for about 20 minutes, allowing the fish to cook through and the flavors to meld.
- Season and Rest: Taste the curry and adjust salt and tamarind levels according to your preference. After cooking, let the curry sit for at least 10-20 minutes off the heat to deepen the flavors.
- Serve: Serve the flavorful Sri Lankan fish curry hot with steamed rice, roti, or alongside other curries and side dishes for a complete meal experience.
Notes
- Use fresh swordfish or tuna chunks for best flavor and texture.
- You can adjust the level of heat by reducing or omitting cayenne or green chilies.
- Full-fat coconut milk is recommended for rich, creamy texture.
- Allowing the curry to rest after cooking improves flavor absorption and taste.
- Leftovers taste even better the next day.
- If tamarind concentrate is unavailable, substitute with tamarind paste, but increase quantity accordingly.
- Prep Time: 15 minutes
- Cook Time: 35 minutes
- Category: Main Course
- Method: Stovetop
- Cuisine: Sri Lankan