Easy Brazilian Fish Stew Recipe with Coconut

Some fish stews taste “fine” but forgettable. A great Brazilian fish stew recipe (moqueca) does the opposite: it smells like the coast, tastes rich without being heavy, and somehow still feels bright and clean at the end. The trick isn’t fancy technique. It’s small choices that protect the fish, build a layered aromatic base, and finish with lime at exactly the right moment.

I’ve made moqueca both the rushed way and the careful way. When it’s right, the broth stays silky (not broken), the fish flakes but doesn’t fall apart, and every spoonful tastes like coconut milk, tomato, bell pepper, and herbs pulling in the same direction. Below, you’ll learn what moqueca is, why the classic regional styles matter, and how to make a weeknight version that still feels authentic.

What Is a Brazilian Fish Stew Recipe?

A Brazilian fish stew recipe most often refers to Moqueca, a Brazilian coastal fish stew where firm white fish is gently simmered in a fragrant base of onion, garlic, tomato, and peppers, then finished with herbs and lime. Many versions use coconut milk and Dendê (Brazilian red palm oil), while others lean on Urucum (annatto) for color and keep the broth lighter.

Moqueca sits inside the bigger world of seafood stew and Brazilian cuisine, but it has its own identity: it’s not a long-cooked chowder, and it’s not a rolling-boil soup. It’s about a controlled gentle simmer that keeps the fish intact and the sauce emulsified.

You’ll also see specific subtypes like Moqueca Baiana (from Bahia) and Moqueca Capixaba (from Espírito Santo). Both are “moqueca,” but the ingredient choices shift the entire character of the dish. That’s why one person’s moqueca tastes coconut-forward and golden, while another’s is tomato-bright and tinted with annatto.

How Moqueca Works: The Heat, the Base, and the Fish

Moqueca succeeds or fails on two things: the aromatic base and the temperature. Start by building a “raft” of aromatics (think onion, garlic, tomato, and bell pepper) that becomes the stew’s backbone. Those ingredients are meronyms of the dish: without them, the finished stew tastes thin and one-note.

Here’s what’s happening in the pot:

First, the aromatics cook in oil until they smell sweet and savory, not raw. This layered aromatics raft matters because it cushions the fish. Instead of fish sitting on a hot pan, it nestles into a soft bed that protects its surface and helps it cook evenly.

Then you add broth (say “fish stock” or “seafood stock” if you want to avoid the stock/shares confusion), tomatoes, and your spices. At this point, you want a simmer that looks like small bubbles lazily rising. A rolling boil is the enemy. Boiling turns firm fish into dry chunks and breaks delicate pieces into shreds.

Finally, coconut milk (if you’re using it) goes in, and only then does the fish go in. This order helps with coconut milk split prevention. Coconut milk can separate if it’s violently boiled or cooked too hard after the fish is added. A calm pot keeps it glossy.

Original angle most guides skip: treat your fish like it’s on a timer you can’t reset. The stew base can simmer a bit longer to soften carrots or reduce slightly, but once the fish hits the pot, you’re in a short cook time window. That mindset alone fixes most “my fish was tough” results.

If you want a reference point for traditional context, the Bahian style is often linked to coastal cooking around Salvador, while the Capixaba tradition is strongly associated with Vitória and the iconic panela de barro (a clay pot). That cookware isn’t just a vibe; it has a real panela de barro heat retention curve that stabilizes the simmer and makes overcooking less likely.

If you are making a Brazilian fish stew recipe, the right side dish makes all the difference. This rich, coconut-based seafood stew is traditionally served with fluffy white Rice, which helps soak up the flavorful broth and balance the spices. Pairing your Brazilian fish stew recipe with perfectly cooked Rice not only keeps the meal authentic but also creates a satisfying, complete plate that feels hearty without being heavy. The mild, tender grains complement the bold flavors of tomatoes, peppers, garlic, and fresh herbs, letting the stew shine while adding texture and substance. For the best results, serve the stew hot over a generous scoop of Rice and finish with fresh cilantro and a squeeze of lime for a bright, comforting meal.

