Quick Recipe Version (TL;DR)
Quick Ingredients
- 1.25 lb (570 g) firm white fish (cod, halibut, haddock, or tilapia), cut into 2-inch pieces
- 3/4 tsp kosher salt, divided
- 3/4 tsp ground turmeric, divided (1/2 tsp for fish, 1/4 tsp for sauce)
- 2 tbsp coconut or neutral oil
- 1 tsp black mustard seeds
- 8–10 fresh curry leaves (optional but lovely)
- 1 medium onion, finely chopped (about 1 cup)
- 1 tbsp minced ginger + 1 tbsp minced garlic (about 3 cloves)
- 2 tsp ground coriander; 1 tsp ground cumin
- 2 tsp Kashmiri red chili powder (or 1 tsp hot chili + 1 tsp sweet paprika)
- 1 small tomato, diced (about 1/2 cup)
- 1 cup (240 ml) full-fat coconut milk, divided
- 1/2 cup (120 ml) water
- 1 1/2 tbsp tamarind concentrate (or 3 tbsp strained tamarind pulp)
- 1/2 tsp jaggery or brown sugar (optional)
- 1 cup (200 g) basmati rice + 1 1/2 cups (360 ml) water
- 4 naan, to warm
Do This
- 1. Rinse rice until water runs clear. Cook with 1 1/2 cups water and a pinch of salt: bring to a boil, cover, then simmer on low 16–18 minutes; rest 5 minutes, fluff.
- 2. Toss fish with 1/2 tsp turmeric and 1/2 tsp salt; set aside 10 minutes.
- 3. Heat oil (medium). Add mustard seeds until they pop (30–60 seconds), then curry leaves. Add onion and a pinch of salt; cook 5–7 minutes until golden at edges.
- 4. Stir in ginger and garlic (30 seconds). Add coriander, cumin, remaining 1/4 tsp turmeric, and chili powder; cook 60 seconds. Add tomato + 2 tbsp water; cook 3–4 minutes until jammy.
- 5. Pour in 3/4 cup coconut milk + 1/2 cup water. Stir in tamarind, jaggery (optional), and remaining 1/4 tsp salt. Simmer gently 5 minutes.
- 6. Nestle fish in sauce; simmer 5–7 minutes until just opaque. Swirl in remaining 1/4 cup coconut milk; rest 2 minutes. Serve over rice with warmed naan (350°F/175°C for 5 minutes).
Why You’ll Love This Recipe
- Classic Goan flavors: coconut, tamarind, turmeric, and mustard seeds in perfect balance.
- Fast, weeknight-friendly method with restaurant-level results.
- Silky, vibrant red-orange gravy that’s gently spicy and deeply aromatic.
- Foolproof, tender fish—no overcooking, no curdled sauce.
Grocery List
- Produce: Onion, garlic, fresh ginger, small tomato, fresh cilantro, lime (optional), curry leaves (optional).
- Dairy: None required (optional ghee or butter for brushing naan).
- Pantry: Firm white fish, basmati rice, naan, coconut or neutral oil, full-fat coconut milk, tamarind concentrate, black mustard seeds, ground turmeric, ground coriander, ground cumin, Kashmiri chili powder (or hot chili + paprika), jaggery or brown sugar, kosher salt.
Full Ingredients
Fish & Quick Marinade
- 1.25 lb (570 g) firm white fish (cod, halibut, haddock, or tilapia), cut into 2-inch pieces
- 1/2 tsp ground turmeric
- 1/2 tsp kosher salt
Coconut–Tamarind Curry
- 2 tbsp coconut oil or neutral oil
- 1 tsp black mustard seeds
- 8–10 fresh curry leaves (optional but recommended)
- 1 medium yellow onion, finely chopped (about 1 cup)
- 1 tbsp minced fresh ginger
- 1 tbsp minced garlic (about 3 cloves)
- 2 tsp ground coriander
- 1 tsp ground cumin
- 1/4 tsp ground turmeric
- 2 tsp Kashmiri red chili powder (or 1 tsp hot chili powder + 1 tsp sweet paprika)
- 1 small tomato, diced (about 1/2 cup)
- 1 cup (240 ml) full-fat coconut milk, divided
- 1/2 cup (120 ml) water, plus more as needed
- 1 1/2 tbsp tamarind concentrate (or 3 tbsp strained tamarind pulp)
- 1/2 tsp jaggery or brown sugar (optional, to balance tartness)
- 1/2 tsp kosher salt, plus more to taste
Rice
- 1 cup (200 g) basmati rice, rinsed until water runs clear
- 1 1/2 cups (360 ml) water
- 1/4 tsp kosher salt (optional)
To Serve
- 4 naan, warmed (oven 350°F/175°C for 5 minutes or skillet 1 minute per side)
- Fresh cilantro leaves, for garnish
- Lime wedges (optional)
- 1 tbsp melted ghee or butter for brushing naan (optional)

