Why I Love This Recipe

I love how moqueca hits that perfect balance of comfort and brightness. The coconut milk brings creaminess, while lime and jalapeño cut through with zing and spice. The fish gently poaches in the flavorful broth, making it incredibly tender without any fuss. And when I spoon it over jasmine rice, it feels like I’m serving up a tropical escape in a bowl. Best of all, it’s quick enough for a weeknight but special enough for guests.

Ingredients

(Here’s a tip: Check out the full list of ingredients and measurements in the recipe card below.)

For the moqueca:

  • 2 tablespoons coconut oil

  • 2 tablespoons olive oil

  • 1/2 yellow onion, diced

  • 1 jalapeño, diced (seeds removed if too spicy)

  • 1 red bell pepper, sliced

  • 1 yellow bell pepper, sliced

  • 2 cloves garlic, finely chopped

  • 1 teaspoon sweet paprika

  • 1/4 teaspoon cayenne (or more to taste)

  • 1 teaspoon kosher salt

  • 1/2 teaspoon ground black pepper

  • 2 pounds cod or other firm white fish, cut into 1–2 inch pieces

  • 2 vine tomatoes, chopped with their juices (or 1 13-ounce can chopped tomatoes)

  • 2 cups seafood stock (or vegetable stock)

  • 13-ounce can full-fat coconut milk

  • 1 lime, zested and cut into wedges

  • 2 green onions, chopped (for garnish)

For the Brazilian rice:

  • 1/2 yellow onion, diced

  • 1 garlic clove, finely chopped

  • 1 cup jasmine rice, washed and rinsed

  • 2 cups vegetable stock

  • 1/2 teaspoon kosher salt (or to taste)

Directions

Moqueca:

  1. I heat coconut oil and olive oil in a large pot over medium heat. Once melted, I add the diced onion and jalapeño and sauté for 2–3 minutes until softened.

  2. I stir in the sliced bell peppers and sauté for another 2–3 minutes, letting them start to soften.

  3. I add garlic, paprika, and cayenne and sauté for 1–2 minutes more until everything is fragrant and the spices deepen in color.

  4. Next, I mix in the chopped tomatoes and their juices, cooking for 2–3 minutes to let them break down and blend with the aromatics.

  5. I pat the fish dry with paper towels, season with salt and pepper, and gently lay the pieces over the vegetables.

  6. Then I pour in the coconut milk and seafood stock, sprinkle in the lime zest, and season again with salt and pepper. I stir gently, being careful not to break up the fish.

  7. I cover the pot with the lid slightly ajar and bring everything to a simmer. I let it cook for 10–15 minutes until the fish is tender and the broth has thickened slightly.

  8. Once ready, I remove it from heat, taste, and adjust seasoning if needed. I serve it over jasmine rice and garnish with green onions and lime wedges.

Brazilian Rice:

  1. I bring a small pot to medium heat and add olive oil. Once hot, I sauté the onion until it’s lightly caramelized, about 3–5 minutes.

  2. I stir in the rinsed jasmine rice, coating each grain with the fragrant oil.

  3. I pour in vegetable stock, season with salt, and bring it to a boil. Then I reduce the heat to low, cover with a lid, and let it simmer for 20 minutes until the liquid is absorbed.

  4. Once done, I fluff the rice with a fork and it’s ready to serve under a ladle of moqueca.

Servings and Timing

This recipe serves 4 and takes about 30 minutes from start to finish — 10 minutes of prep and around 20 minutes of cooking.

Variations

  • I sometimes use shrimp or a mix of seafood like mussels and scallops instead of just white fish.

  • For more heat, I add an extra jalapeño or a few dashes of hot sauce at the end.

  • I’ve used cherry tomatoes when vine tomatoes aren’t on hand — they work beautifully and bring sweetness.

  • If I want a smoky twist, I add a bit of smoked paprika or grill the bell peppers before slicing.

  • I occasionally add thin slices of plantain on top as a garnish for an earthy sweetness.

Storage/Reheating

I store leftovers in an airtight container in the fridge for up to 2 days. To reheat, I warm the moqueca slowly on the stove over medium-low heat. I stir gently to avoid breaking the fish. The rice can be reheated in the microwave or steamed again with a splash of water. I don’t recommend freezing moqueca — the fish and coconut milk don’t hold up well to thawing.

