South African Cape Malay Fish Curry
Aromatic, mildly spiced fish curry with turmeric and roasted spices, finished with coconut milk and tamarind. A fragrant South African classic that's restaurant-quality yet doable on a weeknight.
- Total time
- 45 min
- Servings
- 4
- Calories
- 385
- Protein
- 32g
Ingredients
- 1 tablespoon coriander seeds
- 1 tablespoon cumin seeds
- ½ teaspoon fennel seeds
- 1.5 teaspoons turmeric powder
- 1 whole medium yellow onion, roughly chopped
- 4 whole garlic cloves
- 1 piece fresh ginger, 1-inch piece
- 1 whole fresh red chili, seeded
- 3 tablespoons extra-virgin olive oil
- 1 tablespoon tamarind paste
- ¼ cup water
- 2 tablespoons extra-virgin olive oil
- 1 whole medium yellow onion, thinly sliced
- 2 whole potatoes, medium waxy variety, cut into 1-inch cubes
- 1 can (13.5 oz) full-fat coconut milk
- 1 cup fish stock or water
- 1 teaspoon sea salt
- 1.25 pounds firm white fish fillets (cod or haddock), cut into 2-inch chunks
- ¼ cup fresh cilantro, roughly chopped
Instructions
- 1
Toast the spices for the paste: Set a small dry skillet over medium heat. Add 1 tablespoon coriander seeds, 1 tablespoon cumin seeds, and 0.5 teaspoon fennel seeds. Toast for 2-3 minutes, stirring frequently, until fragrant and the seeds turn one shade darker — you'll smell warm, nutty spice. Pour into a bowl and let cool for 1 minute.
- 2
Grind the toasted spices: Using a spice grinder or mortar and pestle, grind the cooled seeds to a fine powder. Transfer to a small bowl and stir in 1.5 teaspoons turmeric powder — this prevents it from clumping. Set aside.
- 3
Prepare the aromatics: Roughly chop 1 medium yellow onion into large chunks. Peel and roughly chop 4 garlic cloves. Peel a 1-inch piece of fresh ginger and chop into coins. Remove the seeds from 1 fresh red chili and roughly chop the flesh — the heat comes from the seeds, so deseed it if you prefer mild curry.
- 4
Blend the paste: In a food processor, add the chopped onion, garlic, ginger, and chili. Pour in 3 tablespoons extra-virgin olive oil, add 1 tablespoon tamarind paste, and 0.25 cup water. Blend until completely smooth — this should take 1-2 minutes. You want a thick, pourable paste, not chunky. Pour into a small bowl.
- 5
Build the aromatics: Set a large 12-inch heavy-bottomed pot or Dutch oven over medium-high heat. Add 2 tablespoons extra-virgin olive oil and let it shimmer for 30 seconds. Thinly slice 1 medium yellow onion and add to the hot oil. Sauté for 4-5 minutes, stirring occasionally, until the onion softens and turns golden at the edges — you should hear a gentle, steady sizzle.
- 6
Add the curry paste: Pour in the entire batch of curry paste from the bowl and stir constantly for 2-3 minutes. The paste will cling to the onions and deepen in color — this cooking step develops the spices' flavor and removes the raw, grassy taste. The pot will smell deeply aromatic.
- 7
Build the curry base: Cut 2 medium waxy potatoes (like Yukon gold) into 1-inch cubes — uniform size ensures even cooking. Add the potatoes to the paste, stir for 1 minute to coat in the spice mixture. Pour in 1 can (13.5 oz) full-fat coconut milk and 1 cup fish stock or water. Add 1 teaspoon sea salt and stir well to combine.
- 8
Simmer the base: Bring the curry to a gentle simmer over medium-high heat — you'll see small, steady bubbles breaking the surface. Reduce heat to medium-low and cook uncovered for 12-15 minutes, stirring occasionally, until the potatoes are almost tender when pierced with a fork. The cooking liquid will reduce slightly and the flavors will meld.
- 9
Add the fish: Cut 1.25 pounds firm white fish fillets (cod, haddock, or pollock) into 2-inch chunks, removing any small pin bones with tweezers. Gently nestle the fish pieces into the simmering curry, pressing them down slightly so they're partially submerged. Do not stir — you want to keep the fish intact.
- 10
Cook the fish gently: Maintain a gentle simmer and cook uncovered for 6-8 minutes. The fish is done when it flakes easily with a fork and is just opaque throughout — overcooking makes it dry. The potatoes should be fully tender at this point. Taste the curry and add more salt if needed.
- 11
Finish with cilantro: Roughly chop 0.25 cup fresh cilantro leaves and scatter over the top of the curry. Do not stir in yet — let each spoonful have the option of fresh herbs.
- 12
Serve: Ladle the curry into bowls, making sure each portion gets fish, potatoes, and plenty of creamy, fragrant sauce. The cilantro will float on top, adding brightness. Serve immediately with steamed jasmine rice or warm flatbread to soak up the sauce.
Tools you’ll need
- small dry skillet
- spice grinder or mortar and pestle
- small bowl
- food processor
- 12-inch heavy-bottomed pot or Dutch oven
- wooden spoon
- tweezers for pin bones
- fork
- ladle
- serving bowls
Cook smarter
Get matched recipes for what’s in your fridge
CookSnap is a free iOS app that finds real recipes from the ingredients you already have. No more grocery-list aspirations.
