Disclosure: This post may contain affiliate links. As an Amazon Associate, we earn from qualifying purchases. We only recommend products we trust.
The warmth hits you first, not the heat. You crack open the lid, and this gentle cloud of cinnamon, turmeric, and ginger escapes. Your kitchen smells like a spice market crossed with a coastal restaurant, and suddenly you realize you’ve created something that tastes like it took hours but honestly took maybe thirty minutes.
This is what I love about a great curry. It feels fancy, tastes restaurant-quality, but it’s built on simple things: a white fish, coconut milk, and spices that don’t lie. You get that creamy, aromatic sauce, tender flaky fish, and a bowl that feels both adventurous and deeply comforting.
I’m sharing this recipe because it’s a game-changer for anyone who loves seafood but wants something beyond the usual weeknight fare. Whether you’re curious about global flavors or you’ve been craving that pescatarian dinner that actually feels special, this one delivers.
Table of Contents
Why You’ll Love This Recipe

This isn’t your typical weeknight dinner, and it’s not pretentious either. The coconut milk creates this silky sauce that makes the fish taste elevated without any fussing.
You’re getting all the good stuff: omega-3s from the fish, anti-inflammatory spices, and a meal that feels like a hug. The basmati rice soaks up every bit of that curry sauce, and one bowl somehow feels complete and satisfying. Plus, the whole thing comes together in one pan and under forty minutes, which means busy weeknights just got better.
Did you know? Turmeric, a star ingredient in this curry, has been linked to reduced inflammation and improved brain function.
Ingredients You’ll Need
You need about thirty minutes and a willingness to let those spices bloom. Here’s what you’ll reach for:
- 1 tablespoon coconut oil
- 1 medium onion, finely diced
- 4 cloves garlic, minced
- 1 tablespoon fresh ginger, minced
- 1 can (14 ounces) coconut milk, full fat
- 1 can (14 ounces) diced tomatoes
- 2 teaspoons turmeric
- 1 teaspoon ground cumin
- 1 teaspoon garam masala
- 1/4 teaspoon cayenne pepper (adjust to taste)
- Salt and freshly ground black pepper to taste
- 1.5 pounds white fish fillets (cod or tilapia, skin removed)
- Juice of 1 lime
- Fresh cilantro for garnish
- 2 cups cooked basmati rice (for serving)
Step-by-Step Instructions
Step 1: Toast the Spices and Build Your Base
Heat the coconut oil in a large skillet or Dutch oven over medium heat until it shimmers.
Add the diced onion and cook for 3-4 minutes until it softens and turns translucent. Add the garlic and ginger, stirring constantly for about 1 minute, until fragrant. This foundation is everything, don’t skip it.
Step 2: Add the Spices
Sprinkle in the turmeric, cumin, and garam masala. Stir for about 30 seconds to toast the spices and release their oils.
You’ll smell the difference immediately. This is the moment that transforms the pan into something special.
Step 3: Pour In the Sauce
Add the canned tomatoes with their juices and the full-fat coconut milk. Stir everything together, scraping up any spice bits from the bottom of the pan.
Bring the sauce to a gentle simmer over medium heat. Let it bubble softly for about 5 minutes, allowing the flavors to meld.
Step 4: Season and Add the Fish
Taste the sauce and season with salt, pepper, and cayenne. Start with 1/4 teaspoon cayenne and add more if you like heat.
Carefully place your fish fillets into the simmering sauce, nestling them among the tomatoes. They don’t need to be completely submerged, but they should be mostly covered. Cook for 8-12 minutes, depending on the thickness of your fillets, until the fish flakes easily with a fork.
Step 5: Finish and Serve
Remove from heat and squeeze the fresh lime juice over the top. The brightness lifts everything.
Serve your curry in bowls over fluffy basmati rice. Garnish generously with fresh cilantro.
Cooking Tips
Keep the heat at a gentle simmer once the fish goes in. Aggressive heat will make the fish break apart, and you want those tender, intact pieces.
If you’re sensitive to heat, start with half the cayenne and taste as you go. You can always add more spice, but you can’t take it back. For deeper flavor, use light coconut milk if you prefer a less heavy sauce, but the full-fat version creates that restaurant-quality richness that makes this feel special.
Fast Fact: Basmati rice has a lower glycemic index than many other white rice varieties, making it a solid choice for balanced meals.
FAQs
Can I use a different white fish? Absolutely. Halibut, sea bass, or even snapper work beautifully. Any mild, flaky white fish will absorb those curry flavors without overpowering the dish.
What if I don’t have fresh ginger? You can use 1 teaspoon of ground ginger, but fresh really does elevate this. If you have it, use it.
Can I make this ahead? Make the curry sauce up to 2 days ahead, then gently reheat and add the fish when you’re ready to eat. The fish is best cooked fresh, but the sauce improves as flavors deepen.
Is this pescatarian-friendly? Yes, and it’s perfect for anyone looking to add more seafood to their rotation. One bowl delivers serious protein and feels like a complete meal.
Make Ahead and Storage
The curry sauce keeps in an airtight container in the refrigerator for up to 3 days, making it ideal for meal prep. Just reheat gently before adding fresh fish. You can also freeze the sauce for up to 2 months, let it thaw overnight in the refrigerator before reheating.
Leftover curry with fish keeps for 1 day in the fridge, but fish is best eaten fresh, so plan accordingly. Reheat gently over low heat to avoid breaking up the fish.
Time to Get Cooking
This is the kind of recipe that makes you feel like you’ve been in the kitchen for hours when really it’s been thirty minutes. The aroma alone will have anyone asking what you’re making, and one bite will have them asking for the recipe.
Go grab your fish, your spices, and that coconut milk. Your weeknight just got a serious upgrade. Drop any questions in the comments below, and let me know how it turns out.
Happy cooking.
Print
Quick Indian Coconut Fish Curry with Basmati Rice
- Total Time: 40 minutes
- Yield: 4 1x
Description
Silky coconut milk curry loaded with tender white fish and aromatic spices. This globally-inspired dinner feels restaurant-quality but comes together in under 40 minutes. Served over basmati rice for a complete, satisfying bowl.
Ingredients
- 1 tablespoon coconut oil
- 1 medium onion, finely diced
- 4 cloves garlic, minced
- 1 tablespoon fresh ginger, minced
- 1 can (14 ounces) coconut milk, full fat
- 1 can (14 ounces) diced tomatoes
- 2 teaspoons turmeric
- 1 teaspoon ground cumin
- 1 teaspoon garam masala
- 1/4 teaspoon cayenne pepper
- Salt and freshly ground black pepper to taste
- 1.5 pounds white fish fillets (cod or tilapia, skin removed)
- Juice of 1 lime
- Fresh cilantro for garnish
- 2 cups cooked basmati rice
Instructions
- Heat coconut oil in large skillet over medium heat until shimmering
- Add onion and cook 3-4 minutes until translucent
- Add garlic and ginger, stir for 1 minute until fragrant
- Add turmeric, cumin, and garam masala, stir for 30 seconds
- Add tomatoes with juices and coconut milk, stir well
- Bring to gentle simmer and let bubble for 5 minutes
- Taste and season with salt, pepper, and cayenne
- Place fish fillets into simmering sauce
- Cook 8-12 minutes until fish flakes easily with fork
- Remove from heat and squeeze lime juice over top
- Serve in bowls over basmati rice
- Garnish generously with fresh cilantro
Equipment

12-inch Deep Frying Pan Skillet
Check Price โ
Check Price โ
Check Price โ
Check Price โ Notes
- The sauce can be made up to 2 days ahead and reheated gently before adding fresh fish.
- For less heat, reduce cayenne to 1/8 teaspoon.
- Use full-fat coconut milk for best results.
- Prep Time: 15 minutes
- Cook Time: 25 minutes
- Category: Main Course
- Method: Pan-Fry
- Cuisine: Indian
Nutrition
- Serving Size: 1 bowl
- Calories: 380 calories
- Sugar: 6g
- Sodium: 520mg
- Fat: 18g
- Saturated Fat: 15g
- Unsaturated Fat: 3g
- Trans Fat: 0g
- Carbohydrates: 28g
- Fiber: 2g
- Protein: 32g
- Cholesterol: 65mg








