This Brazilian Fish Soup recipe or Brazilian Moqueca soup recipe has a rich, salty broth, a robust tomato presence, and melt-in-your-mouth pieces of flaky, buttery white fish for a delicious soup!
(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.
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?
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.
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 🙂
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!
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.
Here’s the Moqueca Recipe!
Brazilian Fish Soup Recipe (Moqueca Recipe)
- 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/orange/yellow
- 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
- 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.
- Fifteen 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.
- 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 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.
- 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.