Moqueca (Brazilian Fish Stew in Tomato Coconut) Recipe

Brazilian Recipes

Baiana-Style Fish and Tomato Coconut Stew

Quick Answer Moqueca Baiana is a bright Brazilian stew where firm white fish, marinated in lime and garlic, is layered with sliced onions, tomatoes, and bell peppers, then simmered in coconut milk with dende palm oil and cilantro. Nothing is browned; the layers cook gently in their own steam until the fish is just done. It is halal as written and ready in about 45 minutes, served over rice.

Moqueca is one of those dishes that looks fancy but is quietly forgiving. There is no roux, no browning, and no searing; you build the pot in layers, pour in the coconut milk, and let a gentle simmer do the work. The reward is a golden, tomato-flecked broth that tastes of the coast, with fish so tender it barely holds together on the spoon.

The version most people picture is Baiana, from Bahia in the northeast, where dende oil and coconut milk give the stew its signature warmth and color. I learned early that patience is the whole trick here. The first time I rushed it to a hard boil, the coconut milk split into grainy curds and the fish went rubbery. Keep the heat low and it rewards you every time.

Ready in about 45 minutes  |  Serves 4  |  One pot

Prep Time
20 min
Cook Time
25 min
Total Time
45 min
Servings
4
Easy Halal Gluten-Free About 420 cal / serving
A clay pot of Brazilian moqueca with white fish, tomatoes, peppers, and coconut broth, served with rice and lime
Baiana-style moqueca, a clay pot of white fish in golden tomato-coconut broth with peppers and cilantro.

Why This Moqueca Works

Moqueca is built on a simple idea: gentle heat and good layering do more than aggressive cooking ever could. Because nothing is seared, the vegetables keep their sweetness and the fish stays silky. The tomatoes and peppers slump down into the coconut milk and give up their juices, and that liquid becomes the broth. You are not making a sauce and adding fish to it; the fish and the pot cook into one thing together.

The lime-and-garlic marinade is the quiet workhorse. Fifteen minutes in a little acid firms the fish slightly, seasons it all the way through, and keeps it from tasting flat once it is buried in the rich coconut broth. Skip it and the finished stew tastes one-note, no matter how good everything else is.

Dende oil, the deep-orange palm oil of Bahia, is what makes a moqueca taste like Bahia rather than a generic coconut curry. It brings a savory, almost nutty warmth and paints the broth a beautiful sunset color. A little goes a long way, and if you cannot find it, there is a workable swap in the notes below.

Best of all, it is a one-pot dinner that comes together fast. Once the fish is marinating, the whole thing is really just slicing vegetables and stacking them in a pot. The stove does the rest while you cook the rice.

Pro observation: The stew is ready when the fish turns from translucent to opaque white and flakes at the gentle nudge of a spoon. That usually happens 8 to 10 minutes after the coconut milk goes in, and it is your only real doneness cue.

Ingredients

Adjust servings above to rescale · Serves 4

Kitchen Measurement Converter

Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.

Want more options? Open the full tomato measurement converter.

Ingredient Notes & Substitutions

White Fish

Choose a firm, meaty white fish that holds together, such as cod, halibut, haddock, grouper, or tilapia. Cut it into large two-inch chunks so it does not fall apart in the simmer. Skinless fillets are easiest.

Dende (Palm) Oil

Dende gives the stew its color and Bahian character. If you cannot find it, use two tablespoons of olive oil plus a teaspoon of paprika and a pinch of turmeric for color. The flavor differs, but the dish still shines.

Coconut Milk

Use full-fat canned coconut milk for a silky, rich broth. Light coconut milk works but the stew will be thinner. Shake the can well before opening so the cream and water combine evenly.

Tomatoes and Peppers

Ripe, juicy tomatoes melt into the broth and give it body. Slice them into thick rounds. Red and yellow bell peppers add sweetness and color; a green pepper works too but tastes a touch more grassy.

