Moqueca is a Brazilian fish stew simmered in coconut milk, tomatoes, and bell peppers until the broth turns rich and just a little spicy. It is traditionally called moqueca de peixe, and it comes together in one pot in about 30 minutes, no dendê oil or hard to find ingredients required. I make mine with cod and olive oil instead of the traditional palm oil, since that is what is easy to find here in Toronto, and it is every bit as good.

A pot of Brazilian fish stew with plates beside it.
Want to save this recipe?
Just enter your email and get it sent to your inbox! Plus you’ll get new recipes from us every week!
Photo of Olivia in her kitchen, founder of Primavera Kitchen

The Dish That Tastes Like Home

I grew up watching my mother and my grandmother cook every single day, and moqueca was one of those dishes that showed up again and again, especially when the whole family gathered around the table. My grandmother always said to eat and appreciate food, and this stew is exactly that kind of dish. It is humble, it uses what is on hand, and it tastes like more effort went into it than it actually takes.

Now that I live in Toronto, I make moqueca when I want a taste of Brazil on a weeknight. Thomas asks for extra rice to soak up the broth every single time, which tells me it does not matter where you grew up, this stew wins people over.

I usually serve mine with a simple side of Fluffy White Rice, the same way my family always did, so every spoonful gets a little broth with it.

What is moqueca?

Moqueca (pronounced moh KEH kah) is a Brazilian fish stew made with white fish, coconut milk, tomatoes, and peppers, brightened with lime juice and fresh cilantro. It carries African, Indigenous, and Portuguese influence, which is part of what gives it that deep, layered flavor you do not get from a quick tomato based stew. Traditionally, moqueca is cooked in a clay pot, but a Dutch oven works just as well since it heats evenly and holds its temperature.

There are two main styles, from two different Brazilian states. Moqueca Baiana, from Bahia in the northeast, uses dendê oil, a red palm oil, along with coconut milk. Moqueca Capixaba, from Espirito Santo in the southeast, skips the coconut milk entirely and uses olive oil with a light tomato broth instead.

I make mine closer to the Baiana style since I love how the coconut milk makes the broth, but I use olive oil in place of dendê oil, since red palm oil is not something I can easily find here in Canada. If you want to try the Capixaba version instead, swap the coconut milk for an equal amount of tomato broth and you will get a lighter, brighter stew that is completely different but just as good.

Ingredients to make Brazilian Fish Stew

All ingredients and their amounts are listed in the recipe card at the bottom of this post.

Cod Fish: I use cod because it is a firm white fish that holds together in the pot instead of flaking apart while it simmers. Mahi mahi and sea bass work just as well if that is what you can find.

Pro Tip: buy fillets that are close to the same thickness so they finish cooking at the same time, and double check for pin bones before you start, since they are easy to miss and unpleasant to bite into. I have made this with frozen fillets plenty of times too. Just thaw them fully first, since frozen fish releases extra water that thins out the broth.

Coconut Milk: Full fat, canned coconut milk is what gives this stew its rich, slightly sweet base, which is the defining feature of Moqueca Baiana. I recommend avoiding the refrigerated carton kind, it is too thin and will not give you the same body. If you cannot have coconut, I have tested this with an equal amount of tomato broth instead (closer to the Moqueca Capixaba style), and it works well. The stew is lighter and less rich, but still full of flavor.

Bell Peppers: I use a mix of green, red, and yellow bell pepper for color as much as flavor. A stew this simple depends on the vegetables looking as good as it tastes, and the mix of colors makes it feel special without any extra effort.

Tomato Paste: This thickens the broth and deepens the flavor, but here is what I learned after making this dozens of times: whisk the tomato paste into the coconut milk before you pour it into the pot, rather than adding it separately. Several readers told me the same thing after making this recipe, and they are right. Stirring the paste in after the fish is already in the pot means more stirring, and more stirring is exactly what breaks the fish apart.

Ingredients needed to make moqueca de peixe.

How to Make This Moqueca Recipe

Before you start: have your fish marinating and your vegetables prepped, since once this stew starts cooking it moves fast and you will not have time to chop.

1. I season the fish first and let it rest. Place the fish in a large bowl with salt, pepper, and lime juice, then refrigerate for about 15 minutes. This step does double duty. The lime seasons the fish, and it also firms up the flesh slightly, which helps it hold together once it hits the simmering broth.

Four raw fish fillets, seasoned with salt and pepper, are placed in a white rectangular baking dish on a light gray textured surface—ideal for preparing a vibrant Brazilian Fish Stew.

