Brazilian Seafood Stew With Coconut Milk

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 Seafood Stew With Coconut Milk

Brazilian seafood stew with coconut milk is a saucy, gently simmered dish of flaky fish, shrimp, peppers, tomatoes, and lime, often called moqueca. This version takes inspiration from Bahia, where coconut milk and fragrant dendê (red palm oil) are common; the gentle heat keeps the seafood tender and makes the broth excellent spooned over rice.

Ingredients

  • 1½ lb firm white fish, such as cod, halibut, or snapper, cut into 1½-inch (4-cm) pieces (680 g)
  • 12 oz large raw shrimp, peeled and deveined (340 g)
  • ¾ tsp fine salt (4.5 g), divided, plus more to taste
  • ¼ tsp freshly ground black pepper (0.5 g)
  • 1 medium yellow onion, thinly sliced (about 150 g)
  • 1 medium red or yellow bell pepper, thinly sliced (about 150 g)
  • 3 garlic cloves, finely chopped (9 g)
  • 2 medium ripe tomatoes, diced (about 300 g)
  • 1 tbsp extra-virgin olive oil (15 ml)
  • 1 tbsp dendê, or Brazilian red palm oil (15 ml)
  • 1 cup (240 ml) unsweetened full-fat coconut milk
  • ½ cup seafood stock or low-sodium chicken stock (120 ml)
  • ½ tsp sweet paprika (1 g)
  • ¼ tsp ground cumin (0.5 g)
  • 1 small jalapeño or other mild chile, seeded and finely chopped (about 15 g), optional
  • 2 tbsp fresh lime juice (30 ml), plus 1 lime cut into wedges (about 70 g)
  • ½ cup loosely packed chopped fresh cilantro (about 15 g)
  • 2 tbsp sliced scallions (about 12 g), optional

Dendê gives the stew a distinctive earthy, slightly nutty aroma and a warm golden-orange color. It may be sold as red palm oil at Latin American or specialty grocers. If you cannot find it, use an additional tablespoon of olive oil; the result will still be flavorful, but less richly colored and less characteristic of Bahian-style moqueca. Choose unsweetened coconut milk, not coconut cream or a sweetened beverage.

Instructions

  1. Prepare the seafood. If using frozen fish or shrimp, thaw it in the refrigerator in advance, then pat it dry. Cut the fish into even pieces so it cooks at a similar rate. Season the fish and shrimp with the salt and black pepper, keeping them chilled while you prepare the vegetables. Slice the onion and pepper, chop the garlic and tomatoes, and measure the remaining ingredients.
  2. Soften the vegetables. Set a wide, heavy pot or deep skillet over medium heat. Add the olive oil and dendê. When the oil is warm, add the onion and bell pepper and cook for about 7 minutes, stirring occasionally, until softened but not browned. If the vegetables start sticking, lower the heat; a little moisture from the onion should help them release.
  3. Build the base. Stir in the garlic, tomatoes, paprika, cumin, and jalapeño, if using. Cook for 5 minutes, stirring gently, until the tomatoes begin to slump and release their juices. Keep the heat moderate so the garlic becomes fragrant without scorching. The mixture should look moist rather than dry or deeply browned.
  4. Simmer the coconut broth. Pour in the coconut milk and stock, then stir to combine. Bring the liquid just to a gentle simmer, not a hard boil, and cook for 5 minutes. Taste a spoonful of broth and add a pinch of salt if needed. A gentle simmer helps keep the coconut milk smooth and gives the vegetables time to flavor the liquid.
  5. Cook the fish. Nestle the fish pieces into the broth in one layer where possible. Cover the pot and simmer gently for 6–8 minutes, depending on the thickness of the pieces. Avoid stirring vigorously; instead, spoon broth over the tops or give the pot a careful shake. Check the thickest fish piece with a food thermometer: USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. If it has not reached that temperature, simmer briefly and check again.
  6. Add the shrimp and finish. Tuck the shrimp into the broth around the fish. Cover and simmer for 3–4 minutes, until the shrimp are opaque and firm; avoid cooking them longer than needed, as they can turn tough. Stir in the lime juice and most of the cilantro and scallions. Turn off the heat and let the stew stand for 2 minutes, then taste the broth and adjust salt or lime. Serve with the remaining herbs and lime wedges.

Tips

  • Choose fish that holds together. Cod, halibut, snapper, grouper, and haddock work well. Very thin fillets can break apart before the stew is ready, so cut them into larger pieces and handle them gently. If you use a particularly thick piece, allow for the longer end of the cooking range and check its temperature at the center.
  • Keep the simmer gentle. A rolling boil can make fish fall apart and may cause coconut milk to separate. Look for occasional small bubbles around the edge of the pot. If the broth does separate slightly, take the pot off the heat and stir slowly; it will still taste good.
  • Adjust chile and acidity at the end. Jalapeños vary in heat, so leave the chile out for a mild stew or use only part of one. Lime brightens the rich coconut broth, but its intensity varies. Add the measured amount first, then taste before adding more.
  • Use raw seafood that has been kept cold. Thaw frozen seafood in the refrigerator, not on the counter, and add it to the pot straight from the refrigerator. Do not crowd the pot with extra seafood, which can cool the broth and make cooking uneven; use a wider pan or cook in batches if doubling the recipe.

