Easy Brazilian Fish Stew Recipe with Coconut

Brazilian Fish Stew Recipe: Coconut Milk Moqueca

Some fish stews taste fine but forgettable. A good Brazilian fish stew recipe — moqueca, as it’s known in Brazil — does the opposite: it smells like the coast, tastes rich without feeling heavy, and still comes across bright and clean by the last spoonful. The difference isn’t fancy technique. It’s a handful of small choices that protect the fish, build real flavor into the base, and finish with lime at exactly the right moment.

I’ve made this both the rushed way and the careful way, and the gap between the two is obvious. Done right, the broth stays silky instead of separated, the fish flakes cleanly instead of falling apart, and every spoonful tastes like coconut, tomato, and bell pepper working together rather than sitting next to each other.

What Is Moqueca?

Moqueca is a Brazilian coastal fish stew, most closely traced back to pokeka, an indigenous cooking method where fish was wrapped in banana leaves and roasted directly over coals. Over generations, and shaped by Portuguese and African culinary influence, that simple method evolved into the layered, aromatic stew known today — usually built on onion, garlic, tomato, and bell pepper, and gently simmered rather than boiled.

Two regional styles dominate the conversation around moqueca, and they genuinely taste different from one another:

  • Moqueca Baiana (Bahia): built on coconut milk and dendê (Brazilian red palm oil), giving it a rich, rounded flavor and a deep orange color.
  • Moqueca Capixaba (Espírito Santo): typically dendê-free and often coconut-milk-free, leaning on tomato, onion, garlic, and annatto for color instead — lighter and brighter by comparison.

A lesser-known third variation, Moqueca Paraense from the state of Pará, uses local ingredients like tucupi and jambu, showing just how much this dish shifts from region to region while staying recognizably moqueca.

Equipment You'll Need

Why the Order of Cooking Matters

Searing the fish first adds real depth.
Some versions of moqueca simmer the fish directly in the sauce from the start. A better result comes from searing the fish pieces briefly first, then setting them aside — the browned bits left in the pan (the fond) become part of the sauce’s flavor once you build the aromatics on top of them.

A gentle simmer, not a boil, protects the fish.
Once everything’s in the pot, you want small, lazy bubbles — a hard boil breaks delicate fish apart and can toughen firmer cuts.

Coconut milk goes in before the fish, not after.
Adding it earlier and keeping the heat calm afterward prevents it from separating into an oily, broken-looking sauce.

Resting the pot after cooking matters more than people expect.
Turning off the heat and letting the stew sit for 5–10 minutes lets the sauce settle back into something smooth and lets the fish firm up slightly, so it flakes cleanly when served instead of falling apart under a spoon.

Recipe

Easy Brazilian Fish Stew Recipe

Recipe by Camila SantosCourse: MAIN DISHES, MOQUECA RECIPESCuisine: Brazilian
Servings

4

cups
Prep time

20

minutes
Cooking time

30

minutes

Ingredients

  • For the fish:
  • 1 to 1½ lbs firm white fish fillets (halibut, black cod, or sea bass — thicker cuts hold up best), cut into 2-inch pieces

  • ½ tsp salt

  • Zest and juice of 1 lime

  • For the stew:
  • 2–3 tbsp coconut oil, olive oil, or dendê (red palm oil) for a more traditional Bahian flavor

  • 1 onion, finely diced

  • ½ tsp salt, plus more to taste

  • 1 cup diced carrot

  • 1 red bell pepper, diced

  • 4 garlic cloves, roughly chopped

  • ½ jalapeño, finely diced (optional)

  • 1 tbsp tomato paste

  • 2 tsp paprika

  • 1 tsp ground cumin

  • 1 cup fish or seafood stock (chicken stock works in a pinch)

  • 1½ cups diced fresh tomatoes

  • 1 can (14 oz) coconut milk

  • ½ cup chopped cilantro or scallions

  • Lime wedges, for serving

  • To serve: rice (traditional), plus optional crusty bread for the broth.

