Menu

Bahian Moqueca Fish Stew With Coconut Milk and Palm Oil

Quick Recipe Version (TL;DR)

  • Yield: 4 servings
  • Prep Time: 25 minutes
  • Cook Time: 30 minutes
  • Total Time: 55 minutes

Quick Ingredients

  • 1 1/2 lb (680 g) firm white fish (cod, mahi-mahi, or halibut), cut into 1 1/2-inch chunks
  • 1 1/2 tsp kosher salt, divided (plus more to taste)
  • 1/2 tsp black pepper
  • 1 tbsp fresh lime juice (plus lime wedges to serve)
  • 2 tbsp dendê (red palm) oil, plus 1 tbsp to finish
  • 2 tbsp olive oil
  • 1 large yellow onion, thinly sliced
  • 4 garlic cloves, minced
  • 1 red bell pepper, thinly sliced
  • 1 yellow or orange bell pepper, thinly sliced
  • 2 medium tomatoes, diced
  • 1/2 cup (120 ml) fish stock or vegetable broth
  • 1 (13.5–14 oz / 400 ml) can full-fat coconut milk
  • 1/4 tsp smoked paprika (optional)
  • 1/2 cup chopped fresh cilantro, divided
  • Cooked white rice, for serving (1 1/2 cups dry rice)

Do This

  • 1) Toss fish with 1 tsp salt, pepper, and lime juice; rest 10 minutes.
  • 2) Start rice: simmer 1 1/2 cups rice with 2 1/4 cups water and 1/2 tsp salt, covered, 15 minutes; rest 10 minutes.
  • 3) In a wide pot, warm olive oil + 2 tbsp dendê over medium heat; sauté onion 5 minutes, then garlic 30 seconds.
  • 4) Add peppers, tomatoes, remaining 1/2 tsp salt; cook 6–8 minutes until softened and juicy.
  • 5) Pour in stock and coconut milk; gently simmer (don’t boil) 5 minutes.
  • 6) Nestle fish into the broth; cover and simmer on low 8–10 minutes until fish reaches 140–145°F (60–63°C).
  • 7) Stir in half the cilantro and the final 1 tbsp dendê; taste, adjust salt/lime, and serve over rice with more cilantro.

Why You’ll Love This Recipe

  • Big flavor, simple method: A fragrant coconut-tomato broth does most of the work.
  • Weeknight-friendly: Ready in under an hour, with minimal hands-on time.
  • Restaurant-style presentation: Bright colors from peppers and tomatoes, finished with fresh cilantro and dendê oil.
  • Gentle cooking: The fish stays tender and flaky because it poaches in the stew (no aggressive boiling).

Grocery List

  • Produce: 1 large yellow onion, 4 garlic cloves, 1 red bell pepper, 1 yellow/orange bell pepper, 2 medium tomatoes, 1 lime, 1 small bunch cilantro
  • Dairy: None
  • Pantry: Dendê (red palm) oil, olive oil, full-fat coconut milk (1 can), fish stock or vegetable broth, long-grain white rice, kosher salt, black pepper, smoked paprika (optional)
  • Seafood: 1 1/2 lb (680 g) firm white fish (cod, mahi-mahi, halibut, or similar)

Full Ingredients

Fish

  • 1 1/2 lb (680 g) firm white fish (cod, mahi-mahi, halibut, or grouper), cut into 1 1/2-inch (4 cm) chunks
  • 1 tbsp fresh lime juice
  • 1 tsp kosher salt
  • 1/2 tsp freshly ground black pepper

Moqueca Broth & Vegetables

  • 2 tbsp olive oil
  • 2 tbsp dendê (red palm) oil
  • 1 large yellow onion, thinly sliced
  • 4 garlic cloves, minced
  • 1 red bell pepper, thinly sliced
  • 1 yellow or orange bell pepper, thinly sliced
  • 2 medium tomatoes, diced (about 2 cups / 300 g)
  • 1/2 tsp kosher salt (plus more to taste)
  • 1/4 tsp smoked paprika (optional, for a gentle smoky note)
  • 1/2 cup (120 ml) fish stock or vegetable broth
  • 1 (13.5–14 oz / 400 ml) can full-fat coconut milk
  • 1/2 cup chopped fresh cilantro, divided
  • 1 tbsp dendê (red palm) oil, to finish
  • Lime wedges, to serve

Fluffy White Rice (to Serve)

  • 1 1/2 cups (300 g) long-grain white rice (such as jasmine or basmati)
  • 2 1/4 cups (540 ml) water
  • 1 tbsp olive oil (or neutral oil)
  • 1/2 tsp kosher salt
Bahian Moqueca Fish Stew With Coconut Milk and Palm Oil – Closeup

Step-by-Step Instructions

Step 1: Season the fish

Pat the fish chunks dry with paper towels (this helps the seasoning cling and keeps the stew from becoming watery). In a medium bowl, toss the fish with 1 tbsp lime juice, 1 tsp kosher salt, and 1/2 tsp black pepper.