FAQs

What kind of fish works best for moqueca?

I like using firm white fish like cod, halibut, or snapper — they hold their shape well and soak up the flavors beautifully.

Can I make this dish dairy-free?

Yes, it already is! Moqueca traditionally uses coconut milk, so there’s no dairy involved.

Is moqueca spicy?

It has a gentle heat from jalapeño and cayenne, but I adjust both depending on how spicy I want it. It’s easy to make it mild or fiery.

Can I prep it ahead of time?

I chop the vegetables and marinate the fish with lime zest ahead of time. When it’s time to cook, it all comes together quickly.

Do I have to serve it with rice?

Rice is traditional and helps soak up the broth, but I’ve also served it with crusty bread or even over quinoa for a different twist.

Conclusion

Moqueca is one of those dishes that feels like a celebration in a bowl — warm, comforting, and packed with bold flavor. I love how easy it is to bring together, and how every bite gives that balance of richness and brightness. Whether it’s a casual dinner or something more special, this Brazilian fish stew always impresses.

Print

Moqueca (Brazilian Fish Stew)

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

A rich and comforting coconut-based fish stew with bold spices, sweet peppers, and fresh lime—this classic Brazilian moqueca is perfect over fluffy jasmine rice.

  • Author: Sarah
  • Prep Time: 10 minutes
  • Cook Time: 20 minutes
  • Total Time: 30 minutes
  • Yield: 4 servings
  • Category: Main Course, Stew
  • Method: Simmered
  • Cuisine: Brazilian
  • Diet: Gluten Free

Ingredients

For the Moqueca:

2 tablespoons coconut oil

2 tablespoons olive oil

1/2 yellow onion, diced

1 jalapeño, diced (seeds removed for less heat)

1 red bell pepper, sliced

1 yellow bell pepper, sliced

2 cloves garlic, finely chopped

1 teaspoon sweet paprika

1/4 teaspoon cayenne pepper (adjust to taste)

1 teaspoon kosher salt

1/2 teaspoon ground black pepper

2 pounds cod (or firm white fish), cut into 1–2 inch pieces

2 vine tomatoes, chopped (or 1 can chopped tomatoes, 13 oz)

2 cups seafood stock (or vegetable stock)

1 (13 oz) can full-fat coconut milk

1 lime (zest and wedges for serving)

2 green onions, chopped (for garnish)

For the Brazilian Rice:

1/2 yellow onion, diced

1 clove garlic, finely chopped

1 cup jasmine rice, washed and rinsed

2 cups vegetable stock

1/2 teaspoon kosher salt (or to taste)

1 tablespoon olive oil

Instructions

Make the Moqueca:

In a large pot, heat coconut oil and olive oil over medium heat. Sauté the diced onion and jalapeño for 2–3 minutes until soft.

Add bell peppers and cook another 2–3 minutes.

Stir in garlic, paprika, and cayenne, sautéing for 1–2 minutes until fragrant.

Add chopped tomatoes and their juices, cooking for 2–3 minutes until softened.

Pat the fish dry and season with salt and pepper. Gently lay it over the vegetables.

Pour in coconut milk and seafood stock, add lime zest, and season again to taste. Stir gently to avoid breaking the fish.

Cover with a lid slightly ajar and simmer for 10–15 minutes, until fish is cooked through and flavors meld.

Remove from heat. Taste and adjust seasoning. Garnish with green onions and serve with lime wedges over rice.

Make the Brazilian Rice:

In a medium pot, heat olive oil over medium. Sauté diced onion until caramelized, about 3–5 minutes.

Add rice and stir to coat in the oil.

Pour in vegetable stock, season with salt, and bring to a boil.

Lower heat to simmer, cover, and cook for about 20 minutes until liquid is absorbed.

Fluff rice with a fork and serve with the stew.

Notes

Moqueca can also be made with shrimp or a mix of seafood.

For extra flavor, finish with a few dashes of hot sauce or fresh cilantro.

Use a clay pot for a more traditional presentation.

Similar Posts

Leave a Reply

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

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star