Instructions

  • Marinate the fish briefly. Pat the fish dry, cut into 2-inch pieces, and toss with salt, lime zest, and a tablespoon of lime juice. Set aside while you build the base.

  • Sear the fish first. Heat a tablespoon of oil in your pan over high heat. Sear the fish pieces briefly on each side until lightly golden but not cooked through, then remove and set aside. This step builds flavor into the pan that a straight simmer skips entirely.

  • Build the aromatic base. In the same pan, add the onion and a pinch of salt, and sauté 2–3 minutes until glossy, scraping up any browned bits left from searing the fish.

  • Soften the vegetables. Add the carrot, bell pepper, garlic, and jalapeño if using. Cook 4–5 minutes, until softened and fragrant.

  • Bloom the spices. Stir in the tomato paste, paprika, and cumin, and cook for about a minute. Add the stock and bring to a simmer, scraping up any remaining browned bits.

  • Add the tomatoes. Stir in the diced tomatoes, cover, and simmer on medium-low for about 5 minutes, until the carrots are tender.

  • Add the coconut milk. Stir in the coconut milk and taste for salt. Keep the heat at a gentle simmer — small bubbles only — to keep the coconut milk from separating.

  • Return the fish to the pot. Nestle the seared fish pieces into the stew in a single layer, spooning broth over the top. Simmer gently for 3–5 minutes (slightly less than if the fish had gone in raw, since it's already partly cooked), until it flakes easily with a fork.

  • Rest before serving. Turn off the heat and let the stew sit for 5–10 minutes. This lets the sauce settle and the fish finish gently, without any risk of overcooking.

  • Finish with lime. Squeeze fresh lime juice over the top after the heat is off, not before — cooked lime juice can taste flat or slightly bitter compared to a fresh squeeze at the end.

Storage

  • Refrigerate in an airtight container for up to 2–3 days. Reheat gently on the stovetop over low heat to avoid overcooking the fish further or breaking the coconut milk. For make-ahead convenience, prepare the stew base without the fish up to 3 days in advance, then sear and add the fish fresh when you're ready to serve.

Common Mistakes and How to Avoid Them

  • Boiling the stew once the fish is in: breaks the fish apart and toughens it. Keep it at a gentle simmer throughout.
  • Adding lime too early: dulls its brightness. Save it for right before serving.
  • Rushing the aromatic base: undercooked onions and garlic leave the whole stew tasting thin. Give them the full time to soften and turn fragrant.
  • Skipping the sear on the fish: loses a real layer of flavor that the fond adds to the base.
  • Overcooking the fish: since it’s already been seared, it needs less time in the simmering stew than raw fish would — check early rather than late.

What Is Pirão?

Pirão is a traditional accompaniment to moqueca — a thick, savory porridge made by stirring cassava flour into some of the stew’s broth until it thickens. It’s a classic way to use every bit of the flavorful sauce and adds a different texture alongside the rice. If you want the full traditional spread, serve pirão and farofa (toasted cassava flour) alongside the stew.

Frequently Asked Questions About Brazilian Fish Stew Recipe

A firm white fish that holds its shape under gentle heat — halibut, black cod, or sea bass are all good choices. Thicker cuts are more forgiving than thin fillets, which can dry out or fall apart faster.

Yes. Many Moqueca Capixaba versions skip dendê entirely, using olive oil and annatto for color instead. The flavor will be lighter and less rounded than the Bahian version, but still authentic to a different regional style.

Not inherently — heat is optional and usually comes from a small amount of jalapeño or malagueta pepper, easily adjusted or left out entirely.

Yes — this variation is called moqueca de camarão. Add shrimp at the very end of cooking and simmer just until pink, since overcooked shrimp turns rubbery quickly.

Rice is the classic base, since it soaks up the broth well. Pirão and farofa round out a more traditional spread, and crusty bread works well for mopping up extra sauce.

About 2–3 days, stored in an airtight container. Reheat gently to avoid overcooking the fish or splitting the coconut milk.

Conclusion

A great Brazilian fish stew recipe comes down to protecting the fish and building real flavor into the base before it ever goes into the pot. Sear the fish, keep the simmer gentle, let the stew rest before serving, and finish with lime at the very end. Get that rhythm down, and you can move between the rich, coconut-forward Bahian style and the lighter, tomato-bright Capixaba version depending on what you’re in the mood for.

Share this post: