This Indian Fish Curry is a warm, comforting dish I turn to when I’m craving bold flavor and a touch of elegance. It brings together tender, mustard-marinated fish with a velvety cashew-based sauce infused with traditional Indian spices. Inspired by Bengali cuisine, this recipe blends spicy, tangy, and nutty notes into one beautifully balanced dish. When I serve it with rice or naan, it becomes a complete meal that feels both homely and special.
Why You’ll Love This Recipe
I love how this curry brings depth without needing complicated ingredients. The mustard marinade gives the fish a unique zing, while the cashew paste creates a silky sauce without any dairy. Aromatic spices like cumin, coriander, and turmeric build warmth, and I can adjust the cayenne for the perfect heat level. It’s the kind of dish that’s deeply flavorful yet surprisingly easy to make at home.
Ingredients
(Here’s a tip: Check out the full list of ingredients and measurements in the recipe card below.)
-
3 tablespoons oil, divided
-
2 teaspoons mustard
-
1/2 teaspoon black pepper
-
1 1/2 teaspoons salt, divided
-
1 pound fish fillets (such as cod or tilapia)
-
1 onion, chopped
-
2 cloves garlic
-
1 inch fresh ginger, peeled
-
1/4 cup cashews
-
1/2 teaspoon cayenne pepper (adjust to taste)
-
1/2 teaspoon ground cumin
-
1/2 teaspoon ground coriander
-
1/2 teaspoon sugar
-
1/4 teaspoon turmeric powder
-
1 large tomato, chopped
-
1/2 cup broth (vegetable or fish broth)
-
Fresh cilantro leaves for garnish
Directions
-
I begin by mixing 2 tablespoons of oil with mustard, black pepper, and 1/2 teaspoon of salt in a shallow bowl. I add the fish, turning to coat it well, then cover and refrigerate it for 30 minutes to marinate.
-
While the fish marinates, I blend the onion, garlic, ginger, and cashews into a smooth paste.
-
I preheat the oven to 350°F (175°C).
-
In a skillet over medium-low heat, I warm the remaining 1 tablespoon of oil and cook the cashew paste for 1–2 minutes until it smells fragrant.
-
I stir in cayenne, the remaining salt, cumin, coriander, sugar, and turmeric, cooking for about 5 minutes. Then I add the chopped tomato and broth, stirring well to create a sauce.
-
I remove the fish from the marinade, place it in a baking dish, and pour the sauce over the top.
-
I cover the dish with foil and bake for about 30 minutes, or until the fish flakes easily with a fork.
-
Before serving, I garnish with fresh cilantro for a fresh, herbal finish.
Servings and timing
This recipe serves 4 people and takes 15 minutes of prep and 30 minutes of cooking, totaling 45 minutes. It’s quick enough for a weeknight dinner but impressive enough for guests.
Variations
When I want to add more richness, I blend in a spoonful of coconut milk or yogurt near the end of cooking. I sometimes swap cashews for almonds, or use mustard seeds and mustard oil for a more intense Bengali-style flavor. For a thicker sauce, I reduce the broth slightly or simmer the sauce a few extra minutes before baking.
Storage/Reheating
I store leftovers in an airtight container in the refrigerator for up to 2 days. To reheat, I warm it gently on the stovetop over low heat until heated through, adding a splash of broth if needed to loosen the sauce. I avoid microwaving, as it can overcook the fish and affect the texture.
FAQs
Can I use frozen fish?
Yes, I just make sure to thaw it completely and pat it dry before marinating, so the fish can absorb all the flavors evenly.
What’s the best fish to use?
I like using mild, flaky white fish like cod, tilapia, or halibut. These types hold up well to baking and absorb the marinade beautifully.
Is the sauce spicy?
It has a gentle heat from the cayenne, which I adjust depending on my preference. I can also omit the cayenne for a milder version.
Can I make this curry without baking?
Yes, I’ve cooked it entirely on the stovetop by simmering the fish in the sauce for about 10–12 minutes with a lid on. It works well and saves time.
What should I serve with Indian Fish Curry?
I usually serve it with warm basmati rice or naan to soak up the sauce. A side of cucumber raita or a fresh salad also pairs well.
Conclusion
Indian Fish Curry is one of those dishes that feels special every time I make it. The mustard marinade, creamy cashew sauce, and fragrant spices come together in a way that’s bold, comforting, and full of character. Whether I’m introducing someone to Indian cuisine or making a cozy dinner for myself, this recipe never fails to impress.
PrintIndian Fish Curry
This Indian Fish Curry is a bold and comforting dish featuring mustard-marinated fish baked in a rich, creamy cashew sauce infused with classic Indian spices. Inspired by Bengali flavors, it’s a dairy-free, elegant curry that’s perfect for pairing with rice or naan—quick enough for weeknights, yet special enough for guests.
- Prep Time: 15 minutes
- Cook Time: 30 minutes
- Total Time: 45 minutes
- Yield: 4 servings
- Category: Dinner, Curry
- Method: Baked / Stovetop
- Cuisine: Indian, Bengali
Ingredients
- 3 tablespoons oil, divided
- 2 teaspoons mustard (ground or prepared)
- 1/2 teaspoon black pepper
- 1 1/2 teaspoons salt, divided
- 1 lb fish fillets (cod, tilapia, or halibut)
- 1 onion, chopped
- 2 cloves garlic
- 1 inch fresh ginger, peeled
- 1/4 cup cashews
- 1/2 teaspoon cayenne pepper (adjust to taste)
- 1/2 teaspoon ground cumin
- 1/2 teaspoon ground coriander
- 1/2 teaspoon sugar
- 1/4 teaspoon turmeric powder
- 1 large tomato, chopped
- 1/2 cup vegetable or fish broth
- Fresh cilantro, for garnish
Instructions
- In a shallow bowl, mix 2 tablespoons oil with mustard, black pepper, and 1/2 teaspoon salt. Add fish and coat well. Marinate in the fridge for 30 minutes.
- In a blender, combine onion, garlic, ginger, and cashews. Blend into a smooth paste.
- Preheat oven to 350°F (175°C).
- In a skillet, heat the remaining 1 tablespoon oil over medium-low. Cook the cashew paste for 1–2 minutes until fragrant.
- Stir in cayenne, remaining salt, cumin, coriander, sugar, and turmeric. Cook 5 minutes.
- Add chopped tomato and broth. Stir well to create a smooth sauce.
- Place marinated fish in a baking dish. Pour sauce over fish, cover with foil, and bake for 30 minutes or until the fish flakes easily.
- Garnish with fresh cilantro and serve warm.
Notes
- For extra richness, stir in a bit of coconut milk or yogurt.
- Almonds can be used instead of cashews.
- Mustard seeds or mustard oil give a more intense Bengali flavor.
- For stovetop-only prep, simmer fish in sauce covered for 10–12 minutes.
- Serve with basmati rice, naan, or cucumber raita.
Nutrition
- Serving Size: 1 serving
- Calories: 350
- Sugar: 4g
- Sodium: 620mg
- Fat: 22g
- Saturated Fat: 3g
- Unsaturated Fat: 16g
- Trans Fat: 0g
- Carbohydrates: 10g
- Fiber: 2g
- Protein: 30g
- Cholesterol: 65mg