Brazil · Latin America & Caribbean

Brazilian Moqueca: Coconut Fish Stew Recipe with Rice

Updated November 2, 2026

Total time
45 min
prep 20 min · cook 25 min
Serves
4
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece
Cuisine
Brazil
Latin America & Caribbean

Jump to recipe

Brazilian Moqueca: Coconut Fish Stew Recipe with Rice

Moqueca is a Brazilian coastal fish stew, commonly made with fish, tomatoes, peppers, coconut milk, and herbs, then served over rice. This approachable version draws on the creamy Bahian style; recipes vary by region, and the Espírito Santo version, moqueca capixaba, traditionally leaves out coconut milk and dendê oil.

Ingredients

  • 1½ cups (300 g) long-grain white rice
  • 2¼ cups (530 ml) water for the rice
  • ½ teaspoon (3 g) salt for the rice
  • 1½ pounds (680 g) firm white fish fillets, such as snapper, cod, or mahi-mahi, cut into 1½-inch (4 cm) chunks
  • 1 teaspoon (6 g) fine salt for the fish and stew
  • ¼ teaspoon (0.5 g) black pepper
  • 1 medium yellow onion (about 150 g), thinly sliced
  • 1 red bell pepper (about 150 g), thinly sliced
  • 1 green bell pepper (about 150 g), thinly sliced
  • 3 garlic cloves (about 9 g), finely chopped
  • 2 medium ripe tomatoes (about 300 g), chopped, or 1½ cups (270 g) chopped canned tomatoes
  • 1 tablespoon (15 ml) dendê, or Brazilian red palm oil
  • 1 teaspoon (2 g) sweet paprika
  • ½ teaspoon (1 g) ground cumin
  • 1 can (13.5 ounces / 400 ml) full-fat coconut milk, well shaken
  • 1 tablespoon (15 ml) fresh lime juice
  • ¼ teaspoon (0.5 g) red pepper flakes, optional
  • ¼ cup (10 g) chopped fresh cilantro, plus more for serving
  • 2 tablespoons (8 g) chopped fresh parsley
  • 1 lime (about 60 g), cut into wedges for serving

Instructions

  1. Prepare the ingredients. Set aside about 20 minutes to slice the onion and peppers, chop the garlic and tomatoes, cut the fish into evenly sized chunks, and measure the remaining ingredients. Pat the fish dry and season it with the 1 teaspoon salt and black pepper. Keep it refrigerated while you start the rice and stew if you are not adding it to the pan right away. There is no need to marinate the fish; cooking it directly in the sauce helps it stay tender.
  2. Start the rice. Rinse the rice in a fine-mesh strainer under cool water until the water runs mostly clear. Put it in a saucepan with 2¼ cups water and ½ teaspoon salt. Bring to a boil over medium-high heat, stir once, cover, and reduce the heat to low. Cook for 15 to 18 minutes, until the water is absorbed and the rice is tender. Turn off the heat and leave the pan covered for 5 minutes, then fluff with a fork. Start the stew while the rice cooks so both are ready around the same time.
  3. Soften the vegetables. Heat the dendê in a wide, heavy skillet or shallow Dutch oven over medium heat. Add the onion and both peppers, and cook for 4 to 5 minutes, stirring occasionally, until they begin to soften but still hold their shape. Stir in the garlic, paprika, cumin, and optional red pepper flakes; cook for about 30 seconds, just until fragrant. If the garlic starts to brown, lower the heat.
  4. Build the sauce. Add the tomatoes and stir to coat them in the oil and spices. Cook for 4 to 5 minutes, until the tomatoes soften and release some juice. Pour in the coconut milk and stir gently. Bring the mixture to a gentle simmer, not a hard boil, and cook for 3 minutes so the flavors come together. Taste the sauce and adjust the salt if needed; remember that the fish is already seasoned.
  5. Poach the fish gently. Nestle the fish chunks in a single layer in the simmering sauce and spoon a little sauce over the tops. Cover the pan and cook gently for 5 to 8 minutes, depending on the thickness of the pieces. Avoid vigorous stirring, which can break up the fish; gently shake the pan or spoon sauce around the pieces instead. Check the thickest piece with a food thermometer: USDA FSIS guidance sets the safe minimum internal temperature for fish at 145°F (63°C). The fish should look opaque and separate easily into flakes. If a piece is not yet at temperature, cover and cook for another minute before checking again.
  6. Finish and serve. Turn off the heat. Stir the lime juice, cilantro, and parsley into the sauce, or scatter the herbs over the top if you prefer a more distinct fresh-herb flavor. Serve the moqueca hot in shallow bowls with rice, lime wedges, and extra cilantro. The full-fat coconut sauce is especially good spooned over the rice.

Tips

  • Choose fish that holds together. Snapper, cod, haddock, and mahi-mahi work well when cut into similarly sized chunks. Very thin fillets can overcook before the sauce is ready, while delicate fish may break apart if stirred. If using frozen fish, thaw it completely in the refrigerator and pat it dry before seasoning so extra water does not thin the stew.
  • Substitute for dendê thoughtfully. Brazilian red palm oil gives Bahian-style moqueca its characteristic color and a particular earthy, rounded flavor. If you cannot find it, use 1 tablespoon (15 ml) olive oil or neutral cooking oil. The stew will still be tasty, but it will lack that distinctive palm-oil flavor; a small pinch of extra paprika adds color without truly replicating it.
  • Keep the coconut sauce at a gentle simmer. A rolling boil can make the sauce look separated and can cook the fish too quickly. Once the coconut milk is in the pan, lower the heat as needed so only small bubbles appear around the edges. Add fish pieces of similar thickness together, and check them early rather than relying only on the clock.
  • Season in stages. Salt the fish, then taste the sauce before adding more. Different canned tomatoes and coconut milks vary in saltiness, and the rice is salted separately. Lime brightens the finished stew, but add it at the end so you can adjust the acidity without making the coconut sauce overly sharp.