Step-by-Step Instructions
Step 1: Start the basmati rice
Rinse the basmati rice under cold water, swishing with your fingers, until the water runs mostly clear. Combine rice, 1 1/2 cups water, and a pinch of salt in a small saucepan. Bring to a boil over medium-high heat, then reduce to low, cover, and cook 16–18 minutes. Turn off the heat and let stand, covered, for 5 minutes. Fluff with a fork.
Step 2: Marinate the fish briefly
Pat the fish dry and cut into 2-inch pieces. In a bowl, toss gently with 1/2 tsp turmeric and 1/2 tsp salt. Set aside for 10 minutes while you start the curry.
Step 3: Temper mustard seeds and soften aromatics
Heat the oil in a wide saucepan or sauté pan over medium heat. Add the mustard seeds and cook until they begin to pop, 30–60 seconds. Add the curry leaves (they may sputter) and immediately add the onion plus a pinch of salt. Cook, stirring, until translucent with golden edges, about 5–7 minutes.
Step 4: Bloom the spices and make a quick masala
Add the ginger and garlic; cook until fragrant, about 30 seconds. Stir in the coriander, cumin, remaining 1/4 tsp turmeric, and Kashmiri chili powder. Cook 60 seconds, stirring to bloom the spices. Add the diced tomato and 2 tbsp water; cook 3–4 minutes until the mixture looks glossy and jammy.
Step 5: Build the coconut–tamarind gravy
Stir in 3/4 cup coconut milk and 1/2 cup water. Add the tamarind concentrate, the jaggery (if using), and 1/2 tsp salt. Bring to a gentle simmer and cook on low for 5 minutes to meld flavors. Taste and adjust: more salt for savoriness, more tamarind for tang, or a pinch more sugar if it’s too sharp.
Step 6: Poach the fish gently
Nestle the fish pieces into the sauce in a single layer. Maintain a gentle simmer (not a hard boil) and cook 5–7 minutes, just until the fish turns opaque and flakes easily. Swirl in the remaining 1/4 cup coconut milk for a silky finish. If the sauce is thicker than you like, add a splash of hot water to loosen. Turn off the heat and rest 2 minutes.
Step 7: Warm naan and serve
Warm naan in a 350°F (175°C) oven for 5 minutes or in a dry skillet 45–60 seconds per side. Brush with melted ghee or butter if you like. Spoon fluffy rice into shallow bowls, ladle the Goan fish curry over the top, and garnish with cilantro and a squeeze of lime.
Pro Tips
- Keep the simmer gentle once coconut milk is in the pot to prevent splitting and to keep the fish tender.
- Kashmiri chili powder gives vivid color with moderate heat; swap part with paprika if you prefer very mild spice.
- Tamarind pastes vary in strength—start with the amount listed, then adjust to taste in Step 5.
- Handle the fish minimally once it’s in the sauce. Instead of stirring, shake the pan to move pieces around.
- For a glossier finish, stir in 1 tsp coconut oil at the end along with the final coconut milk.
Variations
- Shrimp version: Replace fish with 1 lb (450 g) peeled shrimp. Simmer the sauce first, then add shrimp and cook 3–4 minutes until pink and just cooked.
- Veg-forward: Add 1 1/2 cups okra or green beans in Step 5 and simmer until crisp-tender before adding the fish. Or swap fish for firm tofu or chickpeas for a vegetarian twist.
- Kokum swap: Use 3–4 pieces of kokum instead of tamarind for a classic coastal tang; simmer in the sauce, then remove before serving.
Storage & Make-Ahead
The curry base (through Step 5, without the fish) can be made up to 3 days ahead and refrigerated, or frozen for up to 2 months. Reheat gently, then poach the fish just before serving. Leftover fish curry keeps 2 days in the fridge—reheat on low until just warm to avoid overcooking the fish. Rice keeps 3–4 days refrigerated; sprinkle with a little water and reheat covered. Naan can be frozen and reheated directly from frozen at 350°F (175°C) for 6–8 minutes.
Nutrition (per serving)
Approximate, with rice but without naan: 455 kcal; 20 g fat; 41 g carbohydrates; 28 g protein; 3 g fiber; 750 mg sodium. Add about 250–300 kcal per piece of naan.


Leave a Reply