Moqueca is a Brazilian fish stew simmered with tomatoes, peppers, onion, coconut milk, and fresh herbs; this version takes its cue from Bahia, where coconut milk and dendê (red palm oil) are common. The fish cooks gently in the fragrant sauce, making a colorful one-pot meal that is especially good served with rice to catch every drop.
Ingredients
- 1½ lb (680 g) firm white fish fillets, such as snapper, cod, halibut, grouper, or mahi-mahi, cut into 1½-inch (4 cm) pieces. Choose pieces of similar thickness so they finish at about the same time.
- 2 tbsp (30 ml) fresh lime juice, from about 1 lime, divided. It brightens the fish and sauce; it does not replace cooking the fish fully.
- 1 tsp (6 g) fine salt, divided, plus more to taste.
- ¼ tsp (0.5 g) freshly ground black pepper.
- 1 tbsp (15 ml) dendê oil, also called red palm oil. It gives Bahia-style moqueca its distinctive color and earthy, rounded flavor. If it is unavailable, use 1 tbsp (15 ml) olive oil plus ¼ tsp (0.5 g) sweet paprika; the result will be milder and will not have the same palm-oil flavor.
- 1 large yellow onion (about 8 oz/225 g), thinly sliced.
- 1 red bell pepper (about 6 oz/170 g), thinly sliced, with seeds and stem removed.
- 1 green bell pepper (about 6 oz/170 g), thinly sliced, with seeds and stem removed.
- 3 garlic cloves (about 9 g), finely chopped.
- 2 medium ripe tomatoes (about 10 oz/300 g), chopped. Very juicy tomatoes help form the stew’s base.
- 1 can (13.5 fl oz/400 ml) full-fat coconut milk, well shaken. Light coconut milk makes a thinner, less creamy sauce.
- ½ tsp (1 g) ground cumin, optional, for gentle warmth.
- 1 small red chile (about 5 g), thinly sliced, optional; remove the seeds for less heat.
- ½ cup (15 g) loosely packed fresh cilantro leaves and tender stems, roughly chopped, plus a little extra for serving.
- 2 tbsp (30 ml) water, only if needed to loosen the stew at the end.
Instructions
- Season the fish. Pat the fish dry and check for any pin bones. Put the pieces in a bowl with 1 tbsp (15 ml) of the lime juice, about half the salt, and the black pepper. Turn gently to coat, cover, and let stand for 10 minutes while you prepare the vegetables. Do not leave the fish in the lime for an extended period; it can firm the surface before the fish is cooked.
- Prepare the vegetables. Slice the onion and peppers, chop the tomatoes and garlic, and slice the chile if using. Keep the fish separate from the vegetables and wash your hands and any utensils that have touched raw seafood before using them elsewhere.
- Start the aromatic base. Set a wide, heavy pot or deep skillet over medium heat. Add the dendê oil. When it is warm, add the onion and peppers and cook for 5 to 6 minutes, stirring now and then, until they begin to soften but still hold their shape.
- Add the garlic and tomatoes. Stir in the garlic, cumin, and chile, if using, and cook for about 30 seconds, just until fragrant. Add the tomatoes and the remaining salt. Cook for 3 minutes, stirring gently, until the tomatoes begin to release their juices. Avoid browning the garlic, which can make the sauce taste bitter.
- Simmer the coconut sauce. Pour in the coconut milk and stir gently to combine. Bring it just to a steady, gentle simmer, then lower the heat and cook uncovered for 8 minutes. The vegetables should soften and the sauce should become lightly rosy and fragrant. Keep it below a rolling boil so the coconut milk stays smooth.
- Add the fish. Nestle the fish pieces into the sauce in a single layer as much as possible. Spoon sauce over the tops, cover the pot, and simmer gently for 8 to 10 minutes, depending on the thickness of the pieces. Try not to stir vigorously; lift and tilt the pot or use a spoon to baste the fish so it stays in intact pieces.
- Check that it is cooked. 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 flesh should also be opaque and separate easily with a fork. If it has not reached temperature, cover and cook for another minute or two, then check again.
- Finish and serve. Turn off the heat. Stir in the remaining 1 tbsp (15 ml) lime juice and the cilantro, then taste the sauce and adjust the salt or lime. If it is thicker than you like, add up to 2 tbsp (30 ml) water and fold it in gently. Let the stew stand for 2 minutes before serving.
Tips
- Pick fish that can hold its shape. Snapper, cod, halibut, grouper, and mahi-mahi all work well when cut into generously sized pieces. Thin fillets and delicate fish can break apart in the pot; if that is what you have, add them later and handle the stew as little as possible.
- Use a wide pot and a gentle simmer. A broad cooking surface gives the fish room to sit in the sauce without stacking. A hard boil can make fish fall apart and may cause the coconut sauce to look separated, so lower the heat as soon as the liquid starts bubbling steadily.
- Adjust the heat and salt at the end. Chile strength varies, and canned coconut milk and fish differ in flavor. Start with the listed chile amount or omit it, then taste the finished sauce before adding more salt, lime, or heat.
- Plan for dendê’s distinctive flavor. Red palm oil is a traditional ingredient in many Bahia-style versions, but it can be difficult to find. The olive-oil-and-paprika substitute gives a similar warm color, not the same aroma; ordinary olive oil alone also works for a simpler-tasting stew.
Serving Suggestions
Serve moqueca hot in shallow bowls with plain white rice, which absorbs the coconut-tomato sauce without competing with the fish. Brazilian-style white rice is a natural choice, but brown rice or another simple grain works if that is what you have. Put extra lime wedges and chopped cilantro on the table so everyone can brighten their own portion.
For a fuller meal, add farofa—a toasted cassava-flour side—or serve sliced avocado and a crisp green salad alongside. Farofa is a classic Brazilian accompaniment, but it is not essential; toasted breadcrumbs with a little butter can provide a similar crumbly contrast, though the flavor will be different. Keep side dishes simply seasoned so the stew’s coconut, peppers, herbs, and fish remain the focus.
Variations
Moqueca has regional and family variations rather than one single fixed formula. This recipe is Bahia-inspired, with coconut milk and dendê. In Espírito Santo, moqueca capixaba is commonly made without coconut milk and uses urucum, also called annatto, for color. If you want to explore that style, omit the coconut milk and dendê and use olive oil with a small amount of annatto; the broth will be lighter and less creamy. Annatto seeds can be infused in oil and strained, or a little ground annatto can be used if available.
You can replace some or all of the fish with peeled, deveined shrimp, but shrimp cook faster. Add them during the final few minutes and check for doneness rather than following the fish timing exactly. For a mixed seafood stew, add firm fish first and quick-cooking seafood later so everything is cooked without becoming tough. For a non-seafood variation, use thick slices of ripe plantain or chunks of hearts of palm; these change the dish substantially and should be treated as a vegetable stew rather than as a substitute with the same texture as fish.
For a milder, sweeter sauce, leave out the chile and use red and yellow bell peppers. For more heat, add a little extra chile at the table rather than making the whole pot very spicy. You can also stir in a small handful of extra cilantro just before serving, but avoid adding it too early because prolonged simmering dulls its fresh flavor.
Storage and Reheating
Refrigerate leftovers within 2 hours of cooking, in a covered, shallow container. Keep the fish and sauce together so the portions do not dry out. Properly refrigerated, the stew keeps for 3 to 4 days. For the best texture, avoid repeatedly warming the whole pot; take out only the portions you plan to eat.
Reheat gently in a covered saucepan over low to medium-low heat, stirring the sauce carefully around the fish. Add a splash of water or coconut milk if the sauce has thickened, and heat leftovers to 165°F (74°C), as recommended for reheated leftovers. A microwave also works: cover the portion, heat in short intervals, and check the center temperature. Fish can become dry if it is reheated for too long, so stop as soon as the food is evenly hot. You may freeze the stew in a freezer-safe container for up to 2 months for best quality; thaw it in the refrigerator before reheating. The fish may be softer after freezing, but the sauce remains useful for serving over rice.
Frequently Asked Questions
What kind of fish is best for moqueca?
Choose a firm, mild fish that stays in pieces during simmering. Snapper, cod, halibut, grouper, and mahi-mahi are useful options. Cut the fillets into similar-sized chunks, and avoid very thin pieces that can overcook before the sauce is ready. If using frozen fish, thaw it in the refrigerator and pat it dry before seasoning.
Can I make moqueca without coconut milk?
Yes. A coconut-free version is associated with moqueca capixaba from Espírito Santo, while coconut milk is common in Bahia-style preparations. Without it, the stew will be brothier and less rich. You can use water or mild fish stock in its place, but add only enough to make a light sauce and adjust the seasoning near the end.
Is dendê oil essential?
No, but it contributes a recognizable flavor and orange-red color to many Bahia-style versions. If it is unavailable, use olive oil with a small pinch of sweet paprika as described in the ingredients. The substitution is practical but does not reproduce dendê’s distinctive taste. Do not use an oil you dislike on its own, since its flavor will remain noticeable in the finished stew.
Can I prepare the stew ahead of time?
You can slice the vegetables and measure the seasonings a day ahead, and you can make the tomato-coconut base several hours ahead and refrigerate it. For the best fish texture, bring the base back to a gentle simmer and add the seasoned fish shortly before serving. If the completed stew is made ahead, cool and refrigerate it promptly, then reheat gently to 165°F (74°C).
Why did my fish break apart or my sauce separate?
Fish often breaks apart when it is overcooked, cut too small, or stirred repeatedly. Use large pieces, keep the simmer gentle, and baste rather than stir once the fish goes in. A separated-looking coconut sauce can result from vigorous boiling; lower the heat and stir the liquid gently. It may not become perfectly smooth again, but it will still be suitable to serve.
What should the finished sauce look and taste like?
Expect a loose, spoonable sauce rather than a thick curry. It should taste savory and gently sweet from the vegetables and coconut, with fresh acidity from lime and herbal notes from cilantro. If the flavor seems flat, add lime a little at a time; if it is too sharp, let it simmer briefly or add a small splash of coconut milk. Keep the fish itself tender and opaque, not dry or rubbery.
Related
- Mexican Rice Drink (Horchata): A Creamy Homemade Recipe
- Orange Thai Rice Noodles with Basil, Lime, and Peanuts
- Oven Baked Spanish Rice for Easy, Fluffy Weeknight Meals
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).