Equipment

  • Wide pot or clay panela
  • Sharp knife and board
  • Mixing bowl for marinade
  • Can opener
  • Measuring spoons
  • Ladle or large spoon

Before You Start

1. Marinate the fish first. Toss the fish with lime, garlic, salt, and pepper before you do anything else, so it has at least 15 minutes to take on flavor while you prep the vegetables.

2. Slice everything the same thickness. Even onion, pepper, and tomato slices cook down at the same rate, giving you a tender, uniform stew rather than some raw and some collapsed.

3. Start the rice now. Moqueca is served over plain white rice, so get the rice going before you build the pot; both will finish at about the same time.

Step-by-Step Instructions

1

Marinate the Fish

Pat the fish chunks dry and place them in a bowl. Add the lime juice, minced garlic, one teaspoon of the salt, and the black pepper, and turn gently to coat. Cover and let it sit at room temperature for 15 minutes, or up to 30 minutes in the fridge, while you slice the vegetables. Do not marinate much longer, as too much acid can start to break the fish down.

2

Layer the Base

Pour the olive oil and half of the dende oil into a wide pot and swirl to coat the bottom; keep the heat off for now so nothing browns. Lay down a layer of onion rings, then half of the sliced red and yellow peppers, and half of the tomato slices. Scatter the paprika and the remaining half teaspoon of salt over the top.

A pot layered with onion rings, bell pepper slices, and tomato rounds drizzled with palm oil
Build the pot in layers with the heat off; moqueca is about gentle steaming, not browning.
3

Add the Fish and Remaining Vegetables

Arrange the marinated fish chunks in a single layer over the vegetables, then pour any leftover marinade on top. Cover with the remaining pepper and tomato slices so the fish is nestled between the layers. Scatter half of the chopped cilantro and green onions over everything.

4

Pour in the Coconut Milk

Shake the can well, then pour the coconut milk evenly over the layered pot. Now set the pot over medium heat and bring it up to a gentle simmer without stirring, which keeps the layers intact. Once you see small bubbles at the edges, lower the heat so it barely simmers.

Coconut milk being poured over a pot of layered fish, tomatoes, and peppers
Pour the coconut milk over the top and bring it up slowly; a hard boil will split it.
5

Simmer Gently Until the Fish Is Done

Cover the pot and let it simmer softly for 8 to 10 minutes. Resist the urge to stir; instead, tilt the pot now and then and spoon a little broth over the top. The moqueca is ready when the fish is opaque all the way through and flakes easily, and the peppers are tender. If you are using thicker fish, give it a couple of extra minutes and check the center.

6

Finish with Dende and Cilantro

Drizzle the remaining dende oil over the top for color and aroma, then scatter the rest of the cilantro and green onions. Taste the broth and adjust with a little more salt or a squeeze of lime if it needs brightening. Serve straight from the pot, ladled over steamed white rice, with lime wedges alongside.

Finished moqueca garnished with cilantro and dende oil, served with rice and lime
Finish with a drizzle of dende and a shower of cilantro just before serving over rice.

Chef’s Tips From Real Kitchen Testing

1

Never let the coconut milk reach a rolling boil. A bare simmer keeps the broth smooth and glossy; a hard boil splits it into grainy specks and toughens the fish.

2

Do not stir once the fish is in. Stirring breaks the delicate chunks apart. Tilt the pot and spoon broth over the top instead to baste it.

3

Keep the lime marinade to 15 to 30 minutes. Just enough acid seasons and firms the fish; too long and the flesh turns mushy before it even hits the pot.

Recipe Variations

Serving Suggestions

  • Fluffy steamed white rice to soak up the broth
  • Farofa (toasted cassava flour) for texture
  • Extra lime wedges and fresh cilantro
  • A simple green salad on the side

Nutrition Facts

Estimated nutrition per serving of moqueca
NutrientAmount per serving
Calories420
Protein34 g
Carbohydrates12 g
Fat27 g
Saturated Fat16 g
Fiber3 g
Sugar6 g
Sodium720 mg