Recipe

Brazilian Fish Stew Recipe (Moqueca)

Rating: 4.9 (240 reviews)
Author: Sylvia Fontaine
Prep: 20 minutes | Cook: 20 minutes | Total: 35 minutes
Yield: 4 servings

Description

This Brazilian fish stew recipe (Moqueca) is a coastal fish-and-coconut stew with a silky coconut milk broth, tomato, bell pepper, garlic, and a bright lime finish. It’s weeknight-fast, but it tastes like something you’d eat near the shore in Bahia or Espírito Santo.

Ingredients

Fish + quick marinade

  • 1 to 1 1/2 pounds firm white fish fillets (halibut, black cod, sea bass; thicker cuts hold up best)
  • 1/2 teaspoon salt
  • 1 lime (zest + juice)

Stew / sauce

  • 2–3 tablespoons coconut oil or olive oil (or Dendê / Brazilian red palm oil for a more traditional Bahian profile)
  • 1 onion, finely diced (red, white, or yellow)
  • 1/2 teaspoon salt, plus more to taste
  • 1 cup carrot, diced
  • 1 red bell pepper, diced (or thin strips if you like a bit more bite)
  • 4 garlic cloves, roughly chopped
  • 1/2 jalapeño, finely diced (optional)
  • 1 tablespoon tomato paste
  • 2 teaspoons paprika
  • 1 teaspoon ground cumin (or whole seed)
  • 1 cup fish stock (or chicken stock)
  • 1 1/2 cups diced tomatoes (fresh preferred)
  • 1 (14-ounce) can coconut milk (liquid + solids)
  • 1/2 cup chopped cilantro and/or scallions (or Italian parsley)
  • Lime wedges, for finishing

To serve

  • Cilantro rice, basmati rice, black rice, or quinoa
  • Optional: crusty bread to mop up the broth

Instructions

Marinate the fish (quick brine effect).

Rinse and pat the fish dry. Cut into 2-inch pieces. Place in a bowl and season with 1/2 teaspoon salt, zest from half the lime, and 1 tablespoon lime juice. Massage lightly to coat. Set aside while you build the aromatic base.

Build the aromatic base.

In a large sauté pan (or a clay pot like a panela de barro if you have one), heat oil over medium-high. Add onion and 1/2 teaspoon salt and sauté 2–3 minutes, until glossy.

Soften the vegetables.

Lower heat to medium. Add carrot, bell pepper, garlic, and jalapeño. Cook 4–5 minutes until the vegetables start to soften and smell sweet.

Bloom the spices and make the sauce.

Stir in tomato paste, paprika, and cumin. Cook for 30–60 seconds. Add stock and bring to a simmer, scraping up any flavorful bits. Add diced tomatoes, cover, and simmer on medium-low for about 5 minutes, or until carrots are tender.

Add coconut milk (keep the heat calm).

Stir in coconut milk (liquid and solids). Taste and adjust salt. Keep the pot at a gentle simmer — small bubbles, not a rolling boil — to prevent coconut milk from splitting.

Cook the fish gently.

Nestle the fish pieces into the stew in a single layer as much as possible. Spoon broth over the top. Simmer gently 4–6 minutes, or until the fish is opaque and flakes easily. Thicker pieces may need a couple extra minutes.

Fish flake integrity test

Press with a fork; it should separate into moist flakes without crumbling apart.

Rest, then finish with lime.

Turn off the heat and let the stew rest 5–10 minutes. This helps the sauce re-emulsify and keeps the fish tender. Squeeze fresh lime juice over the top after heat-off for the brightest flavor.

Serve

Serve over rice, garnish with cilantro/scallions, and add lime wedges. Optional: drizzle a little olive oil on top.

