Brazilian Fish Stew, Cook’s Country Style with Coconut

Updated November 3, 2026

Total time
55 min
prep 25 min · cook 30 min
Serves
4
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Brazilian Fish Stew, Cook’s Country Style with Coconut

Brazilian fish stew, often called moqueca, is a gently simmered dish of fish, tomatoes, peppers, coconut milk, and fresh herbs. This coconut-rich version draws on the moqueca traditions of Bahia, while keeping the method practical: the vegetables make a flavorful base, and the fish cooks briefly in the broth so it stays tender.

Ingredients

  • 1½ lb firm white fish, such as cod, snapper, halibut, or haddock, cut into 1½-inch pieces (680 g)
  • ¾ tsp fine salt, divided (4.5 g)
  • ¼ tsp freshly ground black pepper (0.5 g)
  • 2 tbsp fresh lime juice, divided (30 ml)
  • 1 tbsp dendê palm oil, or neutral oil (15 ml)
  • 1 medium yellow onion, thinly sliced (about 150 g)
  • 1 red bell pepper, thinly sliced (about 150 g)
  • 1 yellow or green bell pepper, thinly sliced (about 150 g)
  • 3 garlic cloves, finely chopped (about 9 g)
  • 1 lb ripe tomatoes, chopped, or one 14.5-oz can diced tomatoes, drained (450 g fresh tomatoes or 411 g canned)
  • ¼ tsp ground cumin (0.5 g)
  • ¼ tsp smoked paprika, optional (0.5 g)
  • 1 cup unsalted fish stock or low-sodium vegetable broth (240 ml)
  • 1 can full-fat coconut milk, well shaken (13.5 oz/400 ml)
  • 1 small jalapeño, seeded and minced, optional (about 15 g)
  • ½ cup loosely packed fresh cilantro leaves and tender stems, chopped (15 g)
  • 2 green onions, thinly sliced (about 30 g)
  • 1 lime, cut into wedges for serving (about 60 g)

Instructions

  1. Season the fish. Pat the fish dry and check it for any pin bones. Put it in a shallow bowl with ½ teaspoon of the salt, the black pepper, and 1 tablespoon of the lime juice. Turn the pieces gently to coat, cover, and refrigerate for 15 minutes while you prepare the vegetables. This short rest seasons the fish; it is not a cooking step, and the lime does not make raw fish safe to eat.
  2. Soften the onion. Warm the dendê oil in a wide, heavy pot or Dutch oven over medium heat. Add the sliced onion and cook for about 4 minutes, stirring now and then, until it begins to soften but has not browned. If the pan looks dry, lower the heat rather than adding a large splash of oil; the vegetables will release moisture as they cook.
  3. Cook the peppers and aromatics. Add both bell peppers and the jalapeño, if using. Cook for 5 minutes, stirring occasionally, until the peppers are glossy and starting to bend but still hold their shape. Stir in the garlic, cumin, and smoked paprika, if using, and cook for 30 seconds, just until fragrant. Avoid browning the garlic, which can make the broth taste bitter.
  4. Build the coconut broth. Add the tomatoes and remaining ¼ teaspoon salt. Cook for 3 minutes, stirring once or twice, until the tomatoes begin to soften and release juice. Pour in the stock and coconut milk, then bring the mixture to a gentle simmer over medium heat. Simmer uncovered for 8 minutes. Keep it bubbling lightly rather than boiling hard, which can separate the coconut milk and break up the vegetables.
  5. Simmer the fish. Take the fish from the refrigerator and arrange the pieces in a single layer in the broth. Spoon some broth over the top, cover the pot, and simmer gently for 8 to 10 minutes, depending on the thickness of the pieces. Avoid stirring; gently shake the pot or spoon broth over the fish if needed. Check the thickest piece with a food thermometer: USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. At that temperature, the fish should look opaque and separate into flakes with gentle pressure.
  6. Finish and serve. Turn off the heat. Stir in the remaining 1 tablespoon lime juice, most of the cilantro, and most of the green onions. Taste the broth and adjust with a little more salt or lime if needed. Ladle the stew carefully so the fish stays in large pieces, and scatter the remaining herbs over each serving.

Tips

  • Choose fish that holds together. Cod, snapper, halibut, and haddock work well when cut into similarly sized pieces. Very thin fillets can overcook before the center of the pot is hot. If using frozen fish, thaw it fully in the refrigerator, then pat it dry so excess water does not dilute the broth.
  • Find dendê or use a sensible substitute. Dendê is Brazilian red palm oil, valued in Bahia-style moqueca for its deep orange color and distinctive earthy, slightly nutty flavor. It may be sold in Brazilian or African grocery stores. If it is unavailable, use a mild neutral oil and the optional smoked paprika; the stew will still be delicious, but it will lack dendê’s particular flavor. Do not substitute coconut oil expecting the same result.
  • Keep the simmer gentle. A rolling boil can make fish fall apart and may cause the coconut milk to look grainy. Once the fish goes in, keep the liquid just bubbling around the edges and resist the urge to stir. A wide pot helps the fish fit in one layer and cook evenly.
  • Adjust the seasoning at the end. Stock, canned tomatoes, and fish can vary in saltiness, so taste the broth before serving. Lime adds brightness, but too much can overwhelm the coconut. Add it a teaspoon at a time if you are unsure, and serve extra wedges at the table.

