Indian Fish Curry is a bold, warming dish featuring tender fish simmered in a rich, spiced tomato-coconut or onion-based gravy. Common along India’s coastal regions—from Kerala to Goa to Bengal—each version has its own personality, but all share a fragrant base of spices, garlic, ginger, and chilies.
This version is inspired by South Indian-style fish curry, known for its balance of heat, tanginess, and creaminess. Perfect with steamed basmati rice or soft chapatis, it’s a flavorful meal that comes together in under 45 minutes using everyday ingredients.
Ingredients Overview
Let’s look at what makes this curry so aromatic and satisfying.
Firm White Fish
-
Use boneless fillets of cod, halibut, tilapia, snapper, or catfish.
-
Choose firm fish that won’t fall apart in the curry.
-
Cut into 2-inch pieces for even cooking.
Tip: Pat the fish dry and marinate lightly with turmeric and salt to enhance flavor and reduce fishiness.
Onion, Garlic & Ginger
The aromatic trio forms the flavorful backbone of the curry.
-
Onion: Finely chopped and sautéed until golden.
-
Garlic & Ginger: Freshly minced or grated adds pungency and warmth.
Tomatoes
Fresh or canned tomatoes create the base of the curry gravy.
-
Cooked down until jammy and rich.
-
You can also use tomato puree for a smoother texture.
Coconut Milk (Optional)
Adds creaminess and balances the spices, especially in Kerala-style versions.
-
Use full-fat canned coconut milk.
-
Can be skipped for a more tangy, tomato-forward curry.
Spices
The soul of Indian fish curry lies in its carefully layered spice mix.
-
Turmeric: For color and earthy depth.
-
Coriander powder: Bright and citrusy.
-
Cumin: Adds warmth.
-
Red chili powder: For heat (adjust to taste).
-
Garam masala: Sprinkled at the end for aroma.
-
Mustard seeds & curry leaves (optional): Used in South Indian-style tempering.
Tamarind or Lemon Juice
Adds a subtle sourness that balances the richness of the coconut and fish.
-
Tamarind paste is traditional but fresh lemon or lime juice works too.
Fresh Cilantro
Used as a garnish for freshness and color.
Step-by-Step Instructions
1. Prep the Fish
Cut 1½ lbs firm white fish into chunks.
Toss with:
-
½ tsp turmeric
-
½ tsp salt
Set aside while you prepare the curry.
2. Sauté Aromatics
Heat 2 tbsp oil (coconut or vegetable) in a deep skillet or kadai over medium heat.
Add (optional for South Indian flavor):
-
1 tsp mustard seeds
-
8–10 fresh curry leaves
Once they sputter, add:
-
1 large onion, finely chopped
Sauté for 6–8 minutes until golden brown.
Stir in:
-
1 tbsp minced garlic
-
1 tbsp minced ginger
Cook 1–2 minutes until fragrant.
3. Add Tomatoes & Spices
Add:
-
2 medium tomatoes, chopped (or ¾ cup canned crushed tomatoes)
Cook until soft and pulpy—about 5–7 minutes.
Stir in:
-
1 tsp ground coriander
-
½ tsp cumin
-
½ tsp chili powder (or to taste)
-
½ tsp turmeric
-
Salt to taste
Cook 2–3 minutes until the oil begins to separate from the masala.
4. Pour in Liquid
Add:
-
½–¾ cup water or thin coconut milk (for a lighter curry)
-
Optional: ½ cup thick coconut milk (for richness)
Bring to a simmer. Taste and adjust salt or spice.
5. Add Fish
Gently slide in the marinated fish pieces.
Cover and simmer over low heat for 8–10 minutes, or until the fish is just cooked and flakes easily.
Do not stir too much—the fish can break apart.
Add:
-
1 tsp lemon juice or 1 tsp tamarind paste (dissolved in warm water)
Simmer 2 more minutes.
6. Finish
Sprinkle with:
-
½ tsp garam masala
-
Handful of chopped fresh cilantro
Serve hot with rice, naan, or roti.
Tips, Variations & Substitutions