Serving Suggestions

Serve the stew hot in shallow bowls with steamed white rice, which catches the coconut broth, and lime wedges for squeezing at the table. Brazilian-style rice or plain long-grain rice both suit the dish; for a heartier meal, add a small bowl of black beans. Farofa, toasted cassava flour seasoned with butter or oil, is a traditional accompaniment in many Brazilian meals and adds a dry, crisp contrast to the saucy stew. If farofa is not available, serve warm crusty bread for dipping.

A simple side salad of lettuce, cucumber, and tomato keeps the meal fresh without competing with the stew’s aromatic broth. You can also put extra chopped cilantro, scallions, and sliced chile on the table so diners can finish their own bowls. Since the broth is rich, modest portions of rice and a generous spoonful of fish and shrimp make a balanced serving; offer more rice separately for anyone who wants to stretch the sauce.

Variations

Use all fish or all shrimp if that is what you have, keeping the total seafood close to 2¼ lb (1 kg). Mussels or firm scallops can also be added, but their cooking times differ: add mussels early enough to open fully and discard any that stay closed, while scallops generally need only a short simmer. For the most predictable result, keep the fish and shrimp combination in this recipe and cook any extra seafood separately.

For a more vegetable-forward pot, add 1 small zucchini, sliced into half-moons (about 200 g), with the peppers, or fold in 2 cups (60 g) baby spinach near the end. These additions change the texture and add moisture, so taste for salt and lime after cooking. To make the stew without dendê, use olive oil as described above; smoked paprika can add a little depth, but it is not a direct substitute for the oil’s distinctive flavor.

Regional and household versions of moqueca vary. Bahian preparations are known for coconut milk and dendê, while moqueca capixaba from Espírito Santo is commonly made without coconut milk and uses annatto for color. This recipe is a coconut-rich interpretation, not a claim that every Brazilian seafood stew follows one formula. For a milder, less rich broth, use light coconut milk, though it will be thinner and less creamy.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking in a shallow, covered container. The stew keeps for 3–4 days in the refrigerator. Because fish and shrimp continue to firm up as they sit, store the rice separately if possible and keep the seafood covered by some broth to reduce drying. Do not leave the pot at room temperature for an extended period, and discard leftovers that have been left out for more than 2 hours.

Reheat only the portion you plan to eat. Warm it in a covered saucepan over low to medium-low heat, stirring carefully and turning the fish rather than breaking it up. Add a splash of stock or water if the broth has thickened. Heat leftovers to 165°F (74°C), the USDA FSIS safe temperature for reheated leftovers, checking the center with a food thermometer. A microwave also works: use a covered microwave-safe dish, pause to stir gently, and check the temperature in more than one spot. Avoid repeated reheating, which can make the seafood dry and tough.

Freezing is possible, although the texture of the fish and coconut broth may change after thawing. For best quality, freeze in a sealed container for up to 2 months, thaw overnight in the refrigerator, and reheat gently to 165°F (74°C). The broth may look slightly separated after thawing; stir it slowly as it warms. Do not freeze and thaw the same portion more than once.

Frequently Asked Questions

What fish is best for Brazilian seafood stew?

Choose a firm, mild fish that can be cut into cubes and still hold its shape, such as cod, halibut, snapper, grouper, or haddock. Fresh or properly thawed frozen fish works. If buying a whole fillet, check for a clean smell and moist flesh, then cut it into even pieces. Very delicate fish can be used, but it may flake into the broth more readily.

Can I make this stew without dendê oil?

Yes. Replace it with the same amount of olive oil. Dendê contributes a characteristic earthy aroma and orange-red color, so the stew will taste a little less like a Bahian-style version without it, but the coconut, seafood, tomato, and lime still make a satisfying broth. Do not substitute a sweetened or flavored oil.

Can I use frozen shrimp and fish?

Yes, as long as they are thawed safely and thoroughly before cooking. The easiest approach is to thaw them in the refrigerator, then drain and pat dry so extra water does not dilute the broth. If seafood is still icy in the center, it may cook unevenly. Keep it refrigerated until you are ready to add it to the pot.

Why did my coconut broth separate?

Coconut milk can separate when boiled hard, and some brands separate more readily than others. A gentle simmer is the best prevention. If the broth looks grainy or oily, remove the pot from the heat and stir slowly; separation is mostly a texture issue, and the stew can still be served. Avoid trying to fix it with a vigorous boil.

Can I prepare the stew ahead?

You can chop the vegetables and portion the seafood earlier in the day, keeping the seafood refrigerated. For the best texture, cook the stew shortly before serving because reheating can firm the fish and shrimp. If you do cook it ahead, cool and refrigerate it promptly, then reheat only once to 165°F (74°C), stirring gently so the fish stays in pieces.

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).