Brazilian Fish Soup (Moqueca)

(pssst! This recipe is part of my Travel Month series here on The Wanderlust Kitchen. Be sure to check out the rest of the recipes, tips, and tricks I’ve posted this month!)

Moqueca (Brazilian Fish Soup) was by far my favorite thing we had to eat while we were in Brazil.

Brazilian Fish Soup (Moqueca) - quick and easy, but sooo delicious.

It has a rich, salty broth, a robust tomato presence, and melt-in-your-mouth pieces of flaky, buttery white fish. Basically, heaven on earth. I’m a total sucker for anything containing fish sauce + coconut milk. But you already knew that, didn’t you?

Brazilian Fish Soup (Moqueca) - this will become your favorite soup recipe!

While this dish is full of complex flavor profiles, it is very simple to make and takes very little active time. The fish likes to marinate for three hours in the fridge, so making this on a weekend may be your best bet. Or, do as I do,and put the fish in the fridge to marinate before you leave for work.

Brazilian Fish Soup (Moqueca) - this will become your favorite soup recipe!

I’ll confess that I’ve made this a few times without marinating the fish first – if you forget to marinate, just go ahead and make it. It will still be super yummy :)

Brazilian Fish Soup (Moqueca) - this will become your favorite soup recipe!

I like to use tilapia, but any firm white fish like snapper, grouper, or sea bass would work perfectly well. Fish is getting expensive, so buy whatever you can find at a good price!

Brazilian Fish Soup (Moqueca) - this will become your favorite soup recipe!

The only ingredient in this dish that you might not be familiar with is hearts of palm – hearts of palm is a vegetable that is harvested from the inner core of a palm or coconut tree. It is very mild and has the slightest tender-crisp crunch to it.

Many of the salads we had in Brazil were topped with chopped hearts of palm, and at first I was a little wary of eating it. I’m glad I did, because they are super yummy, and now I always have a jar in my fridge!

You can find it near the other marinated-vegetables (like artichokes, olives, etc.) if your regular old grocery store.

Brazilian Fish Soup (Moqueca) - this will become your favorite soup recipe!

Here’s Your Moqueca Recipe!

Brazilian Fish Soup (Moqueca)
Prep time
Cook time
Total time
Serves: 4
  • 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¼ pounds tilapia, cut into bite sized pieces
  • 1 cup chopped bell pepper (red/orange/yellow)
  • ⅓ 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
  • ⅓ 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
  1. In a shallow bowl, mix together half of the green onion, half of the yellow onion, half of the ginger, half 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.
  2. minutes prior to cooking, remove the fish from the fridge to let it come to room temperature. Preheat your oven to 350 degrees Fahrenheit. Lay out your fish on a large baking sheet and pour the lemon juice on top. Season with salt and pepper. Set aside.
  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.
  4. Add the remaining garlic and ginger to the pan and saute for one minute. Pour in the chicken broth and let it come to a full boil. Add the coconut milk and tomato paste and return to a boil. Immediately lower the heat to medium-low or so and gently simmer the sauce while you prepare the fish.
  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).
  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.
  7. Uncover the pan, add the hearts of palm and tomatoes, and cook, stirring occasionally, for 2 minutes.
  8. Stir in the fish sauce and black pepper, then serve topped with the remaining fresh cilantro.



  1. Karen says

    Made this for dinner tonight, used tilapia. It was fantastic. I walked by the kitchen after dinner and saw my 9 yr old tipping up her bowl to drink the last bit of broth. She is quite picky but has gobbled up the last 2 recipes from your blog. I served it with a sliced and toasted “artisan” loaf from the grocery store.

  2. Denise says

    Never fails, every recipe from your blog is a home run! It’s over 100 degrees here in St. Louis, but yep, I made Brazilian Fish Soup tonight and it was incredible!!!!

    • says

      I’m so glad you liked it! That’s one of our favorites, too. Sometimes soup on a hot day just hits the spot! It was certainly warm in Buzios when we ate that on our honeymoon!

  3. Doris Mullen says

    I added shrimp and it was simply fabulous. We all just loved it and ate it for several meals this week.

Speak Your Mind