Brazilian Shrimp and Fish Stew with Coconut Milk

Updated November 3, 2026

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

Jump to recipe

Brazilian Shrimp and Fish Stew with Coconut Milk

Brazilian shrimp and fish stew is a coconut-rich, tomato-and-pepper seafood dish inspired by moqueca, a family of Brazilian stews with regional versions. This approachable pot pairs tender white fish and shrimp with lime, cilantro, and gently spiced broth, and it is especially good served over rice to catch every spoonful.

Ingredients

  • 1 1/2 lb (680 g) firm white fish fillets, such as cod, halibut, or snapper, cut into 1-inch (2.5 cm) chunks
  • 1 lb (450 g) peeled and deveined large shrimp, thawed if frozen, preferably 21–25 per pound
  • 1 tbsp (15 ml) fresh lime juice, plus lime wedges for serving
  • 1 tsp (6 g) fine salt, divided
  • 1/4 tsp (0.5 g) freshly ground black pepper
  • 2 tbsp (30 ml) dendê oil (Brazilian red palm oil), or olive oil as a practical substitute
  • 1 large yellow onion, about 1 1/2 cups (200 g) thinly sliced
  • 1 large red bell pepper, about 1 1/2 cups (150 g) thinly sliced
  • 4 garlic cloves, about 1 tbsp (12 g) finely chopped
  • 2 medium ripe tomatoes, about 2 cups (300 g) chopped
  • 1 tsp (2 g) sweet paprika
  • 1/2 tsp (1 g) ground cumin
  • 1 can coconut milk, 13.5 fl oz (400 ml), preferably full-fat and well shaken
  • 1 cup (240 ml) low-sodium fish stock or chicken stock
  • 1 small jalapeño, about 10 g, thinly sliced, optional
  • 1/2 cup (15 g) loosely packed fresh cilantro leaves and tender stems, chopped, plus extra to finish

Instructions

  1. Prepare and season the seafood. Pat the fish and shrimp dry with paper towels, keeping them separate and chilled while you prepare the vegetables. Put the fish in a bowl and gently toss it with the lime juice, 1/2 teaspoon (3 g) of the salt, and the black pepper. Cut the fish into similarly sized pieces so they cook at about the same rate. Leave the shrimp unseasoned for now; adding them later helps avoid overcooking. Wash hands, board, and knife after handling raw seafood.
  2. Start the aromatic base. Heat the dendê oil in a wide, heavy pot or Dutch oven over medium heat. Add the onion and cook for about 4 minutes, stirring now and then, until it softens and looks glossy rather than browned. Add the bell pepper and cook for 5 minutes, stirring occasionally, until it begins to soften but still holds its shape. Stir in the garlic and optional jalapeño and cook for 30 seconds, just until fragrant. Keep the heat moderate so the garlic does not scorch.
  3. Cook the tomatoes and spices. Add the chopped tomatoes, paprika, cumin, and remaining 1/2 teaspoon (3 g) salt. Cook for 5 minutes, stirring and gently pressing some tomato pieces against the pot, until they release juice and start to break down. The mixture should look saucy, with visible pieces of pepper and tomato. If the pot seems dry before the tomatoes soften, lower the heat and stir more often rather than letting the vegetables stick.
  4. Make the coconut broth. Pour in the coconut milk and stock, then stir to combine. Bring the liquid to a gentle simmer over medium heat, which should take about 3 minutes, then reduce the heat to medium-low and simmer for 5 minutes. Avoid a hard boil: a lively simmer can make the broth splatter and may cause the coconut milk to look separated. Taste a little broth and adjust the salt only if needed, remembering that the seasoned fish will add flavor.
  5. Poach the fish gently. Nestle the fish pieces into the simmering broth in a single layer as much as possible. Spoon a little broth over the tops, cover the pot, and cook for about 6 minutes, checking near the end. The fish should turn opaque and separate into moist flakes, but should not be stirred vigorously or it may break apart. Check the center of the thickest piece with a food thermometer; the USDA FSIS safe minimum internal temperature for fish is 145°F (63°C).
  6. Add the shrimp and finish. Arrange the shrimp around the fish, cover again, and cook for 3–4 minutes, turning the shrimp once if some are not submerged. They are ready when opaque and pearly throughout, with a curled shape; avoid leaving them in the pot longer than necessary because they become firm and rubbery when overcooked. Stir in the cilantro gently and turn off the heat. Let the stew stand for 1 minute, then taste the broth and serve with lime wedges.

Tips

  • Choose fish that holds together. Cod, halibut, snapper, and other firm white fillets work well. Very thin fillets can cook before the vegetables are ready, so cut thick pieces evenly and add delicate fish a little later. Remove any pin bones before cutting, and ask the fish counter to do that if convenient.
  • Use dendê if you can find it. Dendê oil gives some Bahian-style moquecas their characteristic color and earthy, distinctive aroma. It is often sold in Brazilian or international groceries. Olive oil is an accessible substitute, but the broth will be lighter in color and less traditionally flavored; it will still make a satisfying stew.
  • Keep the simmer gentle and the seafood separate. A rolling boil can break up fish and make shrimp tough. Add fish first, then shrimp near the end, and avoid stirring once the chunks are in the broth. If the seafood is frozen, thaw it in the refrigerator and pat it dry rather than putting ice-covered pieces straight into the pot.
  • Make the heat adjustable. Leave out the jalapeño for a mild pot, or add it with its seeds for more heat. A little sliced chile at the table is another option, so diners can season their own bowls without changing the whole stew.