Serving Suggestions

Serve the stew in shallow bowls so every portion gets fish, peppers, tomatoes, and plenty of sauce. A bed of plain white rice is the classic, practical partner: it absorbs the coconut broth without competing with the fish. Put lime wedges on the table so each person can add citrus to taste, and offer extra chopped cilantro or parsley for a fresh finish.

For a fuller Brazilian-inspired meal, add a simple green salad dressed with lime and a little oil, or serve sautéed collard greens on the side. Farofa, toasted cassava flour seasoned with butter or oil, is another fitting accompaniment if it is available. It adds a dry, lightly crisp contrast to the stew; pass it separately so diners can sprinkle on as much as they like. Keep other sides simply seasoned, because the moqueca already has a rich, aromatic sauce.

Variations

Make it more like moqueca capixaba. For a version associated with Espírito Santo, omit the coconut milk and dendê. Use 1 tablespoon (15 ml) olive oil, add ½ cup (120 ml) water or light fish stock with the tomatoes, and simmer the vegetable base until saucy before adding the fish. This produces a lighter broth with a different flavor and texture; regional and household recipes vary, so treat it as a style change rather than a strict formula.

Adjust the heat. The red pepper flakes are optional. Leave them out for a mild stew, or add a thinly sliced fresh chile with the garlic if you want a more direct chile flavor. Keep the amount modest at first; you can offer hot sauce at the table rather than making the whole pot too spicy for some diners.

Use shrimp for part of the fish. Replace up to half the fish with peeled, deveined shrimp, but add the shrimp later because they cook faster. Simmer the fish first until nearly done, then add the shrimp for the last few minutes and check that they are opaque and cooked through. For a mixed seafood stew, use fish pieces of similar size and add each seafood type according to its cooking time, rather than putting everything in at once.

Change the herbs or tomatoes. Cilantro is common in many versions, but if its flavor is not to your liking, use extra parsley and finish with lime. Out-of-season fresh tomatoes can be replaced with the measured canned tomatoes in the ingredients list. Canned tomatoes may make the sauce a little softer and more consistent, while ripe fresh tomatoes can taste brighter and retain more texture.

Storage and Reheating

Refrigerate leftover fish stew and rice within 2 hours of cooking, storing them in separate shallow, airtight containers so they cool promptly. Keep them refrigerated at 40°F (4°C) or below and use within 3 to 4 days. For the best texture, keep the rice separate from the sauce; rice left sitting in the stew will absorb liquid and become softer.

Reheat only the portion you plan to eat. Warm the stew gently in a covered saucepan over low heat, stirring the sauce carefully, until it is steaming and reaches 165°F (74°C), the safe temperature for reheated leftovers. Add a splash of water if the coconut sauce has thickened. Reheat rice with a spoonful of water in a covered pan or microwave-safe dish, stirring partway through, and verify that it also reaches 165°F (74°C). Avoid repeated cooling and reheating, which can worsen the fish’s texture. Freeze leftovers in airtight containers for up to 2 months for best quality; thaw overnight in the refrigerator and reheat to 165°F (74°C).

Frequently Asked Questions

What kind of fish is best for moqueca?
Choose a firm, mild fish that can be cut into chunks and will not immediately fall apart in sauce. Snapper is a common choice, while cod, haddock, or mahi-mahi are practical alternatives. If the fillets are thin, fold or cut them into thicker portions and begin checking for doneness early. The safest check is a food thermometer reading of 145°F (63°C) in the thickest part.

Is Brazilian moqueca always made with coconut milk?
No. Moqueca varies by region and household. The Bahian style is widely associated with coconut milk and dendê oil, while moqueca capixaba is generally made without either. This recipe is a coconut-rich version, and the variation above explains how to make a lighter, coconut-free adaptation.

Can I make the stew ahead?
You can slice the vegetables and chop the herbs several hours ahead, keeping them covered and refrigerated. For the best fish texture, cook the stew shortly before serving rather than fully cooking and reheating it in advance. If you do have cooked leftovers, refrigerate them promptly and reheat gently to 165°F (74°C).

Why did my coconut sauce look separated?
A sauce that boils hard can appear oily or separated, especially as it reduces. Keep it at a gentle simmer and avoid extended cooking after adding the coconut milk. If it separates slightly, lower the heat and stir slowly; it may come together enough for serving, though the texture may remain less smooth. The fish should still be checked for its safe internal temperature.

Can I use light coconut milk?
Yes. Light coconut milk will make a thinner, less rich sauce, so the result will not have the same creamy body as the full-fat version. Simmer the vegetable mixture until it has enough flavor before adding the fish, and do not try to thicken the sauce by cooking the fish for longer. Serve any extra sauce over the rice.

What can I serve if I do not have white rice?
Brown rice can work, but it usually takes longer to cook, so prepare it according to its package directions while making the stew. You can also serve moqueca with boiled potatoes or crusty bread to catch the sauce. Keep the side lightly seasoned so the tomatoes, herbs, lime, and coconut remain the main flavors.

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