Moqueca Brazilian Fish Stew

Loading…

By Reading time

When the tomatoes begin to slump and release their juices, the whole pot starts smelling different: brighter, rounder, and ready for the coconut milk. That’s the moment this Moqueca Brazilian Fish Stew starts to come together. The fish gets a quick lime-and-garlic marinade first, then cooks gently in a broth built from tomatoes, peppers, and coconut milk. It’s a one-pot dinner for four, and the fish stays tender when you let the broth do the work instead of stirring it around.

I use firm white fish cut into generous pieces so it can nestle into the broth without falling apart. Cod, snapper, and halibut all work, and red palm oil gives the stew its distinctive Brazilian character; olive oil is a good alternative when palm oil isn’t available. The finished broth is savory, lightly tangy, and creamy without feeling heavy, with cilantro stirred in right at the end. Let the pot rest for five minutes before serving, and you’ll have a warm bowl with soft fish and a fragrant, tomato-rich broth.

Moqueca Brazilian Fish Stew with coconut tomato broth
“

Kitchen Note

Keep the fish in its lime marinade for 15 minutes, then add it to the pot. That short rest seasons the pieces without letting the acid start changing their texture.

Save this Moqueca Brazilian Fish Stew for a cozy one-pot dinner with tender fish and a creamy, tomato-rich broth.

Save to Pinterest

Why Moqueca’s Broth Starts Before the Coconut Milk

It’s easy to think of coconut milk as the whole broth, but the tomatoes do important work before they ever meet it. As they soften, their juices mingle with the onion and pepper, giving the pot a savory, slightly tangy base. That early layer keeps the finished stew from tasting like coconut milk with fish dropped into it. It also means each spoonful carries the flavor of the vegetables, not just the richness of the coconut.

The order matters because coconut milk is best treated gently. Once it’s in the pot, bring everything only to a gentle simmer before adding the fish. A hard boil isn’t needed to build flavor, and it makes it harder to cook delicate fish evenly. Let the tomatoes soften first, then give the fish room to cook quietly in the liquid. The result is a loose, spoonable stew rather than a thick sauce, with the fish still in substantial pieces.

What Gives This Fish Stew Its Character

Moqueca Brazilian Fish Stew colorful coconut fish stew
  • Firm white fish — Choose cod, snapper, or halibut, cut into even 2-inch pieces. Firm flesh holds its shape better than a delicate fillet, so the pieces are less likely to break as you serve the stew. Freshness matters more than choosing the priciest variety.
  • Red palm oil — This is the traditional choice and gives the base a distinctive character. Olive oil works when palm oil isn’t available, though the stew will have a milder, less traditional taste. Use either one to soften the vegetables.
  • Fresh lime and garlic — Fresh lime juice brings a clear, tart note to the fish, while minced garlic adds savory depth to the marinade. Fresh garlic has a brighter bite than jarred minced garlic; if that’s what you have, it will still season the fish, though the aroma will be softer.
  • Tomatoes — Ripe tomatoes soften quickly and release flavorful juices into the base. Choose tomatoes that yield slightly when pressed; pale, firm ones tend to contribute less sweetness and aroma. There isn’t a direct swap that gives quite the same fresh tomato texture here.
  • Canned coconut milk — The can is important because canned coconut milk gives the broth a fuller body than a carton of coconut beverage, which is generally more diluted. Light canned coconut milk can work for a less rich stew, but expect a thinner broth.
  • Jalapeño and cilantro — The seeded jalapeño adds a gentle warmth, while fresh cilantro brightens the pot at the finish. Cilantro is best added just before the resting time so its flavor stays fresh; dried cilantro won’t give the same lift.

Building the Broth Without Breaking Up the Fish

Season the Fish Briefly

Toss the 2-inch fish pieces with the lime juice, minced garlic, half of the kosher salt, and black pepper. Cover the bowl and refrigerate it for 15 minutes while you prepare the vegetables. Keep the pieces as intact as possible when tossing so the edges don’t get battered before cooking. Pour the marinade into the pot along with the fish later; it carries the lime and garlic flavor into the broth.

Soften the Vegetables in the Oil

Heat the red palm oil in a 5-quart Dutch oven over medium heat. Add the thinly sliced onion and red bell pepper along with the seeded, minced jalapeño, then cook for 5 minutes, stirring occasionally. The vegetables should soften and become fragrant, not brown at the edges. If the pan looks dry or the onion starts catching, lower the heat slightly rather than letting the vegetables scorch.

Let the Tomatoes Release Their Juices

Add the chopped tomatoes and the remaining kosher salt. Cook for 5 minutes, stirring occasionally, until the tomatoes begin to soften and their juices gather in the bottom of the pot. You’ll see the vegetables settle into a moist base instead of sitting in separate dry pieces. Stir in the coconut milk and bring the mixture to a gentle simmer before adding the fish.

Simmer Gently, Then Rest

