This fish curry comes to you by way of Goa, a little pocket of Indian paradise that’s all about the sun, surf, sand and excellent seafood! With a deeply aromatic tomato and coconut based sauce, Goan Fish Curry calls for a good handful of spices but once you start cooking, it’s done in 20 minutes.
Goan Fish Curry
The tropical climate and beaches of Goa have long since been a magnet for travellers from all over the world, with a reputation in particular for attracting the hippie crowd and British backpackers … and Aussies!
Of all the region’s dishes, along with Vindaloo perhaps one of the most well known is Goan Fish Curry. Pronounced go-an (as opposed to “groan” without the “r”!), it’s an aromatic curry with a blend of spices, garlic, ginger and onion along with fresh tomato and coconut. And unlike other popular Indian curries, such as everybody’s favourite Butter Chicken and Tikka Masala, Goan Fish Curry has a touch of tang to it which cuts through the richness of the sauce.
Here’s a little preview of what’s coming your way….
About this particular Goan Fish Curry recipe
This Goan Fish Curry recipe is marginally more involved than most of the basic homestyle and online recipes you’ll see which typically have thin sauces and lack real depth of flavour in the sauce. This version specifically aims to achieve the same character and layers of flavour like you get at good Indian restaurants.
Specifically, this is a copycat of Malabar South Indian Restaurant in Crows Nest, Sydney, a long standing institution known for its excellent authentic Southern Indian food!
Goan Fish Curry Paste
The foundation of Goan Fish Curry is a curry paste which, once you gather the necessary spices, is a breeze to make. Here’s what you need – but don’t fret if you see spices you don’t recognise, I have substitutions!
-
Kashmiri chilli – this is an Indian chilli that is a little smoky as well as spicy, and at the time of writing I believe it’s only found in Indian and some Asian grocery stores (some have Indian sections). The Kashmiri Chilli gives the curry sauce a bright red colour without overwhelming chilli heat. If you can’t find it, sub with smoked paprika + chilli powder (pure chilli powder, not US Chili Powder which is a blend) or cayenne pepper). Flavour wise this is actually pretty close, you just won’t get quite the same red colour;
-
Fenugreek – another Indian specific cooking spice that calls for a trip to the Indian store. It actually kind of smells like maple syrup, though doesn’t taste like it when raw. It’s not a key ingredient so if you can’t find it, just leave it out;
-
Tumeric – this warm earthy spice with an intense yellow colour gives the curry a warm yellow glow. Widely available at ordinary grocery stores nowadays;
-
Coriander, cumin and ground cloves – three common spices in both Indian and Western cooking;
-
Fresh garlic and ginger – staples in most Indian cooking again. Finely grate it to get all the juicy flavour;
-
Tamarind – this sour paste is the sour element in Goan Fish Curry. It’s not overly sour, it’s just a background flavour but noticeable – and it’s one of the things that sets it apart from other Indian curries.Tamarind paste is made from the pulp of tamarind, a tropical fruit. It’s also used in South East Asian cooking – such as everybody’s favourite Pad Thai, Massaman Curry and Beef Rendang. Best sub: Ketchup plus white vinegar. I know, it sounds weird, but this combo replicates the thickness and sourness of tamarind. It’s the sub I use for Pad Thai and the results are phenomenal – and if you browse reader feedback, there’s plenty of positive comments around this sub.
Here’s how I make the curry paste – with a blender stick in a tall mason jar (I’m sure it came with a milkshake container, but I can’t locate it!).
This is a handy way to make small-batch curry pastes that is easy to scrape out. It’s a nightmare trying to scrape the paste out of a blender jug! If you use a food processor, use a small one – it doesn’t need to be super powerful because there’s nothing hard in the curry paste.
If you don’t have any of these, you can use a mortar and pestle or, as a last resort, finely grate the onion into a wet paste then just mix it up with the other ingredients.
Goan Fish Curry Sauce
And here’s what you need for the curry sauce in addition to the curry paste:
-
Black mustard seeds – they look like poppyseeds but have a slight wasabi-like bite to them. Not spicy, more a fresh zing. It’s about $1.50 in small packs at Indian grocery stores – I go to Indian Emporium in Dee Why on the Northern Beaches, Sydney. Also sold in the Indian food section at some Woolworths (Australia) $1.70, and online!Not a key ingredient in this recipe so don’t stress if you can’t find it. Sub (starting with best): brown mustard seeds, yellow mustard seeds, 1/4 tsp mustard powder, 1/2 tsp Garam Masala (different flavour, but is intended to make up for absence).Also used in: South Indian Eggplant Curry, Dal, Samosa Pie;
-
Chilli powder – this is pure ground chilli that is spicy, not the blend sold in the US as “Chili Powder”. Sub with cayenne pepper;
-
Fresh green chilli – these are more for visual than to add flavour or spice into the dish so these can be omitted if you prefer. Because these are large chillies, they are not very spicy;
-
Coconut milk – full fat best, for flavour and sauce thickness. Ayam is my brand of choice – it’s got the highest coconut % and therefore best flavour (89%). Economical brands can have as low as 40% so the flavour is nowhere near as good.Alternatives: Evaporated milk, cream or light cream (though you do lose the coconut flavour, there’s tons of flavour from the spices!);
-
Tomato pulp – use tomato polpa / pulp if you can find it (it’s finely chopped tomato, I use Mutti) otherwise tomato passata (aka tomato puree or strained tomato) or even canned crushed tomato will work just fine here;
-
Whole tomato – cut into chunks for stirring into the sauce;
-
Tomato paste – for thickening and a touch of extra tart; and
-
Sugar – to balance the sour flavours. If you use an economical coconut milk (ie lower coconut %) then you may need to dial it up a touch.
Best Fish for Curry
You can use virtually any fish in this curry – white fish fillets, salmon, trout. See below for a list of recommended common fish.
This curry is also a very good way to use economical frozen fish because unlike for dishes like Ceviche and Poke Bowls, sashimi-grade freshness is not paramount here. The same rule of thumb goes for say Moqueca (Brazilian Fish Stew) and my Chinese Rice Soup.
For white fish, firm-fleshed fish are ideal, such as:
-
Spanish mackerel (king mackerel in the USA is very similar) – this is what I used, excellent value
-
tilapia
-
snapper
-
barramundi
-
cod (all types)
-
mahi-mahi
-
halibut
-
basa
-
ling
Specifically, curry is very good for economical fish, “fishy” fish and freshwater fish that can sometimes have a bit of a muddy flavour because the strong flavour of the curry sauce will disguise any shortfall in fish flavour.
Fun fact: you’ll find that fish dishes in inland areas of China and other Asian countries that only have access to freshwater fish are mostly served with very strong flavoured sauces – to disguise that muddy flavour. 🙂 Not everyone has access to sparkling fresh saltwater fish!
Fish best avoided include:
-
Fish that easily goes dry if cooked too long – tuna, bonito, swordfish, marlin, kingfish
-
Very oily fish – sardines, mullet, herring
-
Delicate-textured white fish – flathead, gemfish/hake, sole (not ideal as they can break up easily, but are still OK if you’re careful)
How to make Goan Fish Curry
And here’s how to make it. Once you’ve measured out the ingredients, it takes less than 20 minutes:
-
Curry paste first – put it all in a jug that the blender stick fits into (I hope you’ve still got the milkshake container yours came with!) then blitz away. Use water to help it blitz – otherwise it’s too dry;
-
Blitz until the onion is puree – it won’t take much longer than 10 seconds, there’s nothing hard in this curry paste;
-
Cook off the curry paste – this is to make the spice flavours bloom and cook the onion, garlic and ginger. Also, to cook out the water that we added to help the paste puree;
-
Cook off tomato paste – next, we add the tomato paste and tomato pulp/puree, and cook that down to as well to get rid of excess water;
-
Add coconut milk and remaining sauce ingredients;
-
Simmer for 5 minutes to reduce and bring the flavours together;
-
Add fish in the last few minutes – it only takes 3 to 4 minutes to cook;
-
Garnish with fresh coriander and green chillies, then serve over basmati rice!
What to serve with Goan Fish Curry
As with all south Indian curries, the traditional way to serve this is with white basmati rice, though it’s perfectly acceptable and just as delicious served with plain white rice, jasmine or brown rice (brown basmati rice is terrific!).
If you’re going low carb or want to cut calories, then cauliflower rice works, though nothing beats the real thing. 🙂
If flatbreads are your thing, a side of my Naan (5 years in the making, this recipe!) for mopping the plate clean would be wonderful. Otherwise this general-purpose Easy Soft Flatbread makes a great alternative.
For something fresh, a favourite is a cool, refreshing Yogurt Cucumber Salad. The minted lemon yogurt dressing with the juicy bites of cucumber is literally made for Indian food. Indian Tomato Salad with Mint Raita is another super-fresh salad to cool that Kashmiri chilli heat. For something a little different and in the spirit of South Indian food, give this Cabbage & Carrot Salad with Coconut a whirl!
Going all the way to create the ultimate Indian feast? Try Samosas or Pakoras for the perfect appetiser/entree!
Sides for Goan Fish Curry
We all know that fish is good for you, and we should eat more of it. So now you’ve got a brand new exciting way to cook fish, what are you waiting for??! 😇 Try it! And if you do, let me know what you think! – Nagi x
Watch how to make it
Hungry for more? Subscribe to my newsletter and follow along on Facebook, Pinterest and Instagram for all of the latest updates.