Notes (Authenticity + variations)

  • Moqueca Baiana (Bahia): Use Dendê (red palm oil) and coconut milk for a richer, deeper flavor and orange hue.
  • Moqueca Capixaba (Espírito Santo): Often dendê-free, and many versions skip coconut milk, using tomato-onion-garlic and sometimes Urucum (annatto) for color.
  • Make-ahead tip: Make the stew base (without fish) up to 3 days ahead. Reheat gently, then add fish right before serving.
  • Heat level: Jalapeño can be mild if deseeded, or you can skip it entirely.

Nutrition (per serving)

Serving size: ~4 oz fish + 1/4 of stew
Calories: 290 | Sugar: 4.2 g | Sodium: 429.9 mg
Fat: 17.4 g | Saturated fat: 9.3 g
Carbs: 11.4 g | Fiber: 2.3 g
Protein: 23.5 g | Cholesterol: 50.1 mg

The Two Classic Styles: Bahia vs. Espírito Santo

If you’ve ever wondered why moqueca recipes online look wildly different, it’s because two regions define the “classic” conversation.

Moqueca Baiana (Bahian moqueca)

Bahia is famous for a moqueca built on coconut milk and Dendê (also called red palm oil). This is the version many people expect when they search “Brazilian seafood stew.” Dendê is not subtle. It gives a nutty, vegetal aroma and that unmistakable orange-red hue. There’s a moment I think of as the “dendê aroma bloom window”: you heat it briefly with the aromatics so it perfumes the stew without turning bitter.

This style often feels richer and rounder. It pairs beautifully with rice because the sauce clings and soaks in.

Moqueca Capixaba (Espírito Santo moqueca)

Espírito Santo is known for a moqueca that’s typically dendê-free and often coconut-milk-free, leaning more on tomato, onion, garlic, and Urucum (annatto). Annatto is oil-soluble, so many cooks do a quick “annatto infusion for Capixaba color” by warming annatto in oil to tint it before building the base.

This is the contrast pair that helps you understand moqueca fast:

  • Coconut milk base (Baiana) vs. tomato-broth base (Capixaba)
  • Dendê-forward vs. dendê-free

Neither is “more real.” They’re different regional solutions to the same idea: a coastal fish stew with bold aromatics and careful heat control.

A quick note on terminology: you might see moqueca described as “fish-and-coconut stew,” “coastal fish stew,” or “fish coconut stew.” Those synonyms are helpful because you’ll run into them in old family recipes and modern blogs alike.

If a recipe says “reduce,” it means “evaporate to thicken,” not “make less spicy” or “lower a number.” If your broth is thin, you reduce it by simmering uncovered for a few minutes before the fish goes in, not after.

Resting Time and Sauce Recovery (The Secret Nobody Emphasizes)

Most moqueca guides focus on ingredients, which is fair. But what most guides don’t cover well is the “after” phase: resting time and how it changes the sauce.

Moqueca is part of Brazilian home cooking and Brazilian coastal cooking, and in many homes it’s served family-style straight from the pot. That tradition actually supports better texture. When you turn off the heat and let the stew sit for 5–10 minutes, you get what I think of as a stew rest to re-emulsify. The bubbling stops, the coconut milk (if used) settles back into a smooth broth, and the fish relaxes so it flakes cleanly instead of crumbling.

This is also where lime timing matters. “Brighten with lime” works best after heat-off. Lime added too early can taste harsh or slightly bitter once simmered, which is the opposite of the bright acidity you want at the end.

If you’re chasing extra authenticity and you can find it, finishing in a clay pot like a panela de barro makes this rest even more forgiving because the pot stays warm without aggressively boiling.

And since seafood handling matters, it’s worth following basic hygiene guidance aligned with organizations like the Brazilian Ministry of Health and frameworks such as the Codex Alimentarius: keep raw fish cold, avoid cross-contamination, and cook fish to safe doneness with gentle heat (not frantic boiling).

Practical Tips You Can Use Tonight

