Brazilian Fish Stew (Moqueca)

Flaky fish, a savory broth, and tomatoes that pack a punch—this Brazilian Fish Stew (Moqueca) is a must-try for any seafood lover looking for something new!

A spoon dipping into a bowl of Brazilian Fish Stew.

Brazilian Fish Stew (Moqueca) was easily my favorite dish during our time in Brazil. It features a rich, salty broth, robust tomato taste, and tender, flaky white fish that melts in your mouth—a perfect combination of fish sauce and coconut milk. But you already knew that, didn’t you?

Overhead shot of Moqueca in a white bowl.

This recipe brings those vibrant tastes together effortlessly. While the dish has complex layers of taste, it’s surprisingly easy to make. The fish marinates in the fridge for about three hours, so preparing this on a weekend works best.

Origin of Moqueca

Moqueca is a traditional Brazilian fish stew from Bahia and Espírito Santo. Made with fresh fish or seafood, it’s simmered in a flavorful broth of coconut milk, tomatoes, onions, garlic, and cilantro. The Bahian version includes dendê oil for added richness and vibrant color.

Another side view of Brazilian Fish Stew in a white bowl.

Reasons to Love This Brazilian Stew

  • It’s even better the next day as the flavors deepen!
  • If you love seafood, this Brazilian seafood stew is a must-try!
  • This Moqueca is perfect for sharing at family dinners or get-togethers.

Recipe Ingredients

A close-up of Brazilian Fish Soup in a white bowl.

Tilapia – Thick cuts work best for even cooking. Make sure bones are removed to avoid choking hazards.

Tomato Paste – This thickens the stew while adding a concentrated, slightly tangy flavor.

Coconut Milk – Use full-fat coconut milk from a can for richness.

For a full list of ingredients and amounts, see the recipe card below.

Variations

Add Shrimp – If you love seafood, toss in some shrimp or mussels for extra variety. Just add them at the end so they don’t overcook.

Garnish – Top with fresh cilantro or scallions, and a drizzle of lime juice for a bright, fresh finish. Serve with lime wedges for an extra burst of citrus. For some heat, add a sprinkle of crushed red pepper flakes or paprika.

How to Make Brazilian Fish Stew (Moqueca)

Step #1: In a shallow bowl, mix together half of the green onion, half of the yellow onion, half of the ginger, half of the cilantro, half of the garlic, and 4 tablespoons of oil. Add the chunks of fish and toss to coat. Cover with plastic wrap and place in the fridge for 3 hours.

Step #2: 15 minutes prior to cooking, remove the fish from the fridge to let it come to room temperature. Preheat your oven to 350 degrees Fahrenheit (175 degrees Celsius). Lay out your fish on a large baking sheet and pour the lemon juice on top. Season with salt and pepper. Set aside.

Step #3: Add the remaining 2 tablespoons of oil to a large Dutch oven set over medium heat. Add the remaining green and yellow onions to the pan along with the bell peppers. Cook, stirring occasionally, for 3 minutes until softened.

Step #4: Add the remaining garlic and ginger to the pan and sauté for one minute. Pour in the chicken broth and let it come to a full boil. Add the coconut milk and tomato paste, then return to a boil. Immediately lower the heat to medium-low and gently simmer the sauce while you prepare the fish.

Step #5: Place your tray of fish in the oven and bake until the fish is almost but not quite cooked through, 8 to 12 minutes (depending on thickness).

Step #6: Add the almost-cooked fish and cooking juices into the simmering broth. Cover the pan, reduce the heat to low, and simmer until the fish is soft and tender, 5 to 7 minutes.

Step #7: Uncover the pan, add the hearts of palm and tomatoes, and cook, stirring occasionally, for 2 minutes.

Step #8: Stir in the fish sauce and black pepper, then serve topped with the remaining fresh cilantro.

Side view of a bowl filled with Brazilian Fish Stew.

Expert Tips

Be Gentle when Stirring – Once you’ve added the fish, try not to stir too much. Let it simmer gently to keep the fish from falling apart.

Balance the Broth – If your broth turns out a bit thin, mix a little cornstarch with water and stir it in towards the end to thicken things up.

Moqueca in a bowl with large pieces of fish and vegetables, garnished with fresh cilantro.

FAQs

Can I use a different type of fish besides tilapia?

Yes! Firm white fish like cod, snapper, halibut, haddock, or sea bass are great choices if you’re out of tilapia. Just make sure whatever fish you pick is firm enough to stay together during cooking.

What can I serve with Moqueca?

Serve Moqueca with fluffy white rice or farofa (toasted cassava flour) for a perfect match. Crusty bread is also great for soaking up all that delicious broth!

Storage Information

Store Brazilian Fish Soup leftovers in an airtight container, and they’ll stay fresh in the fridge for up to 2 days. You can freeze it in a freezer-safe container for up to 3 months.

