Brazilian Fish Stew (Moqueca)

Last updated on 03-May-2020

Hello, everyone! As you may already know, I was born and grew up in a coastal city called Vitoria, in Brazil’s southeast region, before coming to Canada in my 20’s. I don’t visit Brasil often, and while I like to experiment with different flavours and cuisines, I still cook Brazilian food at home somewhat regularly.

One of the traditional dishes from my home state is a simple but delicious fish stew called “Moqueca”. Every time I make it, I travel back in time and space to warm memories of the beach and the soft ocean breeze! The stew is quite delicious and I often serve it when we have company. Other Brazilians love it, and friends from other countries seem to like it just as much.

Now, I want to share my version of the recipe with you. It differs a little from the typical moquecas my mom still makes because it includes palm oil and coconut milk, which are not used in my home state of Espirito Santo. These two ingredients are common in my hubby’s home state of Bahia, so my recipe is a blend of his and my own traditions. I think it’s a great combination. Try and let me know!

Brazilian Fish Stew (Moqueca)

6-8 Servings


  • 800g haddock or halibut fillets (or other mild flavoured fish), frozen or fresh, cut into about 8-9 pieces
  • 400g large shrimp, already peeled and deveined (optional)
  • 1/4 cup lime juice
  • 2 lbs tomatoes
  • 2 medium to large onions
  • 4 cloves of garlic
  • 1/4 cup of palm oil (or more to taste, or use olive oil and paprika for colour)
  • 1 can coconut milk (about 400ml or 14oz)
  • 1/2 cup chopped fresh cilantro
  • Sea salt


  1. Thaw the fish and shrimp (if frozen). Squeeze a bit and remove excess water and pat dry with paper towels. Season with the lime juice and salt to taste. Reserve.
  2. Chop the onions finely, mince the garlic, and chop the tomatoes into medium dice size (1/2 inch)
  3. Heat the palm oil in a large heavy pan. Add the onions and cook until softened and translucid, add the garlic and cook for another minute. Add half of the diced tomatoes.
  4. Add fish fillets, spreading around the pan. Add shrimp (if using) on top of the fish and any leftover lime juice marinade.
  5. Cover with the rest of the tomatoes. Add the full can of coconut milk. Sprinkle with the cilantro and a pinch of salt.
  6. Cover and let it come to a boil. Move fish and shrimp very carefully to ensure everything is cooking evenly. Taste for seasoning and adjust if needed.
  7. When fish fillets are flaky and shrimp are opaque (cook about 3-5 mins), the dish is ready!

It’s actually very easy and quick to make and the video/pictures help illustrate the steps. Serve with rice, “pirão” (moqueca broth thickened with cassava flour) and hot sauce.


  • I make moqueca in a traditional clay pot, but any large and wide pot would work.
  • The dish yields plenty of broth, so make “pirão” to serve with it: collect broth with a ladle, transfer to a saucepan, bring to a boil, lower heat and add toasted cassava flour slowly while stirring vigorously until it starts thickening. The ideal consistency is creamy and resembles polenta. We LOVE pirão, so I often make extra broth just for that.
  • I usually make moqueca with white fish like haddock, halibut, sea bass, whiting or fresh cod, but tuna steaks (not too thick) work well too.
  • I buy palm oil at Caribbean or African food stores (don’t buy the “spicy” kind). Brazilian food stores may also have it, but usually in smaller bottles. If you can’t find palm oil, use coconut oil and some sweet paprika and a bit of turmeric (or Brazilian urucum powder) for colour.
  • Make it vegetarian by cooking the ingredients without the fish/shrimp and adding eggs to poach in the broth. It will be similar to Shakshuka.
  • Make it vegan by substituting the fish/shrimp with pieces of extra firm tofu, hearts of palm, cauliflower, medium-ripe plantain (a touch sweet), and/or other veggies of your choice.
  • Serve with cauliflower rice for a low-carb option. The regular dish, with pirão and rice, is a gluten-free meal.

Talk to us! | Fale conosco!