Goan Fish Curry
Ingredients
Curry paste:
- 2 1/2 tbsp Kashmiri chilli powder (Note 1)
- 1 tbsp coriander
- 2 tsp cumin
- 1 tsp turmeric
- 1/2 tsp fenugreek powder (Note 2)
- 3/8 tsp ground cloves
- 6 cloves garlic , minced
- 1 tbsp fresh ginger , finely grated
- 2 tbsp tamarind puree (Note 3)
- 1/2 red onion , chopped
- 6 tbsp water (plus more, as needed)
Curry:
- 3 tbsp vegetable oil
- 1/2 tsp black mustard seeds (Note 4)
- 1/2 red onion , cut in half again (like a quartered orange) and thinly sliced
- 1 tbsp tomato paste
- 2/3 cup canned tomato pulp/polp (Mutti), OR tomato passata or crushed tomato, Note 5)
- 2/3 cup water
- 400ml/ 14oz coconut milk , full fat (Note 6)
- 1 1/4 tsp salt , cooking/kosher (or 3/4 tsp fine table salt)
- 1 1/2 tsp sugar
- 1/4 tsp chilli powder (pure chilli, not US Chili Powder which is a mix, Note 7)
- 2 long green chillies , cut into half lengthwise and deseeded, optional (Note 8)
- 1 tomato , cut into 8 wedges then into 2.5cm / 1" chunks
- 600g / 1.2 lb firm-fleshed white fish , cut into 3cm / 1.25" cubes (Note 9)
Garnishes / serving:
- 1/4 cup fresh coriander/cilantro leaves
- Finely sliced green chillies , optional
- Basmati rice
Instructions
Curry Paste:
- Place Curry Paste ingredients in a tall jug or milkshake container (something that fits the head of a blender stick) then blitz on high for 5 to 10 seconds until the onion is pureed. Add more water if needed to make it puree.
Curry:
- Sizzle black mustard seeds: Heat oil over medium heat in a large pot. Add black mustard seeds and let them sizzle for 30 seconds - careful, they might pop!
- Saute onion: Add red onion and cook for 3 minutes until edges start to tinge with gold.
- Cook off curry paste: Add curry paste and cook for 3 minutes - to evaporate water, make spices bloom and cook garlic & ginger.
- Cook off tomato: Turn heat up to medium high. Add tomato paste and tomato pulp, cook for 2 minutes.
- Coconut milk: Add water, coconut milk, sugar, salt and chilli powder if using. Stir, then bring to simmer, low heat so it's bubbling gently.
- Simmer 2 minutes, add tomato & green chilli: Simmer for 2 minutes, add tomato and green chilli.
- Simmer 3 minutes: Simmer for another 3 minutes, stirring every now and then - sauce should be thickened (not watery), it gets looser again when fish is added (because fish will drop some juices = even more flavour!).
- Add fish: Add fish, stir, cook for 3 to 4 minutes until fish easily flakes.
- Garnish & serve: Remove from stove and transfer to serving bowl. Garnish with coriander/cilantro and fresh green chillies if desired. Serve with basmati rice!
Recipe Notes:
1. Kashmiri Chili - spicy Indian chilli powder that gives this curry the red colour. Sub with 2 tbsp smoked paprika + 1/2 tsp chilli powder (not US Chili Powder which is a blend) or cayenne pepper). Pretty close flavour but, you won’t get quite the same red colour. Find at Indian store (I go to Indian Emporium in Dee Why, Sydney). 2. Fenugreek powder - another Indian spice, kind of smells like maple syrup! Find at Indian grocery stores, not a key ingredient so just skip it if you can't find it. 3. Tamarind puree - sour paste with consistency like tomato paste. Can be labelled as Tamarind Puree, Concentrate or Paste. In Australia it's sold at Woolies, Coles, Harris Farms (Asian section) as well as Asian stores. Best sub:. 1 tbsp tomato ketchup + 1 tbsp white vinegar (yes, really, used as sub for Pad Thai too and there are plenty of rave reviews!). 4. Black mustard seeds - looks like poppyseeds, wasabi bite, Indian aroma! ~ $1.50 in small packs at Indian grocery stores (my local is Indian Emporium in Dee Why, Sydney). Also sold in the Indian food section at some Woolworths (Australia) $1.70, otherwise try online. We aren't using stacks in this recipe, so not the end of the world if you can't find it. Just substitute with one of these (starting with best): Brown mustard seeds, Yellow mustard seeds, 1/4 tsp mustard powder*, 1/2 tsp Garam Masala* (*different flavour, but is intended to make up for absence, add into curry paste) 5. Tomato pulp - this will yield the most authentic result because it's finely diced tomato (it's chunkier small bits than crushed), but canned crushed tomato or tomato passata can be used in a pinch. It's really not a big deal which you use. 6. Coconut milk - full fat best for thickening and flavour, Ayam is my brand of choice (highest coconut %, least water). Alternatives (if you can't have coconut): evaporated milk or cream. Strong flavour of spices will compensate for not using coconut! 7. Chilli powder - leave this out if you can't handle the heat! Not to be confused with US Chili Powder (one "l") which is a non spicy spice blend. This is pure ground chilli. Sub cayenne pepper. 8. Green chillies - doesn't add spiciness into sauce, it's more for looks so it's optional. If making this non spicy, omit it. 9. Fish - Firm white fish work best in this dish - some suggestions: Spanish mackerel – (this is what I used, excellent value), tilapia, snapper, barramundi, cod (all types), mahi-mahi, halibut, basa, ling. Salmon and trout are also mild enough to use here. Avoid tuna, bonito, swordfish, marlin and kingfish (too easy to overcook) and very oily fish (sardines, mullet, herring, mackerel). Delicate-fleshed white fish like flathead, gemfish/hake and sole can be used, but be careful as they can break up. 10. Original creation by the RecipeTin family, striving to replicate the Goan Fish Curry at the great Malabar South Indian Restaurant in Crows Nest and from travels to Goa. As with all our curry recipes, we draw ideas and inspiration from many sources - watching Youtube videos of Indian homecooks cooking this dish at home, as well as reputable chefs like Atul Kochhar and Rick Stein, and studying books on Indian food. We take the best bits to most closely achieve the flavour we are after! 11. Nutrition per serving, excluding rice. 4 generous servings!
Nutrition Information:
More curries to spice up your life!
Life of Dozer
A photographer at the dog beach – Unleashed Northern Beaches – caught this photo of Dozer on the weekend! I loved it so much I bought it, and I think I’ll even get it framed. 🙂
This is absolutely delicious- ‘restaurant tasty’. Works beautifully with chicken. My family are my harshest critics- they all loved it…so satisfying!
Ive tried it a few times now, and love it. So tasty and thick.
This was soooo tasty. It was also one of the quickest curries I have cooked and had so much great flavor.
Super amazing! I really loved this curry. Made with cod. So tasty! And easy to make. I will definitely make this again.
Hi Nagi,
Another superb recipe! I’m not a seafood curry fan, however, I decided to give this recipe a go. It did not disappoint! I also added some prawns. YUM!!!
Ren
Thanks Nagi – what a lovely and simple recipe! We loved it and I am freezing the left-over sauce to use with a future meal with chicken thigh. (There was left-over sauce because I had to calm the heat because I put too much chilli in!). Absolutely delicious!
Hi Nagi, as always you have a beautiful recipe here for Goan fish curry AKA Xitt Codi. May I suggest you add some fresh green mango slices to up the tanginess? You won’t regret it. If you can find it, roasted coconut oil adds a very authentic flavour but it’s seems to be quite hard to source in Australia. There is actually a separate recipe for Mackarel Curry (Bangda Curry) and my late Nana would add a native Goan spice related to Sichuan pepper known as Tirphal to it. Have a prosperous 2023- I’m off to read your book now!
Hi Nagi, as always you have a beautiful recipe here for Goan fish curry AKA Xitt Codi. May I suggest you add some fresh green mango slices to up the tanginess? You won’t regret it. If you can find it, roasted coco
Yummy! Made it tonight – deeelish! It says serves 4/5… it served 2 greedy adults here! Yummy. Thanks for a great recipe Nagi!
Just outstanding flavours in the Curry sauce 🙂
Everybody raves about this meal – thanks so much.
This was a spicy curry but oh, so good. My ears were sweating!! The sauce was a little runny so next time I’ll cook it down a bit more. I used cod loins and it worked beautifully.
Hi
My favourite India curry to cook
I hate fish but I use chicken breast with care and add heat 😁
Silly question about Thai
Do you ever remove recipes
Maybe I can’t find it for looking
Easily my fault
Never had a problem finding it before
Vegetarian noodles
Honey is the recipe
Keep up the great work love to dozer 😊
This is a divine fish curry! I’ve made many of your recipes Nagi, and enjoyed them all, but this is next level yum! I finally bought some spices online (kashmiri chilli & ground fenugreek) as I live in regional Australia and couldn’t find them elsewhere. I’m so glad I did! I used Nile Perch from Woolies and ended up with over 700g but there was still plenty of sauce. I also added a dozen prawns just to be totally decadent lol, thank you for another AMAZING recipe!
It was absolutely stunning. So delicious! Especially with a Greek lemon rice in made to it…. https://youtu.be/i2Qy1oyGhgc
I made this when my sister was here and it was delicious. I want to freeze some meals for my mom and I know she loved this. Do you think it will freeze well?
Forgot to add, I made my own Fenugreek powder by dry roasting the easier to find Fenugreek Seeds, then letting them cool a smidge, and grinding in my Bali style course mortar and pestle.
My god this was sensational! Great balance, used Rockling as the fish , and the flavour was spot on. Spicy enough for those who like a kick, but not too scary for those a little scared of heat. Too many people wanted two serves….must make a double quantity next time. Navi – love all your recipes, this may be the best Indian inspired one I’ve tried of yours.
My next challenge I’ve been set is cooking rabbit – any suggestions from you?
Yum! Have wanted to make this curry for a long time and this recipe is fantastic! Takes a little time to get the prep done but so worth it. Make sure you cook out the curry paste really well. Spicy but deliciously so. Great for a winter night! Thanks Nagi – can’t wait for the cookbook 😀
Has to be the best tasting curry I’ve had in my life and I’ve eaten curries all over the world. Thank you, Nagi, for making five star restaurant-worthy meals accessible for all. ❤️
Absolutely delicious and so easy to make! I love that you give substitutions too. I have a pretty well stocked spice drawer but I’ve given up on recipes in the past when I didn’t have an important-sounding ingredient to hand; knowing what I could sub or leave out altogether gave me the confidence to give this a go and I’m SO glad I did!
Woo hoo Rachael! Enjoy!! N x