If you’ve ever wanted to bring the flavors of Brazil into your kitchen, Moqueca Baiana or Brazilian Fish Stew from Bahia, is the perfect place to start.
Moqueca (pronounced “mo-KEY-ca”) is a fish stew oftentimes made with different types of seafood, simmered in a rich sauce made with coconut milk, tomatoes, bell peppers, lime juice and cilantro.
Although there are many versions of this dish in Brazil, they all feel hearty and light at the same time. One of the things I like the most about this recipe is the fact that it delivers the same bold flavors of a traditional curry but is made with a lot less ingredients, all of which are easy to find at any grocery store or supermarket.

⭐️ Brazilian Fish Stew: recipe at a glance
- One Pot Meal: This means less cleaning up and more time to actually enjoy dinner.
- Versatile: You can use different types of firm fish and/or seafood like shrimp, prawns, scallops, crab and/or lobster. You can also add other veggies you already have at home.
- Easy to Find Ingredients: This fish stew is made with simple pantry ingredients you may already have at home.
- Dietary: Pescatarian. Gluten-free and dairy-free.
🔎 Ingredients, Substitutions and Swaps
For the complete list of ingredients and exact quantities, check the printable recipe card below.
- Fish: Choose firm white fish such as mahi-mahi, seabass, cod, halibut, snapper, barramundi, black cod, monkfish or other firm fish that won’t dried up easily when simmered in the sauce. Thicker cuts are preferred as thin, delicate fillets tends to overcook and fall apart, hence not recommended. Salmon, can also be used but it changes the flavor profile a bit. Shrimp, prawns and scallops work great for this recipe.
- Coconut Milk: Full-fat coconut milk provide rich texture and the best flavor. Light versions can be used, but you’ll lose some of that creamy texture and epic flavor.
- Tomatoes: Fresh tomatoes are wonderful for this recipe. They add natural sweetness and a bit of acidity. Canned crushed tomatoes are also a good alternative, especially in the cooler months when fresh tomatoes aren’t at their peak of freshness.
- Lime Juice: Nothing compares to the flavor of fresh limes.
- Stock or Broth: I am not a big fan of canned fish stock so I often use chicken broth or vegetable stock. If you can find good fish stock from a trusted fish market, do that. It will definitely add the best flavor to the dish.
- Aromatics: Onions, red bell peppers, fresh garlic (sub with garlic paste), carrots. Make sure you cut the currots into small pieces (diced) so they cook quickly).
- Oil: Traditionally, Moqueca is made with palm oil, sometimes referred as dendê oil. This oil is widely used in many parts of Brazil. You can substitute this ingredient with coconut oil, olive oil, avocado oil or whatever oil you use at home.


🔎 How to Make Moqueca?
Scroll down to the printable recipe card below for detailed instructions and cooking times.
- Sauté Aromatics: In a sauté pan heat the oil and add the onions. Sauté for a few minutes, then add the red bell pepper and carrots.
- Marinate the Fish: Cut the fish into pieces of about 2-inch each. Toss the fish with lime juice, salt, and pepper. Allow to sit on the counter, covered while you make the sauce. You can also refrigerate the fish while marinades however, be careful not to allow the fish to marinade for more than 20 minutes as the lime juice will begin to “cook” the fish (like in ceviche) and change it’s texture.


- Add Garlic: Stir in the garlic and sauté until aromatic.
- Add Tomato Paste and Spices: Stir in the tomato paste, paprika, cumin, cayenne pepper (if using) and cook for a few seconds or until they become aromatic.


- Stir in the stock, tomatoes and coconut milk. Bring to a boil and reduce the heat to medium-low.


- Simmer for about 8 minutes or until the sauce starts thickening. Adjust seasoning to your taste with salt and black pepper and stir in about a tablespoon of fresh chopped cilantro.
- Nestle the fish in the stew, pouring the sauce over the fish if needed. Bring to a gentle simmer and cook for about 4-5 minutes or until the fish is cooked through and tender. You can check the thicker pieces of fish by piercing them with a fork. The fish is done when it flakes easily.
- Add chopped cilantro, scallions (if using) and a squeeze of lime juice. Taste and adjust seasoning.