2. I bloom the garlic and hot pepper in oil before adding anything else. A quick minute in warm olive oil is enough to release their flavor into the fat, which carries through the entire stew. Any longer and the garlic will start to burn and turn bitter, so keep an eye on it.

Chopped onions, peppers, and spices sizzling in oil at the bottom of a large white pot on a light countertop—a delicious foundation for an authentic Brazilian Fish Stew.

3. I spread diced tomatoes on the bottom of the pot.

A white pot with handles contains simmering tomato sauce with chunks of tomatoes and herbs, reminiscent of the flavorful base used in Brazilian Fish Stew, on a light gray surface.

4. I layer the peppers and onion in next, letting them soften slightly in the same oil before the fish goes in. This gives the vegetables a head start so they finish tender at the same time as the fish, instead of turning up half raw at the end.

A white pot filled with sliced red, yellow, and green bell peppers and onions, reminiscent of the vibrant ingredients used in a classic Brazilian Fish Stew, placed on a light gray surface.

5. I nestle the fish on top rather than stirring it in. Season again with a pinch of salt and pepper, then scatter the cilantro, parsley, and coriander over everything. Keeping the fish on top instead of buried and stirred is what keeps the fillets intact through the rest of cooking.

A white pot filled with raw white fish fillets, colorful sliced bell peppers, and chopped herbs on top, ready to be cooked—perfect for preparing a flavorful Brazilian Fish Stew.

6. I whisk the tomato paste into the coconut milk before pouring it over everything. This is the change I make every time now, after readers pointed out that stirring the paste directly into the pot means extra stirring, and extra stirring is what breaks up the fish. Whisking it in beforehand solves that completely.

Four pieces of white fish are simmering in a creamy yellow sauce with herbs and vegetables, reminiscent of a classic Brazilian Fish Stew, in a white, round Dutch oven on a light gray surface.

7. I bring it to a boil, then cover and drop it to a simmer for 15 minutes. You are looking for the onions to turn tender and the fish to turn opaque and flake easily. Resist the urge to stir during this window. The stew needs almost no help once it is covered, and every stir is a chance to break the fish apart.

8. I taste and adjust right at the end, since the coconut milk mellows the seasoning as it cooks and usually needs a little more salt or lemon juice than you would expect. Garnish with fresh cilantro and parsley before serving.

Overhead view of a pot of Brazilian fish stew.

Olivia's Recipe tips

Do not walk away once the stew is simmering. Fifteen minutes sounds like plenty of buffer, but this stew goes from perfectly cooked to overcooked fish fast. Set a timer instead of guessing.

Shrimp works beautifully in this recipe, but add it later. Since shrimp cooks in just a couple of minutes, I add it after the stew has simmered and the onions are already tender, rather than at the same time as the fish.

Moqueca Recipe (Brazilian Fish Stew)

3.75 from 179 votes
Author: Olivia Ribas
Servings4 People
Prep Time10 minutes
Cook Time15 minutes
Total Time25 minutes
Traditionally called moqueca de peixe, this Brazilian fish stew simmers white fish in coconut milk, tomatoes, and bell peppers. It comes together in one pot in about 30 minutes, no palm oil needed.

Video

Save this recipe
Enter your email and we’ll send it to you. Plus, you’ll get recipes & tips every week!

Ingredients 
 

  • 1 lb cod fish (or other firm white fish, like mahi mahi or sea bass) , rinsed and pin bones removed.
  • 2 tbsp lime juice
  • Salt and freshly ground black pepper to taste
  • 2 tbsp olive oil divided
  • 3 garlic cloves minced
  • 1 hot pepper finely chopped (optional)
  • 1 cup diced tomatoes (from a can)
  • 1 green bell pepper seeded and sliced
  • 1 red bell pepper seeded and sliced
  • 1 yellow bell pepper seeded and sliced
  • 1 medium white/yellow onion sliced
  • 1 small bunch of cilantro chopped
  • 1 small bunch of parsley chopped
  • 1 teaspoon coriander
  • 14 ounce coconut milk can
  • 1 ½ tbsp tomato paste

