This Fish Curry (also known as Fish Masala) is a perfect dish for anyone who enjoys a flavorful, aromatic curry. The combination of tender fish, a well-spiced masala base made from onions, tomatoes, and a range of spices, makes this curry both comforting and satisfying. Served with naan, roti, or rice, this dish is perfect for a hearty meal any day of the week.
Why You’ll Love This Recipe
Fish Curry (Fish Masala) is a deeply flavorful dish that’s easy to make and bursting with spices. The key to its delightful taste is the tender, crispy fish pieces soaked in a masala made with caramelized onions, tomatoes, and aromatic spices like cumin, coriander, and Kashmiri chili powder. The balance of tangy tomatoes, warm spices, and a touch of heat from the green chilies ensures a rich, comforting experience in every bite. It’s perfect for serving family or guests and can be enjoyed with your favorite bread or rice. Plus, it’s incredibly versatile—you can adjust the heat level and spices to suit your preference.
Ingredients
(Tip: You’ll find the full list of ingredients and measurements in the recipe card below.)
For the Marinated Fish:
-
1 tsp carom seeds (ajwain) – optional but highly recommended
-
1/2 tsp red chili powder or cayenne pepper
-
1/4 tsp turmeric powder
-
3/4 tsp kosher salt
-
1 lb firm-fleshed white fish (cod, halibut, or tilapia), patted dry and cut into 2-3″ pieces
-
1 tsp lemon juice
For the Fish Curry:
-
1/3 cup + 2 tbsp avocado oil (or other neutral oil), divided
-
2 medium (~380 g) yellow onions, finely chopped
-
7 garlic cloves, finely chopped
-
1-inch piece ginger, finely chopped
-
1 tsp coriander powder
-
1 tsp cumin powder
-
1 tsp Kashmiri chili powder (or paprika as a substitute)
-
1/2 tsp red chili powder or cayenne pepper (optional for extra heat)
-
1/2 tsp turmeric powder
-
1 1/2 tsp kosher salt
-
2 ripe (~250 g) tomatoes (Roma/plum), finely chopped
To Finish:
-
3-5 Thai or bird’s eye green chili peppers, whole or sliced vertically in half
-
1/4 tsp freshly ground black pepper
-
1-2 tbsp julienned ginger
-
3 tbsp cilantro leaves, finely chopped
-
1-2 tsp lemon juice
Directions
-
Marinate the fish:
In a bowl, combine the carom seeds, red chili powder, turmeric powder, and salt. Toss the fish pieces in the mixture, then add lemon juice and mix until evenly coated. Set the marinated fish aside. -
Prepare the masala:
Heat ⅓ cup of the oil in a large pan over medium-high heat. Add the finely chopped onions and sauté, stirring frequently, for about 18 minutes until the onions are deeply golden. Add ¼ cup of water to deglaze the pan. Then, add the garlic and ginger and sauté for another 2 minutes until fragrant. -
Add spices:
Deglaze the pan again with 2 tbsp of water, then add the coriander, cumin, Kashmiri chili powder, red chili powder (if using), turmeric powder, and salt. Stir for a minute to allow the spices to bloom. -
Cook the tomatoes:
Add the chopped tomatoes and cook until they soften, the oil separates, and the masala thickens, about 5 minutes. -
Simmer the curry:
Add 1 cup of water to the masala and bring it to a simmer. Reduce the heat to medium-low, cover the pan, and let the curry simmer while you cook the fish. -
Pan-fry the fish:
In a nonstick skillet, heat the remaining 2 tbsp of oil over medium-high heat. Once hot, add the marinated fish pieces in a single layer and pan-fry for about 4 minutes on each side, until the fish is golden and cooked through. The internal temperature should reach 145℉. Turn off the heat and set the fish aside. -
Finish the curry:
Uncover the curry and increase the heat to sauté out any excess water until the oil separates. Add ¼ to ½ cup of water, depending on the desired consistency of the curry, and let it simmer. Add the cooked fish pieces to the curry and allow them to simmer in the curry for 2-3 minutes for the flavors to meld together. -
Garnish and serve:
Top the curry with green chili peppers, freshly ground black pepper, julienned ginger, cilantro, and a squeeze of lemon juice. Serve hot with naan, roti, or rice.
Servings and Timing
-
Servings: 4
-
Prep time: 5 minutes
-
Cook time: 45 minutes
-
Total time: 50 minutes
Variations
-
Spicy Option: Add more green chilies or extra cayenne pepper if you like your curry hotter.
-
Vegetarian Option: Replace the fish with firm tofu or paneer for a vegetarian take on this curry.
-
Different Fish: You can use any firm-fleshed fish like snapper, cod, or halibut in place of tilapia for a slightly different flavor and texture.
-
Coconut Milk: For a richer, creamier curry, replace part of the water with coconut milk.
Storage/Reheating
-
Storage: Store any leftovers in an airtight container in the fridge for up to 2 days. The flavors will continue to develop overnight.
-
Freezing: You can freeze the curry (without the fish) for up to 1 month. When ready to eat, thaw in the fridge overnight and reheat on the stove. Once reheated, add the cooked fish to the curry.
-
Reheating: Reheat gently on the stove over low heat, adding a bit of water if needed to loosen the curry.
FAQs
1. Can I use frozen fish for this recipe?
Yes, you can use frozen fish. Just make sure to thaw it completely and pat it dry before marinating.
2. Can I skip the marinating step?
While marinating enhances the flavor, you can skip it if you’re short on time. The curry will still taste delicious.
3. How do I know when the fish is done cooking?
The fish is done when it’s golden on the outside and cooked through. A meat thermometer should read 145°F (63°C) when inserted into the thickest part of the fish.
4. Can I use a different type of oil?
Yes, you can use any neutral oil such as sunflower oil or canola oil instead of avocado oil.
5. How spicy is this curry?
The curry has a mild to medium spice level, but you can adjust the heat by adding more chili peppers or cayenne pepper to your taste.
6. Can I use a different type of chili powder?
Yes, you can substitute Kashmiri chili powder with regular paprika or any mild chili powder you have on hand.
7. Can I make this curry ahead of time?
Yes, this curry tastes even better the next day as the flavors have more time to develop. Just reheat gently before serving.
8. Can I make this curry without tomatoes?
Tomatoes provide acidity and richness, but if you don’t have them, you can try substituting with a bit of tamarind paste or lemon juice to provide some tang.
9. What can I serve this curry with?
This fish curry is best served with naan, roti, or basmati rice. You can also pair it with a simple salad or vegetable side dish.
10. Can I use skinless fish fillets for this recipe?
Yes, skinless fillets work perfectly well for this recipe, as long as they are firm-fleshed.
Conclusion
This Fish Curry (Fish Masala) is a delightful dish that combines rich, aromatic flavors with tender, crispy fish. The deep, comforting curry pairs wonderfully with naan or rice, making it an ideal dish for family dinners or special occasions. Whether you prefer it mildly spiced or extra hot, this recipe can be easily customized to suit your taste. It’s a satisfying meal that’s both simple to make and absolutely packed with flavor!