🔪 Recipe Tips: Prep & Adjustments
- Choosing the right fish: Choose firm white fish fillets that are on the thicker side. Thin fillets will dry up when cooking in the sauce.
- Marinating the fish: Do not marinated the fish in lime juice for more than 20 minutes. Lime juice will start to “cook” the fish which changes its texture (like in ceviche).
- Using full-fat coconut milk: For best consistency, creaminess and flavor.
- Controversial Ingredient: Palm oil is a controversial product due to the fact that its production has caused deforestation and biodiversity loss. If you choose to use palm oil, choose brands that are RSPO-certified or palm oil from suppliers that belong to the Rainforest Alliance.
- Stock: Store bought fish stock isn’t always great in flavor, unless you purchase it from a fish market or specialty store. You can use chicken stock or vegetable broth if preferred.
🔎 How to Serve Brazilian Stew?
The classic way to enjoy Moqueca is served over plain white rice, to soak up the flavorful, rich sauce. In Brazil, it is often served with farofa, or toasted cassava flour, for a nutty crunch. Instead of rice, crusty bread is a great option that also help soaking up the delicious sauce.

Frequently Asked Questions
How does Brazilian fish stew taste like?
Brazilian fish stew aka Moqueca tastes similar to Thai red curry minus the spiciness. Although this curry is very flavorful, is much more mild in taste in comparison to Thai curries which are also made with more ingredients than this recipe.
Is Moqueca spicy?
Not usually. The heat is mild and comes from adding a jalapeño or a bit of cayenne, which you can adjust to your taste.
Can I make Moqueca with frozen fish?
Absolutely! Simply thaw out the fish completely and pat it dry before marinating.
Do I have to use palm oil?
No, palm oil is what’s used to make this dish in Brazil, but you can use other types of oil in its place – such as olive, avocado, or coconut oil.
✅ Make-Ahead, Storage, Freezing and Reheating
- Make-Ahead: You can prepare the sauce a day ahead and keep it in the fridge. When you are ready, reheat it and add the fish just before serving.
- Storing: Store leftovers in an airtight container in the fridge for up to 3 days. The flavors usually deepen overnight.
- Reheating: Warm slowly on the stovetop over low heat. If needed, add a splash of broth or coconut milk to loosen the sauce. It can also be reheated gently in the microwave in small intervals to prevent the fish from overcooking.

💛 Intentional Cooking
Your priorities, your recipe. Learn about Intentional Cooking.
Environment: Seafood’s environmental impact varies widely depending on species and fishing methods. Supporting well-managed fisheries and choosing lower-impact white fish helps protect marine ecosystems, reduces bycatch, and encourages more sustainable food systems for future generations.
Animal Welfare: When purchasing fish or seafood, look for wild-caught or sustainably raised fish and seafood free of antibiotics. Choosing responsibly sourced fish helps support healthier fishing practices and reduces harm to marine life.
Culture and Tradition: Moqueca is inspired by Brazilian coastal traditions, where fresh fish stews are prepared and enjoyed as community meals. Although this recipe may not be exactly like the one your great-grandma’s used to make, it’s our interpretation of this popular dish, inspired by the many generations who came before us.
👀 Take a look at these other fish recipes:
🛒 My Favorite Kitchen Essentials
-
HexClad Non-Stick Skillet set with Lids
The absolute best “indestructible” scratch-resistant non-stick skillet set on planet earth. My most used pans by far! The Hybrid 8-inch, 10-inch and 12-inch pans offer the ultimate in versatility when it comes to frying, sautéing, and simmering. 100% worth the investment. Whether you are an expert cook or someone who hardly sets foot in a…