Instructions  

  • Place fish in a large glass bowl and season with salt, pepper and lime juice. Set aside in the fridge for about 15 minutes.
    Four raw fish fillets, seasoned with salt and pepper, are placed in a white rectangular baking dish on a light gray textured surface—ideal for preparing a vibrant Brazilian Fish Stew.
  • In a large Dutch oven pot (or clay pot), add 2 tablespoon of olive oil over medium heat. Add the garlic and hot pepper and cook for about 1 minute.
    Chopped onions, peppers, and spices sizzling in oil at the bottom of a large white pot on a light countertop—a delicious foundation for an authentic Brazilian Fish Stew.
  • Spread diced tomatoes on the bottom of the pot.
    A white pot with handles contains simmering tomato sauce with chunks of tomatoes and herbs, reminiscent of the flavorful base used in Brazilian Fish Stew, on a light gray surface.
  • Then, add bell peppers and sliced onions.
    A white pot filled with sliced red, yellow, and green bell peppers and onions, reminiscent of the vibrant ingredients used in a classic Brazilian Fish Stew, placed on a light gray surface.
  • Add the fish fillets and cilantro, parsley and coriander on top. Season with a pinch of salt and pepper again.
    A white pot filled with raw white fish fillets, colorful sliced bell peppers, and chopped herbs on top, ready to be cooked—perfect for preparing a flavorful Brazilian Fish Stew.
  • Whisk the tomato paste into the coconut milk until smooth. Pour the mixture over the fish and vegetables in the pot. Bring to a boil over medium-high heat. Then cover, lower the heat to a simmer and cook for 15 minutes, or until the onions are tender and the fish are fully cooked.
    Four pieces of white fish are simmering in a creamy yellow sauce with herbs and vegetables, reminiscent of a classic Brazilian Fish Stew, in a white, round Dutch oven on a light gray surface.
  • Taste and adjust seasonings if desired. Garnish with chopped fresh cilantro and parsley. Serve with rice and salad.
    A white pot filled with fish fillets in an orange creamy sauce, reminiscent of a classic Brazilian Fish Stew, is garnished with red bell pepper slices and fresh herbs. A plate with a fork and knife sits nearby on a light countertop.

Notes

To store: Keep this moqueca recipe in the fridge for up to 4 days in an airtight container. 
To reheat: Gently reheat the stew on the stovetop when ready to enjoy. 
To freeze: Always allow the stew to cool to room temperature before freezing. Freeze the soup in an airtight freezer-safe container for up to 3 months. Thaw in the fridge overnight before reheating.

Nutrition

Serving: 1/4, Calories: 368kcal, Carbohydrates: 18g, Protein: 25g, Fat: 22g, Cholesterol: 49mg, Sodium: 457mg, Potassium: 930mg, Fiber: 4g, Sugar: 7g

Nutrition information is automatically calculated, so should only be used as an approximation.

Did You Make This?

Follow @primaverakitchen on Instagram, snap a photo, and tag it #primaverakitchen. We’d love to see your recreation.

Olivia Ribas

Welcome

Hi, I'm Olivia


I’m so happy you’re here!! For the last 12 years, I’ve been sharing easy, quick, and family-friendly recipes like chicken, salmon, ground meat and pork chops (total reader favorites!), perfect for stress-free weeknight dinners made with fresh, seasonal ingredients.

Explore More

Leave a comment

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

Rate This Recipe:




3.75 from 179 votes (155 ratings without comment)