To reheat, thaw overnight in the fridge and gently warm it on the stove over low heat. Avoid boiling to keep the fish tender.

Did you try this recipe? Leave a ⭐️ rating below and share it on Instagram, Facebook and Pinterest!

Moqueca served in a bowl.

Brazilian Fish Stew Recipe (Moqueca)

Flaky fish, a savory broth, and tomatoes that pack a punch—this Brazilian Fish Stew (Moqueca) is a must-try for any seafood lover looking for something new!
4.2 from 5 votes
Pin Rate
Course: Soups & Stews
Cuisine: Brazilian
Diet: Gluten Free, Dairy Free
Prep Time: 3 hours
Cook Time: 45 minutes
Total Time: 3 hours 45 minutes
Servings: 4
Calories: 403kcal
Author: Linda
Print (email required)

RECOMMENDED PRODUCTS

Ingredients

  • 1 small yellow onion - chopped, divided
  • 1 green onion - white and green parts, chopped, divided
  • 1- inch fresh ginger - peeled and minced, divided
  • 4 cloves garlic - minced, divided
  • 6 Tablespoons coconut - or olive oil, divided
  • 4 Tablespoons chopped cilantro - divided
  • 1 1/4 pounds tilapia - cut into bite sized pieces
  • 1 cup chopped bell pepper - red bell pepper, orange, or yellow bell pepper
  • 1/3 c. freshly chopped yellow bell pepper
  • 2 cups fat free - low-sodium chicken broth
  • 1 14 ounce can coconut milk
  • 2 Tablespoons tomato paste
  • 1 Tablespoon lemon juice
  • 1/3 cup canned or jarred hearts of palm - drained and sliced
  • 2 small tomatoes - seeded, and diced
  • 2 Tablespoons fish sauce
  • 1 teaspoon freshly ground black pepper
Save this recipe!
Get this sent to your inbox, plus get new and favorite recipes from us!
Please enable JavaScript in your browser to complete this form.

Instructions

  • In a shallow bowl, mix together half of the green onion, half of the yellow onion, half of the ginger, half of the cilantro, half of the garlic, and 4 tablespoons of oil. Add the chunks of fish and toss to coat. Cover with plastic wrap and place in the fridge for 3 hours.
  • 15 minutes prior to cooking, remove the fish from the fridge to let it come to room temperature. Preheat your oven to 350 degrees Fahrenheit (175 degrees Celsius). Lay out your fish on a large baking sheet and pour the lemon juice on top. Season with salt and pepper. Set aside.
  • Add the remaining 2 tablespoons of oil to a large Dutch oven set over medium heat. Add the remaining green and yellow onions to the pan along with the bell peppers. Cook, stirring occasionally, for 3 minutes until softened.
  • Add the remaining garlic and ginger to the pan and sauté for one minute. Pour in the chicken broth and let it come to a full boil. Add the coconut milk and tomato paste, then return to a boil. Immediately lower the heat to medium-low and gently simmer the sauce while you prepare the fish.
  • Place your tray of fish in the oven and bake until the fish is almost but not quite cooked through, 8 to 12 minutes (depending on thickness).
  • Add the almost-cooked fish and cooking juices into the simmering broth. Cover the pan, reduce the heat to low, and simmer until the fish is soft and tender, 5 to 7 minutes.
  • Uncover the pan, add the hearts of palm and tomatoes, and cook, stirring occasionally, for 2 minutes.
  • Stir in the fish sauce and black pepper, then serve topped with the remaining fresh cilantro.

NOTES

Store Brazilian Fish Soup leftovers in an airtight container, and they’ll stay fresh in the fridge for up to 2 days. You can freeze it in a freezer-safe container for up to 3 months.
To reheat, thaw overnight in the fridge and gently warm it on the stove over low heat. Avoid boiling to keep the fish tender.

Nutrition

Serving: 1serving | Calories: 403kcal | Carbohydrates: 18g | Protein: 34g | Fat: 24g | Saturated Fat: 18g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 2g | Cholesterol: 71mg | Sodium: 888mg | Potassium: 1267mg | Fiber: 3g | Sugar: 9g | Vitamin A: 1661IU | Vitamin C: 97mg | Calcium: 54mg | Iron: 2mg

Want more inspiration?

More Recipes You'll Love

About the Author

Linda

Hi, I'm Linda! Welcome to The Wanderlust Kitchen, where I share recipes and travel adventures from all around the world. Here you'll find a world of recipes you can have confidence in. These recipes celebrate authentic food heritage as well as modern techniques and ingredients. Be adventurous and try a new recipe and travel somewhere you have never been before.  Bon Appétit! Bon Voyage!  

4.20 from 5 votes (5 ratings without comment)

Join the Conversation

Rate and Comment

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

Please click on the Stars below to share your Rating of this Recipe




Comments:

  1. Do you discard to vegetables used during the marinating process or do you throw those into the pot as well during cooking? Thanks!