Let the fish rest at room temperature for 10 minutes while you prep the vegetables. (If your kitchen is very warm, refrigerate the fish during this brief rest.)

Step 2: Cook the rice (hands-off while the stew simmers)

Rinse the rice in cool water until the water runs mostly clear. In a medium saucepan, combine the rinsed rice with 2 1/4 cups water, 1 tbsp oil, and 1/2 tsp salt.

Bring to a boil over high heat, then immediately reduce to low, cover tightly, and simmer for 15 minutes. Turn off the heat and rest (still covered) for 10 minutes. Fluff with a fork just before serving.

Step 3: Start the aromatic base

Use a wide, heavy pot with a lid (a Dutch oven works well). Heat 2 tbsp olive oil and 2 tbsp dendê oil over medium heat until shimmering, about 1 minute.

Add the sliced onion and cook, stirring occasionally, until softened and lightly translucent, about 5 minutes.

Step 4: Add garlic, peppers, and tomatoes

Add the minced garlic and stir for 30 seconds (you want it fragrant, not browned). Add the sliced bell peppers, diced tomatoes, remaining 1/2 tsp salt, and smoked paprika (if using).

Cook over medium heat until the tomatoes release their juices and the peppers begin to soften, about 6–8 minutes. Stir gently so the vegetables soften without turning to mush.

Step 5: Build the coconut-tomato broth

Pour in the 1/2 cup stock and scrape the bottom of the pot to lift any flavorful bits. Add the coconut milk and stir to combine.

Bring the mixture to a gentle simmer over medium-low heat. Aim for small bubbles and a steady, quiet simmer (roughly 190–200°F / 88–93°C). Simmer for 5 minutes to meld the flavors.

Step 6: Poach the fish gently (don’t boil)

Nestle the seasoned fish pieces into the simmering broth in a single layer as much as possible. Spoon a little sauce over the top. Cover the pot and keep the heat at low so the stew stays at a gentle simmer.

Cook until the fish is opaque and flakes easily, about 8–10 minutes, depending on thickness. For best accuracy, check the thickest piece with an instant-read thermometer; it should read 140–145°F (60–63°C).

Avoid vigorous stirring, which can break the fish apart. If you need to move pieces around, gently shake the pot or use a spoon to nudge them.

Step 7: Finish with cilantro and dendê, then serve

Turn off the heat. Stir in 1/4 cup of the chopped cilantro. Drizzle in the final 1 tbsp dendê oil for that signature Bahian aroma and color.

Taste the broth and adjust with additional salt (start with 1/4 tsp at a time) and/or an extra squeeze of lime, if you want it brighter. Serve the moqueca ladled over fluffy white rice, with the remaining cilantro sprinkled on top and lime wedges on the side.

Pro Tips

  • Keep it at a gentle simmer: Boiling coconut milk can cause it to separate and can also overcook the fish. Low and slow keeps the stew silky and the fish tender.
  • Choose the right fish: Firm fish (cod, mahi-mahi, halibut, grouper) holds together. Avoid delicate fish that flakes too easily.
  • Dendê oil is powerful: Start with the amounts listed. If you’re new to dendê, you can reduce the finishing drizzle to 1–2 tsp.
  • Want more heat? Add 1/2 tsp red pepper flakes with the garlic, or serve with hot sauce on the side.
  • Make it look beautiful: Reserve a few thin pepper slices and cilantro leaves to scatter over the top just before serving.

Variations

  • Moqueca with shrimp: Replace fish with 1 1/2 lb (680 g) large peeled/deveined shrimp. Simmer the broth first, then add shrimp and cook 3–5 minutes until pink and just firm.
  • Mixed seafood moqueca: Use 1 lb (450 g) fish plus 1/2 lb (225 g) shrimp. Add fish first; add shrimp in the last 4 minutes.
  • No dendê available: The flavor will be less traditional, but still delicious. Replace dendê with 1 tbsp smoked paprika (total) plus 1 additional tbsp olive oil; finish with a drizzle of olive oil and extra cilantro.

Storage & Make-Ahead

Store leftovers in an airtight container in the refrigerator for up to 2 days. Reheat gently in a covered saucepan over low heat until the stew reaches 165°F (74°C), stirring carefully to avoid breaking the fish. Coconut-based stews can separate if boiled during reheating, so keep the heat low.

Make-ahead tip: You can slice the onions and peppers, mince the garlic, and dice the tomatoes up to 24 hours in advance. Keep them refrigerated in separate containers. For best texture, cook the fish the day you plan to serve.

Nutrition (per serving)

Approximate, including rice (will vary by fish type): 590 calories, 38 g protein, 55 g carbohydrates, 24 g fat, 5 g fiber, 750 mg sodium.

Leave a Reply

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


Promotional Banner X
*Sponsored Link*