Tanzanian fish curry is a coastal-style dish of tender fish simmered in a gently spiced tomato and coconut sauce, often served with rice or flatbread. This home-cook-friendly version balances ginger, coriander, cumin, and lime with creamy coconut milk; Tanzanian households and regions have their own variations, so the spice mix can be adjusted to taste.
Ingredients
- 1½ lb (680 g) firm white fish fillets, such as cod, haddock, snapper, or tilapia, cut into 1½-inch (4 cm) chunks
- 1 tsp fine salt (6 g), divided, plus more to taste
- 2 tbsp neutral oil (30 ml), such as sunflower or canola oil
- 1 medium yellow onion (about 150 g), finely chopped
- 4 garlic cloves (about 12 g), finely chopped or grated
- 1 tbsp peeled, finely grated fresh ginger (15 g)
- 1 small green chili (about 10 g), finely chopped, with seeds removed for less heat; optional
- 2 tsp ground coriander (4 g)
- 1 tsp ground cumin (2 g)
- 1 tsp sweet paprika (2 g)
- ½ tsp ground turmeric (about 1.5 g)
- ¼ tsp ground cinnamon (about 0.5 g)
- 1 medium ripe tomato (about 180 g), finely chopped
- 1 tbsp tomato paste (16 g)
- 1 can full-fat coconut milk, 13.5 fl oz (400 ml), well shaken
- ½ cup water (120 ml)
- 1 tbsp fresh lime juice (15 ml), plus lime wedges for serving if desired
- ¼ cup loosely packed fresh cilantro leaves (about 4 g), chopped
Instructions
- Prepare the fish and aromatics. Pat the fish dry with paper towels and cut it into evenly sized chunks so it cooks at a similar rate. Season it with about half the salt, cover, and keep it refrigerated while you chop the onion, garlic, ginger, chili, and tomato and measure the spices. Set the fish beside the stove only when you are ready to add it to the pan.
- Soften the onion. Heat the oil in a wide, heavy-bottomed skillet or sauté pan over medium heat. Add the onion and cook for about 8 minutes, stirring often, until soft and translucent with a little golden color at the edges. Lower the heat if it starts browning quickly; a gently softened onion gives the sauce sweetness without a scorched flavor.
- Cook the aromatics and spices. Stir in the garlic, ginger, and chili, if using, and cook for 1 minute. Add the coriander, cumin, paprika, turmeric, and cinnamon, then stir for 1 minute more. The spices should smell fragrant, not burnt. If the pan looks dry, add a teaspoon of water rather than letting the spice mixture stick.
- Build the tomato base. Add the chopped tomato and tomato paste. Cook for about 5 minutes, stirring and pressing the tomato with the spoon, until it softens and begins to break down. This short cook helps the tomato paste blend into the aromatics and gives the finished sauce a rounded, savory flavor.
- Simmer the coconut sauce. Pour in the coconut milk and water, then stir until the tomato and spices are evenly distributed. Bring the sauce just to a gentle simmer over medium heat, then reduce the heat and cook for 7 minutes, stirring occasionally. Avoid a hard boil, which can make a coconut sauce separate or reduce too fast. Taste the sauce and add a little of the remaining salt if needed.
- Poach the fish gently. Slide the fish chunks into the sauce in a single layer as much as possible. Spoon sauce over the tops, cover the pan, and simmer gently for about 8 minutes, turning the pieces once with a wide spatula if they are sturdy enough. Check the thickest piece with a food thermometer: the USDA FSIS safe minimum internal temperature for fish is 145°F (63°C). The flesh should also look opaque and separate easily into flakes, but use the thermometer to confirm safety rather than relying on appearance alone. Thicker pieces may need a few extra minutes.
- Finish and serve. Turn off the heat and gently stir in the lime juice and chopped cilantro. Taste the sauce and adjust with more salt or lime if it needs a lift. Let the curry stand for 2 minutes so the sauce settles, then serve while hot, taking care not to break the fish into small flakes as you portion it.
Tips
- Choose fish that holds together. Cod, haddock, snapper, and tilapia all work, though texture varies: a firm snapper chunk tends to stay neater, while a delicate fillet can break apart more easily. If using thin fillets, cut larger pieces and handle them gently. Thaw frozen fish in the refrigerator and pat it thoroughly dry before seasoning.
- Keep the simmer gentle. A rolling boil can make fish fall apart and may cause the coconut sauce to look oily or split. Once the sauce is simmering, lower the heat before adding the fish. If the sauce becomes thicker than you like, stir in warm water a tablespoon at a time.
- Adjust the heat and spice level. Leave out the chili for a mild curry, or add some of its seeds for more heat. Fresh ginger and whole spices provide a brighter flavor, but the ground spices listed here make the recipe practical for a regular pantry. Measure spices before cooking so they do not burn while you search for the next ingredient.
- Use a substitute thoughtfully. If fresh tomato is unavailable, use ¾ cup (180 g) canned crushed tomato in place of the chopped tomato; the sauce will be softer and slightly more tangy. If you cannot find coconut milk, evaporated milk can make a creamy but less coconut-forward sauce. Avoid sweetened coconut cream, which can make the curry unexpectedly sweet.
Serving Suggestions
Serve the curry over steamed basmati or other long-grain rice, which catches the coconut sauce without competing with the fish. For four people, cook about 1½ cups (285 g) dry rice according to its package directions; that makes roughly 4 to 5 cups cooked, depending on the variety. A spoonful of rice and sauce with a piece of fish makes a balanced serving, and lime wedges at the table let everyone brighten the sauce to taste.
For a more coastal-inspired spread, offer warm chapati or another soft flatbread alongside the rice, plus a simple cucumber and tomato salad. A lightly dressed cabbage salad or sliced avocado also provides a cool contrast to the warm spices. If serving guests, bring the pan to the table while the fish is still in larger pieces, then spoon sauce over each portion rather than stirring the curry repeatedly.
Variations
Make it with prawns: Replace the fish with 1½ lb (680 g) peeled, deveined large prawns. Add them only after the coconut sauce has simmered, then cook until they are opaque and firm, usually about 3 to 5 minutes depending on size. Check doneness with a food thermometer where practical; seafood should reach 145°F (63°C). Avoid overcooking, since prawns can turn rubbery quickly.
Add vegetables: Stir in 1 cup (150 g) diced potato or 1 cup (130 g) sliced green beans while the coconut sauce simmers. Potato needs to be cut into small cubes and cooked until almost tender before the fish goes in; otherwise it may still be firm when the fish is done. Green beans can simmer for the full 7 minutes with the sauce. Keep the fish cooking time separate and check its temperature.
Change the spice profile: A pinch of ground cloves or cardamom can add a more pronounced warm aroma, while extra black pepper gives a sharper finish. Start with only ⅛ tsp (about 0.3 g) of either ground spice; both can dominate if added freely. For a less rich sauce, replace up to half the coconut milk with water, understanding that the curry will be thinner and less creamy.
Storage and Reheating
Transfer leftover curry to a shallow, covered container and refrigerate it within 2 hours of cooking. It keeps for 3 to 4 days in the refrigerator. Fish is delicate, so store the sauce and fish together but avoid stirring more than necessary. For longer storage, freeze the cooled curry in a freezer-safe container for up to 2 months for best quality. Thaw it overnight in the refrigerator; the coconut sauce may look slightly separated after freezing, but gentle reheating and stirring usually bring it back together.
Reheat only the portion you plan to eat in a covered saucepan over low heat, stirring the sauce carefully and turning the fish once. Add a splash of water if the sauce has thickened. Heat leftovers to 165°F (74°C), checking the center with a food thermometer, as recommended for reheated leftovers. You can also microwave a portion in a covered microwave-safe dish, stirring the sauce partway through and checking the temperature in more than one spot. Avoid repeated cooling and reheating, which can dry out the fish and reduce its quality.
Frequently Asked Questions
What fish is best for Tanzanian fish curry?
Choose a mild, firm fish that can be cut into chunks, such as cod, haddock, snapper, or tilapia. Fresh fish is not essential; frozen fish works well when thawed safely in the refrigerator and dried before cooking. Very thin or fragile fillets can still taste good, but they may break apart more readily in the sauce.
Can I make the curry ahead?
You can make the tomato and coconut sauce up to 2 days ahead, cool it promptly, and refrigerate it in a covered container. Reheat the sauce to a gentle simmer, then add the fish and cook it just before serving. Cooking the fish ahead is possible, but it is more likely to dry out when reheated.
Why did my coconut curry sauce split?
A sauce can separate if it boils vigorously, reduces too far, or is stirred aggressively after the fish is added. Keep it at a gentle simmer and use a wide spatula to move the fish carefully. If it separates slightly, lower the heat and whisk or stir the sauce gently; a tablespoon of warm water can help it look more cohesive.
Can I use canned tomatoes or bottled lime juice?
Yes. Use ¾ cup (180 g) crushed canned tomatoes instead of the fresh tomato, and cook them for the same 5 minutes with the paste. Bottled lime juice works in a pinch, but its flavor is often less fresh; start with 2 teaspoons (10 ml), taste, and add more if needed.
How can I tell when the fish is cooked?
Check the thickest piece with a food thermometer and cook it to 145°F (63°C), the USDA FSIS safe minimum for fish. Properly cooked fish is opaque and flakes with gentle pressure, but thickness and pan temperature affect timing, so the thermometer is the dependable check. If it is below temperature, return it to the simmering sauce and check again after a minute or two.
Related
- Ayam Malaysian Curry Paste for a Fragrant Chicken Curry
- Authentic Pakistani Chicken Curry Recipe
- Afghan Lamb Curry with a Fragrant Tomato-Onion Sauce
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).