Values are estimates per serving and vary with the exact ingredients and brands you use. Rice is not included.

Make-Ahead Tips

Moqueca is best eaten fresh, when the fish is at its most tender, but you can do most of the prep ahead. Slice the vegetables and marinate the fish up to a few hours in advance and keep them chilled and separate. When you are ready to eat, layer the pot and simmer, so the fish is only ever cooked once. Leftovers keep well and the broth deepens overnight, though the fish softens further on reheating.

Storage, Freezing & Reheating

Refrigerator
Keeps 2 days in an airtight container. Because it contains cooked fish, eat it promptly and do not leave it at room temperature for long.
Freezer
Freezing is not ideal, as cooked fish turns mealy and the coconut milk can separate. If you must, freeze the broth and vegetables and add fresh fish when reheating.
Reheating
Warm gently on the stove over low heat until just steaming. Avoid boiling so the fish stays tender and the coconut milk stays smooth.

Common Mistakes to Avoid

×Overcooking the fish. It needs only 8 to 10 minutes at a gentle simmer; leave it longer and it turns rubbery and dry.
×Boiling the pot hard. High heat splits the coconut milk into grainy curds and ruins the silky broth. Keep it at a bare simmer.
×Skipping the lime marinade. Those 15 minutes season the fish through and keep the finished stew from tasting flat.

Troubleshooting

Broth tastes flat? It usually needs salt and a fresh squeeze of lime stirred in at the end to lift all the flavors.

Coconut milk split or grainy? The pot boiled too hard. Lower the heat and gently stir in a splash of warm water to bring the broth back together.

Fish falling apart? The chunks were cut too small or stirred too much. Cut larger pieces next time and baste instead of stirring.

A Note on Bahian Cooking

Moqueca Baiana comes from Bahia on Brazil’s northeastern coast, where West African, Indigenous, and Portuguese traditions meet in the kitchen. Two ingredients define the style: coconut milk, which gives the stew its richness, and dende palm oil, whose deep orange color and savory aroma are unmistakable. Just as telling is what the cook does not do. There is no browning and no searing; the vegetables and fish are layered raw into the pot and steamed gently in their own juices and the coconut milk, so every element stays distinct and tender. It is a patient, low-heat method that trusts good ingredients to speak for themselves. If you enjoy gently spiced, coconut-rich tomato bowls, our creamy Indian tomato soup shares the same comforting warmth, and you can find more ideas in our full collection of tomato recipes.

Food safety: Cook the fish until it is opaque all the way through and flakes easily, which corresponds to an internal temperature of 145F (63C). Shrimp, if you use it, should turn pink and firm. Do not leave cooked seafood at room temperature for more than two hours.

Frequently Asked Questions

It is rich and creamy from coconut milk, savory and warm from dende oil, and bright from tomatoes, peppers, lime, and cilantro. The gentle steaming keeps the fish silky, so it tastes fresh and coastal rather than heavy.
Use a firm, meaty white fish that holds its shape, such as cod, halibut, haddock, grouper, or tilapia. Cut it into large two-inch chunks so it stays intact during the gentle simmer.
If you cannot find dende palm oil, use olive oil with a teaspoon of paprika and a small pinch of turmeric for color. The taste is milder and less earthy, but the stew is still delicious.
Keep the heat low and never let the pot reach a rolling boil. A bare simmer keeps the broth smooth. If it does split, lower the heat and whisk in a splash of warm water off the heat.
Yes. Add peeled shrimp in the last 4 to 5 minutes of simmering, since they cook fast. They are done when they turn pink and curl. You can use all shrimp or a mix of shrimp and white fish.
Yes. As written it uses only white fish and optional shrimp, with nothing haram and no intoxicants of any kind. It is naturally gluten-free too, and served over plain rice it makes a complete halal meal.

Last updated: September 23, 2026

Was this recipe helpful?
Thanks for rating!
Timer
0:00

Leave a Comment