Brazilian Fish Stew (Moqueca Baiana) Recipe
Introduction
Brazilian Fish Stew, or Moqueca Baiana, is a vibrant and comforting dish bursting with tropical flavors. This hearty stew combines tender white fish with coconut milk, tomatoes, and aromatic spices for a deliciously rich meal perfect for any occasion.

Ingredients
- 1 lb (500g) firm white fish fillet, skin removed, cut into 1″ (2.5cm) cubes
- 1 tbsp lime juice
- 1/4 tsp salt
- Black pepper, to taste
- 1 tbsp olive oil
- 1 1/2 tbsp olive oil or coconut oil
- 2 garlic cloves, minced
- 1 small onion (brown, yellow, or white), finely diced
- 1 large red capsicum (bell pepper), halved and sliced
- 1 1/2 tsp sugar
- 1 tbsp cumin powder
- 1 tbsp paprika
- 1 tsp cayenne pepper (optional)
- 1/2 tsp salt
- 14 oz (400ml) full-fat coconut milk
- 14 oz (400ml) canned crushed tomatoes
- 1 cup fish broth or stock (or chicken or vegetable broth)
- 1-2 tbsp lime juice, plus more for serving
- 3 tbsp roughly chopped fresh cilantro (coriander), plus more for garnish
Instructions
- Step 1: In a bowl, combine the fish cubes with 1 tbsp lime juice, 1/4 tsp salt, a pinch of black pepper, and 1 tbsp olive oil. Cover and refrigerate for 20 minutes to marinate.
- Step 2: Heat 1 tbsp olive oil in a large skillet over high heat. Add the marinated fish and cook just until golden brown and cooked through, about 2-3 minutes per side. Remove and set aside.
- Step 3: Reduce heat to medium-high. In the same skillet, heat 1 1/2 tbsp olive or coconut oil. Add the minced garlic and diced onion, cooking for about 1 1/2 minutes until the onion becomes translucent.
- Step 4: Add the sliced red capsicum and cook for another 2 minutes, stirring occasionally.
- Step 5: Stir in sugar, cumin, paprika, cayenne pepper (if using), and 1/2 tsp salt. Then add the coconut milk, crushed tomatoes, and fish broth. Bring the mixture to a simmer.
- Step 6: Reduce heat to medium and let the stew cook gently for 15 to 20 minutes, allowing it to thicken and the flavors to meld. Taste and adjust salt and pepper as needed.
- Step 7: Return the cooked fish to the skillet and gently reheat in the broth for about 2 minutes.
- Step 8: Remove from heat and stir in 1 to 2 tbsp lime juice for brightness.
- Step 9: Garnish with fresh cilantro and serve hot with rice or lime-flavored rice. For a low-carb option, try serving with cauliflower rice.
Tips & Variations
- Use firm white fish such as cod, snapper, or halibut to prevent the fish from breaking down in the stew.
- Full-fat coconut milk adds richness, but light coconut milk can be used for a lighter version.
- Adjust cayenne pepper to control the heat level, or omit it for a milder stew.
- Adding fresh lime juice at the end brightens the flavors and balances the richness.
- For extra depth, include sliced tomatoes or fresh herbs like basil along with cilantro.
Storage
Store leftover fish stew in an airtight container in the refrigerator for up to 2 days. Reheat gently on the stove over low heat to avoid overcooking the fish. This stew is best enjoyed fresh but can also be frozen for up to 1 month. Thaw in the refrigerator before reheating.
How to Serve