Serving Suggestions

Serve the stew hot in shallow bowls, with plenty of broth around the fish. Plain white rice is a classic, practical partner: it absorbs the coconut-tomato sauce without competing with the herbs. Brazilian-style rice, cooked with a little sautéed onion, is also a good fit. For another filling option, serve with crusty bread or boiled cassava if it is available.

Add a simple green salad or sliced cucumber for a crisp contrast, and put lime wedges on the table so each person can brighten their bowl. Keep toppings restrained; extra cilantro and green onion are useful, while a strongly flavored sauce can obscure the stew’s delicate fish and coconut. If serving several people, bring the pot to the table carefully and use a broad serving spoon to lift the fish without breaking it.

Variations

Moqueca has regional and family variations rather than one single fixed recipe. This version is inspired by the Bahia style, which commonly combines coconut milk and dendê. Moqueca capixaba, associated with Espírito Santo, is generally made without coconut milk and dendê and often uses annatto for color. For a lighter, capixaba-inspired variation, replace the coconut milk with an additional 1 cup (240 ml) of stock and omit the dendê; the result will be a more tomato-forward broth, not the same creamy stew.

You can replace up to half of the fish with peeled, deveined shrimp, but add the shrimp only for the final 4 to 6 minutes of simmering, until they are opaque and firm. For a meat-free pot, use thick slices of hearts of palm or chunks of firm tofu in place of the fish and simmer until heated through; this changes the dish from fish stew, and the texture will be different. For more heat, leave some jalapeño seeds in or add a pinch of red pepper flakes with the garlic.

If fresh ripe tomatoes are out of season, drained canned diced tomatoes are a reliable alternative and are already listed in the ingredients. For a less rich broth, use light coconut milk, understanding that it will be thinner and less creamy. Avoid adding extra stock at the start to compensate; taste after simmering and add a few tablespoons only if the broth seems too concentrated.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking, transferring them to a shallow, airtight container so they cool promptly. Cooked fish stew keeps for 3 to 4 days in the refrigerator. The fish will soften as it sits, so store it with enough broth to keep it from drying out. Freezing is possible for up to 2 months in a freezer-safe container, though the coconut broth may separate slightly and the fish texture may become softer after thawing. Thaw overnight in the refrigerator.

Reheat only the portion you plan to eat. Warm it gently in a covered saucepan over low to medium-low heat, stirring the broth carefully and turning the fish pieces once if needed. Add a splash of water or stock if the broth has thickened. Heat leftovers to 165°F (74°C), checking the center with a food thermometer, then serve promptly. Avoid repeated reheating or a hard boil, both of which can make the fish break apart. Do not leave the stew at room temperature for more than 2 hours.

Frequently Asked Questions

What fish is best for Brazilian fish stew?
Choose a mild, firm fish that can be cut into thick pieces. Cod, snapper, halibut, and haddock are all suitable. Freshness and even thickness matter more than choosing a particular species; thin pieces cook faster, so check them early. If the fish has skin, remove it before adding the pieces to the broth for the easiest serving.

Can I make the stew ahead?
You can chop the vegetables and season the fish shortly before cooking, but the finished stew is best cooked close to serving time because fish can become dry or flaky with prolonged reheating. If you need to work ahead, make the coconut-tomato base, cool it, and refrigerate it for up to 2 days. Reheat the base to a simmer, then add the fish and cook it until it reaches 145°F (63°C).

Can I use frozen fish?
Yes. Thaw it in the refrigerator, not on the counter, and drain away any liquid before patting it dry. Watery fish can thin the broth and may cook unevenly if it is still icy in the center. If you start with frozen fish, allow enough time for it to thaw safely before following the recipe; do not add frozen pieces directly to the pot.

Why did my coconut milk separate?
A little variation in texture is normal, especially after refrigeration, but a vigorous boil can make coconut milk look curdled or separated. Keep the broth at a gentle simmer and avoid prolonged high heat. If it separates slightly, take the pot off the heat and stir the broth gently; it may come back together, though the appearance can remain less smooth.

Is Brazilian fish stew very spicy?
This recipe is mild if you omit the jalapeño. The main flavors come from the fish, coconut, tomatoes, peppers, and lime rather than heat. For a spicier bowl, include the jalapeño seeds or pass hot sauce at the table so each person can adjust their own serving.

What can I use instead of fish stock?
Unsalted vegetable broth is the easiest substitute and keeps the stew’s flavor balanced. Water also works, though the broth will taste less savory, so you may want to adjust the salt and lime after simmering. Avoid strongly flavored broths that could compete with the coconut, cilantro, and fish.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).