Skip to content
braziliandinner✨ New

Moqueca de Peixe (Brazilian Fish Stew with Coconut Milk)

White fish simmered in a vibrant coconut milk and palm oil sauce with peppers and tomato, a Bahian coastal classic.

Prep
25 min
Cook
30 min
Servings
4
Difficulty
Medium
4.6
Sign in to rate
#brazilian#bahia#fish#coconut-milk#stew#dinner

About This Recipe

Moqueca comes from Bahia in northeastern Brazil, a region with strong Afro-Brazilian culinary influence, where dende (palm oil) and coconut milk combine to give the stew its distinctive orange color and rich, slightly nutty flavor. Firm white fish is marinated briefly in lime juice and garlic before being layered with sliced peppers, onion and tomato in a wide, shallow clay pot traditionally used for the dish, then simmered gently in coconut milk until the fish is just cooked through. A drizzle of dende oil stirred in at the very end gives the stew its characteristic color and a distinct flavor found in few other cuisines, traditionally served with white rice and a side of farofa to soak up the vibrant sauce.

Ingredients

Serves 4

  • 800 gfirm white fish fillets(such as snapper or halibut)
  • 3 tbsplime juice
  • 4 clovesgarlic(minced)
  • 1 tspsalt
  • 2 tbspolive oil
  • 1onion(sliced)
  • 1red bell pepper(sliced)
  • 1green bell pepper(sliced)
  • 3tomatoes(sliced)
  • 400 mlcoconut milk
  • 2 tbspdende (palm) oil
  • 1/4 cupchopped cilantro

Instructions

  1. 1

    Marinate the fish

    Toss fish fillets with lime juice, half the garlic and salt; let marinate 20 minutes.

  2. 2

    Build the base

    Heat olive oil in a wide, shallow pan and cook onion, peppers and remaining garlic until just softened, about 8 minutes.

  3. 3

    Layer

    Layer half the vegetable mixture in the pan, top with the marinated fish, then layer the tomatoes and remaining vegetables over the fish.

  4. 4

    Add coconut milk

    Pour the coconut milk over everything and bring to a gentle simmer.

  5. 5

    Simmer

    Cover and simmer gently 15-18 minutes until the fish is just cooked through and flakes easily.

    Simmer gently rather than boiling hard — a rolling boil can break the fish apart and make the coconut milk separate.

  6. 6

    Finish

    Stir in the dende oil and half the cilantro just before serving.

  7. 7

    Serve

    Serve hot over white rice, garnished with remaining cilantro.

Did you make this?

Rate it and help other cooks find the recipes that actually work.

One tap to sign in, and we'll save the rating you just picked.

Everything you need to plan your week — free

  • Meal calendar
  • Grocery list
  • AI recipe ideas

Track what you eat

Snap your meal to log calories and macros, run fasting timers and track water in the free SnapCal app.

Download Now

Pro Tips

  • →

    Use a firm white fish that holds together during a gentle simmer, such as snapper, halibut or grouper.

  • →

    Add the dende oil only at the very end — it's meant to flavor and color the finished stew, not cook down with everything else.

  • →

    Simmer gently throughout; a hard boil can cause the coconut milk to separate and the fish to fall apart.

Variations

  • •

    Moqueca capixaba, from Espirito Santo, omits the coconut milk and dende oil for a lighter, tomato-forward version.

  • •

    Shrimp can replace or be added alongside the fish for a mixed seafood moqueca.

  • •

    A vegetarian version uses hearts of palm and extra vegetables instead of fish.

Storage

Refrigerate up to 2 days in an airtight container; reheat gently over low heat to avoid overcooking the fish further.

History & Origin

Moqueca reflects the strong Afro-Brazilian culinary heritage of Bahia, where ingredients like dende oil and coconut milk, brought through the transatlantic slave trade and West African cooking traditions, became deeply woven into the region's identity.

Frequently Asked Questions

Can I make this without dende oil?

Yes, though you'll lose the distinctive color and flavor; some cooks use a mix of annatto oil and regular oil as an approximation.

What if I can't find a Brazilian clay pot?

A wide, shallow skillet or saute pan works just as well for the simmering process, even without the traditional cookware.

Why did my coconut milk separate?

The heat was likely too high — keep the simmer gentle throughout to prevent the coconut milk from breaking.

Nutrition Facts

Per serving (380g / 13.4 oz) · 4 servings total

Calories420kcal
Protein32g
Carbohydrates12g
Fat28g
Fiber3g
Protein32g
Carbs12g
Fat28g

Time Summary

Prep time25 min
Cook time30 min
Total time55 min

Have Questions?

Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.

Chat with AI Chef →

Community

Join the conversation

Sign in to leave a comment and save your favourite recipes