Nestle the fish into the broth and pour in its marinade, then cover the Dutch oven. Simmer for 8 to 10 minutes, until the fish is opaque and the thickest piece reaches 145°F. Avoid stirring the pot while the fish cooks; moving the pieces around can break them apart before they’re set. Gently stir in the cilantro, take the pot off the heat, and let the stew rest for 5 minutes.

Simple Ways to Adjust This Moqueca

Use olive oil when palm oil isn’t available

Swap the red palm oil for olive oil in the same amount. The vegetables will still soften well, but the broth will have a gentler flavor and lose some of the distinctive character palm oil brings.

Make a milder pot by leaving out the jalapeño

Skip the seeded jalapeño for a gentler stew. You’ll lose its mild pepper warmth, but the tomato, onion, and cilantro still give the broth plenty of flavor.

Choose light coconut milk for a less rich broth

Use light canned coconut milk in place of regular canned coconut milk. The broth will be thinner and less creamy, but it still works with the fish and vegetables. Keep the heat gentle so the fish cooks without rough bubbling.

Reduce the added salt

For a lower-sodium version, leave out the added salt in both the fish marinade and the tomato base. The lime, garlic, and cilantro will still add plenty of brightness, though the stew will taste less seasoned.

Storage and Reheating

  • Refrigerator: Cool and refrigerate leftovers within 2 hours in a shallow, airtight container. They keep for 3 to 4 days; the fish will soften a little as it sits.
  • Freezer: Freeze in an airtight freezer-safe container for up to 2 months for best quality. Thaw overnight in the refrigerator; the coconut broth may separate slightly and the fish texture may be softer after thawing.
  • Reheating: Warm gently in a saucepan over low heat, stirring carefully, until the leftovers reach 165°F. Avoid a hard boil, which can toughen the fish and make the broth less smooth.

Questions That Come Up When Making Moqueca

Can I use frozen fish for Moqueca?+

Yes. Thaw it completely in the refrigerator first, then drain away any liquid and cut it into even pieces before adding the lime, garlic, salt, and pepper. Partly frozen fish cooks unevenly and can water down the broth.

Can I prepare the vegetables ahead of time?+

Yes. Slice the onion and bell pepper and chop the tomatoes ahead, then refrigerate them in a covered container until you’re ready to cook. Keep the fish separate and start its lime marinade shortly before it goes into the pot.

Can I use a regular pot instead of a Dutch oven?+

A heavy-bottomed pot with about a 5-quart capacity will work. A lighter pot may heat less evenly, so keep the burner at medium for the vegetables and lower it if they start browning before they soften.

How do I keep the fish pieces from breaking apart?+

Use firm fish, cut pieces evenly, and leave them nestled in the broth while they cook rather than stirring them. When serving, lift the fish carefully with a broad spoon so the pieces stay intact.

Moqueca Brazilian Fish Stew

Moqueca Brazilian fish stew simmers firm white fish in coconut milk with tomatoes, peppers, and red palm oil. Lime-marinated fish stays tender in a gently simmered broth finished with fresh cilantro.
Prep Time 15 minutes
Cook Time 20 minutes
Marinating and resting 20 minutes
Total Time 55 minutes
Servings: 4 servings
Course: Dinner
Cuisine: Brazilian
Calories: 430

Ingredients
  

  • 1.5 lb firm white fish fillets such as cod, snapper, or halibut; cut into 2-inch pieces
  • 1 lime juiced
  • 2 cloves garlic minced
  • 1 tsp kosher salt divided
  • 0.25 tsp black pepper
  • 2 tbsp red palm oil (dendê), or olive oil if unavailable
  • 1 yellow onion medium, thinly sliced
  • 1 red bell pepper medium, thinly sliced
  • 1 jalapeño small, seeded and minced
  • 3 tomatoes medium, chopped
  • 1 can (13.5 oz) coconut milk
  • 0.5 cup fresh cilantro chopped

Equipment

  • 1 5-quart Dutch oven

Method
 

  1. Toss the fish with the lime juice, garlic, 1/2 teaspoon of the salt, and the black pepper, then cover and refrigerate for 15 minutes.
  2. Heat the palm oil in a 5-quart Dutch oven over medium heat.
  3. Add the onion, bell pepper, and jalapeño and cook for 5 minutes, stirring occasionally, until softened.
  4. Add the tomatoes and remaining 1/2 teaspoon salt and cook for 5 minutes, stirring occasionally, until the tomatoes begin to soften and release their juices.
  5. Stir in the coconut milk and bring to a gentle simmer.
  6. Nestle in the fish and pour in its marinade, then cover and simmer for 8 to 10 minutes, until the fish is opaque and reaches 145°F in the thickest piece.
  7. Gently stir in the cilantro.
  8. Let the stew rest for 5 minutes before serving.

Notes

For tender fish, check that the thickest piece reaches 145°F. Refrigerate leftovers for up to 2 days; freezing is not recommended because the fish and coconut milk may change texture. Use olive oil if red palm oil is unavailable.

You might also like these recipes

Leave a Comment

Recipe Rating