74 Comments

  1. Danielle says:

    Can you use tilapia??? 

    1. Olivia Ribas says:

      Absolutely you can 😉

  2. Deborah says:

    Great recipe. You can get red palm oil online for a fair price. My favorites are the West African brands, unbleached. Online stores that carry red palm oil include amazon.com and esty.com. There is a world of difference in the favor when authentic red palm oil is used. I omit the tomato paste, but I get it. I love using fresh tomatoes and red palm for color and most importantly, for taste. Your recipe made me hungry and brought back some great memories. I think I’ll make some this weekend.

    1. Olivia Ribas says:

      Great I love you love it. Yes you can buy palm oil online easily on Amazon.

  3. Ana says:

    This fish stew is delicious! I used haddock for the stew and added carrot quinoa salad. We couldn’t stop eating.
    Thank you Olivia for such a good recipe!

    1. Olivia Ribas says:

      You’re so welcome! I’m happy you liked it and yes this recipe is so good with haddock too 😉

  4. Skashoon says:

    I’d really like to try it. The problem is that I don’t yet have a ‘kitchen’ in my tiny house. I need countertops to do all the slicing, dicing and chopping. I’ll get there hopefully this summer.

  5. Julie says:

    Could you use Swai in this recipe? That’s the fish I currently have and am thinking about making this for tonight’s meal. (It looks amazing, btw!)

    1. Olivia Ribas says:

      Yes you can!

  6. Lillie Lettsome says:

    Looks very tasty would love to make

    1. Olivia Ribas says:

      You will love it!

  7. Curly says:

    I have spme leftover coiked cubed swordfish and this seems a good bet for using it. What do you think?

    1. Olivia Ribas says:

      You should use uncooked fish for this recipe.

  8. LynnNM says:

    Absolutely delicious!!!!! This is now on my “Make Once a Month” list of very favorite recipes!

    1. Olivia Ribas says:

      That’s awesome!

  9. Suzanne Graham says:

    This recipe is a total keeper! Easy and so delicious! Add a baguette and salad and it’s dinner!! Thank you!

    1. Olivia Ribas says:

      Aww your comment made me so happy! I’m glad you liked it!

  10. Jim says:

    Too many ads covering over the recipe (Best Buy in particular) makes the site hard to use while cooking. It makes me question coming back for other recipes.

    1. Olivia Ribas says:

      I’m so sorry you feel this way. I just would like to say that hope you understand that I’m only able to provide free content/recipes on this site because of the ads. But we are always talking to our ad network to see what we can do to give our readers a better experience on our site. Thanks for your feedback.

  11. Leila says:

    My boyfriend made it. Was absolutely delicious!!

    1. Olivia Ribas says:

      Awesome. Happy you both liked it.

    2. Sapenn says:

      I havent made it yet but I know this is going to taste wonderful
      I had something similar to this before
      It had yam and batata in it
      I will use cod

      1. Olivia Ribas says:

        Yes cod is the best for this recipe!

  12. jp says:

    Is there a substitution you’d recommend for coconut milk?

    1. Olivia Ribas says:

      The tradicional recipe is made with coconut milk. I’ve never made this recipe without coconut milk, but it may work with half-half or heavy cream.

  13. Mike Elder says:

    This recipe is impeccable! Bravo!
    IMHO, the wonderful flavor and and mouth feel of the moqueca is directly related to the quality and freshness of the seafood used. I’ve made this dish twice. Once with frozen pacific cod, and once with fresh Mahi-Mahi and fresh caught shrimp. Both were good dishes I would be proud to serve to anyone, but using the fresh ingredients caught a couple hours ago, and kept on ice was definitely superior by an order of magnitude. I recommend this recipe to anyone. It’s so quick and easy to make “right”, I think of it as a casual diner.

    1. Olivia Ribas says:

      I totally agree! Fresh seafood is better for this recipe. So happy you liked it!! Thank you so much for your awesome review and for stopping by!

  14. Tisse says:

    An excellent option for this recipe is red snapper.

    1. Olivia Ribas says:

      Yes absolutely!

  15. Stephanie E Proctor says:

    Absolutely delicious! Easy to prepare and I look forward to making this again!

    1. Olivia Ribas says:

      So glad you enjoyed this recipe!

      1. Suzanne Graham says:

        Well, here’s the thing: a tube of tomato paste looks almost exactly the same as a tube of anchovy paste. It is best to actually read the label before squirting the product into your fish stew. I will say this… It was still absolutely delicious!

  16. Lisa says:

    What a great, tasty recipe! So easy that I’ve made it a few times – everyone I made this for has raved about the flavor. I even made it camping in a Dutch over on a camp stove and it turned out just fine.

    A true keeper – thanks for the recipe

    1. Olivia Ribas says:

      That’s awesome! Happy you liked it!

  17. Judith says:

    This recipe has become one of my favorites. I could eat it every week. I am making it again today. This time I am using 0.5# fish and 0.5# Argentinian shrimp.
    I have 1 question: the recipe calls for 3T of olive oil divided and 2T are for sautéing the garlic and pepper. Where is the other T of olive oil used? What did I miss?

    1. Olivia Ribas says:

      It was just a typo. We just fixed it on the recipe card. Thank you for pointing it out.

  18. Beverly Williams-Hawkins says:

    I haven’t made this dish yet but I’m going to. I wonder if halibut would work?

    1. Olivia Ribas says:

      Yes it would totally work!

  19. HF says:

    I used tilapia and it was fire.

    1. Olivia Ribas says:

      Yes you can make this recipe with tilapia too.

  20. John A OHern says:

    Just amazing. Put it on a bed of brown rice and had it with a crust of toasted artisan bread rubbed with garlic. Also gave it a light sprinkle of crushed red pepper. Whew. My wife and I just loved it.

    1. Olivia Ribas says:

      Your meal combination sounds absolutely delicious! I’m delighted to hear that you and your wife enjoyed the dish with the bed of brown rice, garlic-rubbed artisan bread, and a touch of crushed red pepper. Thanks for sharing your creative twist on the recipe, and I’m glad it turned out so well!