Serve this delicious recipe with your favorite sides.
FAQs
Can I use frozen fish for this stew?
Yes, frozen fish can be used, but make sure it is fully thawed and patted dry before marinating and cooking to avoid excess moisture in the stew.
What can I serve with Moqueca Baiana?
This stew pairs wonderfully with white rice, lime rice, or even cauliflower rice for a low-carb option. A side of crusty bread also works well to soak up the flavorful broth.
Print
Brazilian Fish Stew (Moqueca Baiana) Recipe
- Total Time: 50 minutes
- Yield: 4 servings 1x
Description
Brazilian Fish Stew, or Moqueca Baiana, is a vibrant and fragrant seafood dish featuring tender white fish simmered in a rich, spiced broth of coconut milk, tomatoes, and bell peppers. Infused with lime juice, garlic, and fresh cilantro, this stew offers a delicious taste of Bahia’s coastal flavors, perfect served with rice or a low-carb alternative like cauliflower rice.
Ingredients
Fish Marinade
- 1 lb / 500g firm white fish fillet, no skin, cut into 1“/2.5cm cubes
- 1 tbsp lime juice
- 1/4 tsp salt
- Black pepper, to taste
- 1 tbsp olive oil
Stew Base
- 1 1/2 tbsp olive oil or coconut oil
- 2 garlic cloves, minced
- 1 small onion, finely diced (brown, yellow, or white)
- 1 large red capsicum / bell pepper, halved and sliced
- 1 1/2 tsp sugar (any kind)
- 1 tbsp cumin powder
- 1 tbsp paprika
- 1 tsp cayenne pepper (optional)
- 1/2 tsp salt
- 14 oz / 400ml coconut milk (full fat preferred)
- 14 oz / 400ml canned crushed tomatoes
- 1 cup fish broth/stock (or chicken or vegetable stock)
- 1 – 2 tbsp lime juice, plus more for serving
- 3 tbsp roughly chopped fresh cilantro / coriander, plus more for garnish
Instructions
- Marinate the Fish: In a bowl, combine the cubed fish with 1 tbsp lime juice, 1 tbsp olive oil, 1/4 tsp salt, and black pepper to taste. Cover the bowl with cling wrap and refrigerate for 20 minutes to allow the flavors to penetrate the fish.
- Cook the Fish: Heat 1 tbsp olive oil in a large skillet over high heat. Add the marinated fish cubes and cook until just cooked through and lightly golden brown on the outside, about 2-3 minutes per side. Remove the fish from the skillet and set aside.
- Prepare the Stew Base: Reduce the heat to medium-high and add 1 1/2 tbsp olive oil or coconut oil to the same skillet. Add the minced garlic and diced onion, cooking for about 1 1/2 minutes until the onion starts becoming translucent.
- Add Bell Peppers and Spices: Add the sliced red capsicum (bell pepper) and cook for an additional 2 minutes. Stir in the sugar, cumin powder, paprika, cayenne pepper (if using), and 1/2 tsp salt until fragrant and well combined.
- Add Liquids: Pour in the coconut milk, crushed tomatoes, and fish broth/stock. Stir to combine and bring the mixture to a gentle simmer.
- Simmer the Stew: Reduce the heat to medium and let the stew simmer for 15 to 20 minutes, stirring occasionally, until the broth thickens and the flavors meld together. Taste and adjust salt and pepper if needed.
- Reheat the Fish: Return the cooked fish to the skillet and gently stir it into the broth. Allow it to reheat for about 2 minutes, being careful not to overcook the fish.
- Finish with Lime and Cilantro: Stir in 1-2 tbsp lime juice to brighten the stew’s flavors. Garnish with roughly chopped fresh cilantro before serving.
- Serve: Serve Moqueca Baiana hot with steamed rice or lime rice. For a low-carb option, pair with cauliflower rice to keep it light.
Notes
- Use firm white fish like cod, halibut, or snapper for best results.
- Full-fat coconut milk provides the richest, creamiest texture and flavor for the stew.
- Fish broth or stock enhances the seafood flavor, but chicken or vegetable stock are suitable substitutes.
- You can substitute olive oil with coconut oil to add a subtle tropical note authentic to Bahian cuisine.
- Adjust cayenne pepper according to your spice tolerance — it’s optional for mild heat.
- This recipe is best served fresh but leftovers keep well refrigerated for up to 2 days.
- Prep Time: 25 minutes
- Cook Time: 25 minutes
- Category: Main Dish
- Method: Stovetop
- Cuisine: Brazilian
Keywords: Brazilian fish stew, Moqueca Baiana, coconut milk fish stew, Bahian fish recipe, Brazilian seafood, spicy fish stew, one pot fish stew