Serving Suggestions

Serve the stew hot in shallow bowls with steamed white rice. The rice absorbs the coconut broth and makes the meal feel complete without competing with the seafood. Brazilian-style farofa, toasted cassava flour seasoned with a little butter or oil, is another fitting accompaniment if it is available; its dry, crumbly texture contrasts with the silky sauce. If cassava flour is hard to find, crusty bread is a useful, nontraditional way to mop up the broth.

Put extra lime wedges and chopped cilantro on the table, and let each person finish a bowl to taste. A simple green salad or sliced cucumber adds freshness alongside the rich coconut milk. For a meal with more sides, serve small portions of rice and stew with sautéed greens. Avoid adding a heavy, strongly seasoned side dish that would overwhelm the mild fish and aromatic broth.

Variations

Make it closer to a Bahian-style moqueca: Use dendê oil and coconut milk as written, and add a little more cilantro at the end. Brazilian moqueca varies by region and household; versions associated with Bahia commonly feature coconut milk and dendê, while other preparations can differ in oil, seasoning, and ingredients. This recipe is inspired by those flavors rather than a claim to represent every regional version.

Use one seafood instead of two: You can make the pot with 2 1/2 lb (1.1 kg) of firm fish, or with 2 1/2 lb (1.1 kg) of shrimp. For all-fish stew, add pieces according to thickness and check the thickest piece for 145°F (63°C). For all-shrimp stew, add the shrimp only at the end and cook until opaque; exact timing depends on their size.

Adjust the broth: For a thinner, more spoonable stew, add up to 1/2 cup (120 ml) extra stock. For a richer broth, replace that stock with more coconut milk, though the result will be sweeter and creamier. If using light coconut milk, expect a less velvety sauce. Taste before adding extra salt, especially if your stock is not low-sodium.

Add more vegetables: Thinly sliced yellow or green bell pepper can replace some of the red pepper, and a handful of spinach can be folded in during the final minute. These additions change the color and texture but fit the gentle flavor of the stew. Keep the total vegetables moderate so there is enough liquid to surround the seafood.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking, in a covered shallow container, and use them within 3–4 days. Seafood is at its best freshly cooked, and the fish may soften after storage, but the broth keeps well. If you expect leftovers, you can set aside a portion of the broth and vegetables before adding seafood, then cook fresh fish and shrimp in that portion later.

Reheat only the amount you plan to eat in a covered saucepan over low heat, stirring the broth gently and turning the fish carefully. Heat leftovers to 165°F (74°C), checking with a food thermometer, and do not let the pot boil hard. A microwave also works: use a covered microwave-safe bowl, heat in short intervals, and check the temperature in more than one spot. Add a splash of stock if the broth has thickened. For longer storage, freeze promptly in a freezer-safe container for up to 2 months for best quality; thaw in the refrigerator and reheat to 165°F (74°C). The texture of the seafood may be softer after freezing.

Frequently Asked Questions

What fish is best for Brazilian shrimp and fish stew?

Choose a firm, mild fish that can be cut into chunks and poached without immediately falling apart. Cod, halibut, snapper, and similar white fish are good choices. Freshness and even thickness matter more than a specific species. If using a thinner fillet, cut it into larger pieces and watch it closely so it does not overcook while reaching the safe temperature.

Can I use frozen shrimp or fish?

Yes. Thaw seafood in the refrigerator, ideally overnight, or follow the package directions for a quicker safe thaw. Drain and pat it dry before cooking; excess water can dilute the broth and cool the pot. Do not thaw seafood on the counter. If you cook from frozen, the timing becomes less predictable and the stew can release extra water, so thawing first gives a better result.

Can I prepare the stew ahead of time?

You can chop the onion, pepper, garlic, and tomatoes up to a day ahead and keep them covered in the refrigerator. For the best seafood texture, cook the broth and vegetables first, cool and refrigerate them promptly, then bring the broth back to a gentle simmer and cook the fish and shrimp shortly before serving. Do not leave cooked seafood at room temperature while waiting to serve.

Is coconut milk required?

Coconut milk gives this version its creamy texture and is an important feature of many Bahian-inspired moquecas. If you cannot use or find it, use additional stock for a lighter, less creamy fish stew, and add a little olive oil for body. That substitution changes the dish noticeably, so it will no longer have the same coconut flavor or richness.

How can I tell when the shrimp are done?

Large shrimp usually cook in about 3–4 minutes in a gentle simmer. Their flesh should be opaque and pearly throughout rather than translucent, and they should curl without tightening into small rings. Because size and starting temperature vary, check one of the largest shrimp and remove the pot from the heat as soon as they are cooked. The carryover heat will continue to warm them briefly.

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