Expert Tips
-
Use fresh fish or properly thawed frozen fillets.
-
Avoid stirring the fish too much—tilting the pan is better for mixing.
-
Let the curry rest for 10–15 minutes before serving for deeper flavor.
Regional Variations
-
Kerala Meen Curry: Includes coconut milk, curry leaves, and uses tamarind.
-
Goan Fish Curry: Uses kokum or vinegar and coconut, with a slight sweetness.
-
Bengali Maacher Jhol: More tomato and mustard oil-based, often thinner and tangy.
Substitutions
-
Coconut milk: Use cashew cream or dairy-free milk if needed.
-
Tamarind paste: Sub with lemon or lime juice.
-
Garam masala: Optional, but adds depth—can sub with curry powder in a pinch.
-
Fish: Try shrimp, prawns, or even tofu for a vegetarian version.
Serving Ideas & Occasions
This curry pairs beautifully with:
-
Steamed basmati rice
-
Jeera rice (cumin rice)
-
Chapati or naan
-
A side of cucumber raita
-
Pickled onions or lemon wedges
Perfect for:
-
Weeknight dinners
-
Special family meals
-
Entertaining guests with an Indian feast
Nutritional & Health Notes
Indian fish curry is:
-
High in protein
-
Gluten-free
-
Can be made low-carb/keto by serving with cauliflower rice
Estimated (per serving with coconut milk and rice):
-
~400–500 calories
-
~30g protein
-
~20g fat
-
~20–30g carbs
To lighten it:
-
Use lean fish and reduce oil
-
Skip the coconut milk or use light coconut milk
-
Serve with vegetables or cauliflower rice
FAQs
Q1: What kind of fish is best for Indian fish curry?
A1: Firm white fish like cod, halibut, tilapia, or snapper work best—they hold up in the curry without falling apart.
Q2: Can I use frozen fish?
A2: Yes, but thaw it completely and pat dry before marinating or adding to the curry.
Q3: Is fish curry spicy?
A3: It can be! You can control the heat by adjusting the amount of chili powder or using milder peppers.
Q4: How long can I store fish curry?
A4: Store in the fridge for up to 2 days. Reheat gently over low heat to avoid overcooking the fish.
Q5: Can I add vegetables?
A5: Yes—okra, spinach, or bell peppers can be added. Cook them before adding the fish to avoid overcooking.
Q6: Can I make it without coconut milk?
A6: Definitely. Use more water or broth and increase tomato for a lighter, tangier version.
Q7: Can I freeze fish curry?
A7: It’s best fresh, but you can freeze it. The texture of fish may change slightly. Reheat gently and avoid stirring too much.
PrintIndian Fish Curry – Fragrant, Spiced & Comforting Coastal Classic
Fragrant, spiced Indian fish curry made with tender white fish simmered in a rich tomato-based gravy with coconut milk and bold spices.
Ingredients
-
½ lbs firm white fish (cod, halibut, tilapia), cut into chunks
-
½ tsp turmeric
-
½ tsp salt
For the Curry:
-
2 tbsp oil (coconut or vegetable)
-
1 tsp mustard seeds (optional)
-
8–10 curry leaves (optional)
-
1 onion, finely chopped
-
1 tbsp garlic, minced
-
1 tbsp ginger, minced
-
2 tomatoes, chopped or ¾ cup crushed tomatoes
-
1 tsp ground coriander
-
½ tsp cumin
-
½ tsp red chili powder (to taste)
-
½ tsp turmeric
-
Salt to taste
-
½ cup water or thin coconut milk
-
½ cup thick coconut milk (optional)
-
1 tsp lemon juice or tamarind paste
-
½ tsp garam masala
-
Fresh cilantro for garnish
Instructions
-
Marinate fish with turmeric and salt. Set aside.
-
Heat oil and add mustard seeds and curry leaves (if using). Sauté onion until golden.
-
Add garlic and ginger. Cook until fragrant.
-
Stir in tomatoes and cook until soft.
-
Add spices and cook until oil separates.
-
Pour in water or coconut milk. Simmer.
-
Add fish and cook on low for 8–10 minutes until just cooked.
-
Stir in lemon juice or tamarind, garam masala, and cilantro.
-
Serve hot with rice or flatbread.
Notes
-
Use firm fish to prevent breaking.
-
Adjust heat to your preference.
-
Let curry rest before serving for deeper flavor.