- Prep
- 20 min
- Cook
- 25 min
- Total
- 45 min
- Serves
- 4
Ingredients
What you’ll need — tap to tick off as you go
- 700 g
- 4 cloves
- 4 g
- 1 g
- 400 ml
- 30 ml
- 20 g
Process
Timers built in · swap anything · ask as you cook
Pat the fish chunks dry with paper towels. In a bowl, toss the fish with the juice of 1 lime, half the minced garlic, 2 g salt and the black pepper. Let marinate at room temperature for 15 minutes while you prepare the vegetables.
Heat the palm oil in a wide, heavy pot or Dutch oven over medium heat. Add the sliced onion and cook for 3 minutes until softened and translucent, stirring occasionally.
Add the remaining garlic and the minced malagueta chili (if using) to the pot and cook for 30 seconds until fragrant. Do not let the garlic brown.
Layer half the sliced red and yellow bell peppers and half the tomato slices over the onions. Season with a pinch of salt. Arrange the marinated fish chunks on top in a single layer.
Scatter the remaining bell peppers and tomatoes over the fish. Pour the coconut milk evenly over everything. Bring to a gentle simmer, then reduce the heat to low, cover and cook for 12 to 15 minutes, until the fish is opaque and flakes easily with a fork.
Uncover, taste the broth and adjust salt if needed. Stir in the chopped cilantro and sliced scallions. Simmer uncovered for 2 more minutes to meld the flavors.
Serve hot in shallow bowls with lime wedges on the side, spooning plenty of broth over the fish. Accompany with steamed white rice if desired.

Kitchen notes
Kitchen notes
- The most common mistake is overcooking the fish: it should be just opaque and flaky, not falling apart. Start checking at 10 minutes and remove from heat as soon as it flakes.
- Use full-fat coconut milk; light versions make a thin, watery broth. Shake the can well before opening, as the cream separates.
- Palm oil is traditional for its color and flavor, but if unavailable, substitute with 30 ml annatto-infused vegetable oil or a pinch of turmeric mixed into neutral oil for a similar golden hue.
- Do not stir the stew vigorously once the fish is added, or the chunks will break. Instead, gently shake the pot or spoon broth over the top.
Substitutions
- palm oil→annatto-infused vegetable oil or neutral oil with a pinch of turmeric
- malagueta chili→1/2 tsp red chili flakes or 1 small serrano chili
- firm white fish fillets→shrimp (peeled and deveined) or firm tofu cubes for a vegetarian version
- cilantro→flat-leaf parsley if you dislike cilantro
Storage & reheating
Store leftovers in an airtight container in the refrigerator for up to 3 days. The flavor deepens overnight. Reheat gently on the stovetop over low heat, adding a splash of water or coconut milk if the broth has thickened too much; avoid boiling to prevent the fish from breaking apart. Not recommended for freezing, as the coconut milk may separate and the fish texture suffers.
FAQ
The questions we get asked most
Can I make fish moqueca ahead of time?
You can prepare the marinade and slice all vegetables up to 8 hours ahead and refrigerate them separately. However, the dish is best cooked and served fresh, as the fish can become mushy if cooked, cooled and reheated. If you must make it ahead, cook it completely, cool quickly and refrigerate for up to 1 day, then reheat very gently.
Why did my moqueca turn out watery?
The most likely cause is using light coconut milk or adding extra liquid like water or broth. Full-fat coconut milk is essential for a rich, creamy broth. Also, do not cover the pot too tightly during simmering, as condensation can drip back in. If it is still watery after cooking, simmer uncovered for a few minutes to reduce.
What type of fish is best for moqueca?
Use firm, thick white fish that holds its shape, such as halibut, cod, snapper, or grouper. Avoid delicate fish like tilapia or sole, which fall apart easily. Cut the fillets into large chunks so they stay intact during simmering.
Can I use frozen fish for moqueca?
Yes, but thaw it completely in the refrigerator overnight and pat it dry before marinating. Frozen fish releases extra water, which can thin the broth, so drain well after thawing. Never add frozen fish directly to the pot, as it will lower the temperature and cook unevenly.
Is fish moqueca spicy?
It has a mild warmth from the malagueta chili, but it is not overly spicy. You can adjust the heat by removing the seeds and membranes from the chili or omitting it entirely. For a spicier version, leave the seeds in or add an extra chili.
How do I know when the fish is cooked?
The fish is done when it turns opaque throughout and flakes easily when gently pressed with a fork. The internal temperature should reach 63°C. Start checking at 10 minutes of simmering, as overcooking will make it dry and rubbery.
Can I make moqueca without palm oil?
Yes, you can substitute annatto-infused vegetable oil or a neutral oil with a pinch of turmeric for a similar golden color. The flavor will be slightly different but still delicious. Palm oil is traditional but not essential for a good moqueca.
Ask KitchenMind about this recipe
Tell it what’s different tonight — it works within the actual recipe.