Brazilian Fish Stew (Moqueca)
Ingredients
For the Fish
- 1 to 1 1/4 pound firm white fish such as halibut, sea bass, mahi-mahi, monk fish, barramundi, and/or snapper
- 1 1/2 tablespoons fresh lime juice
- Salt and ground black pepper
For the Stew
- 2 tablespoons coconut oil, olive oil, avocado oil or Brazilian palm oil (see notes)
- 1 small onion, finely diced (yellow, brown or red)
- 1 red bell pepper, seeded and diced or sliced
- 2 carrots, diced
- 1 small red or green jalapeño pepper, seeded and diced (or use 1/4-1/2 teaspoon ground cayenne pepper)
- 1/2 to 1 teaspoon sea salt or Kosher salt
- 4 garlic cloves, minced
- 1 tablespoon tomato paste
- 2 teaspoons paprika
- 1 teaspoon ground cumin
- 1 cup fish, chicken or vegetable stock or broth
- 2 fresh tomatoes diced or 1 (14-ounces) can crushed tomatoes)
- 1 (14-ounces) can coconut milk , use full-fat for best flavor and consistency
- Salt and ground black pepper to taste
- A squeeze of fresh lime juice, about 1 tablespoon or to taste, plus more for serving
- 3 tablespoons chopped fresh cilantro, plus more for serving
- 1 scallion, sliced, (optional)
- Lime wedges for serving, (optional)
Instructions
- Rinse and pat the fish dry with paper towels. Cut the fish into approximately 2-inch pieces.
- Place the fish in a medium bowl, drizzle it with fresh lime juice, season with salt and black pepper and toss gently to combine. Cover with plastic wrap and set aside. You can also refrigerate it for up to 20 minutes (but no longer as the lime juice will start cooking the fish).
- Heat the oil in a large sauté pan over medium-high heat. Add the onion, and sauté for about 3 minutes, stirring frequently. Stir in bell pepper, carrots and jalapeño (if using cayenne pepper, add it later with the rest of the spices.) Cook, stirring frequently for about 3 minutes or until the onion softens and becomes translucent. Stir in salt and garlic and sauté until aromatic, about 45 seconds.
- Stir in the tomato paste, paprika and cumin (plus cayenne pepper if using) and cook until aromatic, about 45 seconds to 1 minute.
- Stir in the stock, tomatoes and coconut milk. Bring to a boil and reduce the heat to medium-low. Simmer for about 8 minutes or until the sauce starts thickening. Adjust seasoning to your taste with salt and black pepper and stir in about a tablespoon of fresh chopped cilantro.
- Nestle the fish in the stew, pouring the sauce over the fish if needed. Bring to a gentle simmer and cook for about 4-5 minutes or until the fish is cooked through and tender. You can check the thicker pieces of fish by piercing them with a fork. The fish is done when it flakes easily.
- Add chopped cilantro, scallions (if using) and a squeeze of lime juice. Taste and adjust seasoning.
- Serve over white rice with lime wedges and additional chopped cilantro (optional)
Notes
- Fish: Choose firm white fish fillets that are on the thicker side. Thin fillets will dry up when cooking in the sauce. Good options are mahi-mahi, seabass, cod, halibut, snapper, barramundi, black cod and, monkfish Tilapia can be used if cut into thicker filets.
- Palm oil: Sometimes referred as dendê oil. This is a controversial product due to it’s impact on the environment. Use whatever oil you prefer. Some good options are olive oil, coconut oil and avocado oil.
- Tomatoes: You can use fresh tomatoes or canned crushed tomatoes.
- Coconut Milk: I use full-fat coconut milk for it’s creaminess and rich flavor.
- Fish Stock: Canned fish stock is usually not very good. If you can buy fish stock from a specialty shop, go for it, otherwise it’s best to use chicken broth.
- Marinating: Don’t marinate the fish for more than 20 minutes to prevent the lime juice from “cooking” the fish.
- Gentle Simmer: After adding the fish, you want to keep the stew at a gentle simmer to prevent the delicate fish from breaking up. Decrease the heat to low if needed.
- Storing: Store leftovers in an airtight container in the fridge for up to 3 days.
- Is this recipe authentic? This is my version of Brazilian fish stew. I am not claiming this is an authentic recipe because honestly, everyone has their own version of what authentic means. As always, I am trying to give other cultures the respect they deserve while sharing a sample of their cuisine to the world.















Leave a Reply