You don’t need a culinary degree to nail this. A few targeted moves make a big difference:

  • Choose firm fish on purpose. “Firm fish (cod-like)” holds together far better than “delicate fish (sole-like).” If you’re unsure, buy thicker fillets and cut them into 2-inch pieces for shape control.
  • Do a quick brine-style seasoning. Even a short fish marinade with salt and lime zest helps. Think of it as a quick brine for firming fillets: it tightens the surface slightly so it flakes cleanly later.
  • Cut vegetables with intention. Uniform dice for onion and tomato helps the base melt into a sauce. For bell pepper, try “pepper strip geometry for bite” if you like texture: thin strips stay present without feeling chunky.
  • Control your broth dilution threshold. Add stock gradually. If the stew looks thin before the fish goes in, simmer uncovered to reduce until glossy.
  • Use herbs like a pro. Don’t toss all the cilantro in early. Save most for the end, and try a cilantro stem micro-chop for depth (stems carry a lot of flavor), then add leaves right before serving.

Common Mistakes and How to Avoid Them

  1. Boiling the stew once the fish is in. A gentle simmer is right; a rolling boil is wrong. Boiling makes fish tough and can shred it into bits.
  2. Cooking the fish too long. This dish rewards short cook time. If you want a “fish flake integrity test,” press a piece with a fork: it should separate into clean flakes but still look moist.
  3. Adding lime too early. Low acidity while cooking is fine, but you want bright acidity at the finish. Lime timing after heat-off keeps it fresh.
  4. Breaking the coconut milk. Coconut milk split prevention is mostly about heat. Keep the pot calm, and don’t let it rage once coconut milk is in. If it starts to look separated, turn the heat down and let it rest; it often smooths out.

Frequently Asked Questions About Brazilian Fish Stew Recipe

The best fish for a Brazilian fish stew recipe is a firm white fish that holds its shape at a gentle simmer, like cod-type options, halibut, or sea bass. Thicker cuts are safer than thin fillets because they don’t dry out as fast. If you can only find delicate fish, keep pieces larger and cook just until flaky.

Yes, you can make moqueca without Dendê (red palm oil), and many Moqueca Capixaba versions are naturally dendê-free. If you want some of the color, you can use Urucum (annatto) by warming it in oil first, then building your aromatic base with onion, garlic, tomato, and bell pepper.

Moqueca can be spicy or mild, depending on the pepper. Many home cooks use a small amount of jalapeño for gentle heat, but it’s easy to adjust. For a mild pot, remove seeds and ribs, or skip it entirely and lean on paprika for warmth instead of heat.

Yes, shrimp works well in a Brazilian seafood stew, especially as Moqueca de Camarão or a mixed version like Moqueca Mista (peixe e camarão). Add shrimp at the very end and cook just until pink to avoid a rubbery texture. If you want both, cook fish first, then add shrimp for the last few minutes.

You typically serve moqueca over rice because it catches the sauce. Cilantro rice is classic, but basmati, black rice, or quinoa all work. Crusty bread is also great for mopping up the broth, especially if your stew is thick and coconut-forward.

Moqueca lasts about 2–3 days in the fridge if it’s cooled promptly and stored safely. Reheat gently so the fish doesn’t overcook and the sauce doesn’t split. Many people make the stew base ahead, then add fish right before serving for the best texture.

Wrap-Up: Make It Once, Then Make It Yours

A great Brazilian fish stew recipe isn’t about perfection, it’s about control: build a layered aromatic base, keep the pot at a gentle simmer, and finish with lime after the heat is off. Once you get that rhythm, you can move between Bahian richness (coconut milk and dendê) and Espírito Santo brightness (annatto and tomato) depending on what you crave.

If you cook this, take one note as you eat: did the fish stay tender, and did the broth taste balanced at the end? That little feedback loop is how moqueca becomes a repeat dish.

Share this post:
Santos Camila​

Santos Camila​

Through Brazil Eats, I share authentic Brazilian recipes inspired by family traditions and everyday cooking.

Leave a Reply

Your email address will not be published. Required fields are marked *