Fish Curry
5 Stars 4 Stars 3 Stars 2 Stars 1 Star
No reviews
- Author: Alice
- Total Time: 50 minutes
- Yield: 4 servings
- Diet: Halal
Description
Fish Curry (Fish Masala) is a flavorful, aromatic dish that combines tender fish in a well-spiced masala made from onions, tomatoes, and a blend of aromatic spices. It’s a comforting and satisfying curry, perfect when served with naan, roti, or rice.
Ingredients
1 tsp carom seeds (ajwain) – optional but recommended
1/2 tsp red chili powder or cayenne pepper
1/4 tsp turmeric powder
3/4 tsp kosher salt
1 lb firm-fleshed white fish (cod, halibut, or tilapia), cut into 2-3″ pieces
1 tsp lemon juice
For the Fish Curry:
1/3 cup + 2 tbsp avocado oil (or other neutral oil), divided
2 medium yellow onions, finely chopped
7 garlic cloves, finely chopped
1-inch piece ginger, finely chopped
1 tsp coriander powder
1 tsp cumin powder
1 tsp Kashmiri chili powder (or paprika as a substitute)
1/2 tsp red chili powder or cayenne pepper (optional for extra heat)
1/2 tsp turmeric powder
1 1/2 tsp kosher salt
2 ripe tomatoes, finely chopped
For the Finish:
3–5 Thai or bird’s eye green chili peppers, whole or sliced vertically in half
1/4 tsp freshly ground black pepper
1–2 tbsp julienned ginger
3 tbsp cilantro leaves, finely chopped
1–2 tsp lemon juice
Instructions
- Marinate the fish by mixing carom seeds, red chili powder, turmeric, and salt. Coat the fish with the mixture and add lemon juice. Let it sit while preparing the curry.
- In a large pan, heat ⅓ cup oil over medium-high heat. Sauté onions for about 18 minutes until deeply golden. Add ¼ cup water to deglaze the pan.
- Add garlic and ginger, cooking for another 2 minutes. Add spices (coriander, cumin, Kashmiri chili powder, red chili powder, turmeric, salt) and stir for 1 minute.
- Cook tomatoes for 5 minutes until softened and oil separates from the masala.
- Add 1 cup of water to the masala and bring to a simmer. Cover the pan and simmer while cooking the fish.
- Pan-fry the marinated fish in 2 tbsp oil over medium-high heat, cooking 4 minutes per side until golden and cooked through (internal temperature of 145°F).
- Add cooked fish to the curry and let it simmer for 2-3 minutes to meld the flavors.
- Finish by adding green chili peppers, freshly ground black pepper, julienned ginger, cilantro, and lemon juice. Serve hot with naan, roti, or rice.
Notes
- For a richer curry, substitute some water with coconut milk.
- Adjust heat level by adding more or less cayenne pepper or green chilies.
- Marinating the fish enhances the flavor, but it’s optional if you’re short on time.
- To freeze, store the curry (without fish) for up to 1 month. Add the cooked fish once reheated.
- Serve with a side salad or vegetable dish for a complete meal.
- Prep Time: 5 minutes
- Cook Time: 45 minutes
- Category: Main Course
- Method: Stovetop
- Cuisine: Indian
Nutrition
- Serving Size: 1/4 recipe
- Calories: 360
- Sugar: 6g
- Sodium: 780mg
- Fat: 20g
- Saturated Fat: 3g
- Unsaturated Fat: 15g
- Trans Fat: 0g
- Carbohydrates: 8g
- Fiber: 2g
- Protein: 40g
- Cholesterol: 90mg