Moqueca
A vibrant Brazilian fish stew with coconut milk, tomatoes, bell peppers, and dende oil. From the Bahia region, simmered gently until the fish is silky and the broth is golden.
Edited by Brian Kaplan·Last updated April 12, 2026
Servings
Est. total: $18.00 · $4.50/serving
Cost estimates are approximate and vary by location, store, season, and brand. Actual prices may differ.
Ingredients
- 1 1/2 lb firm white fish fillets (cod, halibut, or snapper, cut into chunks)
- 3 tbsp lime juice (divided)
- 4 cloves garlic (minced, divided)
- 1 1/2 tsp salt (divided)
- 2 tbsp dende oil (or substitute olive oil with a pinch of turmeric)
- 1 large yellow onion (sliced into rings)
- 1 red bell pepper (sliced)
- 1 green bell pepper (sliced)
- 3 medium tomatoes (chopped)
- 14 oz coconut milk (full fat)
- 1/4 cup fresh cilantro (chopped)
- 3 stalks green onions (sliced)
- 2 cup white rice (cooked, for serving)
Instructions
- 1
Marinate the fish: Toss fish chunks with 2 tbsp lime juice, half the garlic, and 1 tsp salt. Let sit 15-20 minutes while you prep vegetables.
The lime marinade gently cures the fish surface, adding flavor and firming the texture slightly.
- 2
Heat dende oil in a deep skillet or clay pot over medium heat. Add onion rings and cook 4-5 minutes until softened. Add bell peppers and remaining garlic, cook 3 minutes.
Dende (palm) oil gives moqueca its signature golden color and nutty flavor. It is the soul of the dish.
- 3
Add chopped tomatoes and remaining salt. Cook 5 minutes until tomatoes break down slightly. Pour in coconut milk and bring to a gentle simmer.
- 4
Nestle the marinated fish into the simmering broth. Do not stir — gently shake the pan occasionally. Cover and simmer 10-12 minutes until the fish is opaque and flakes easily, reaching 145°F.
Never stir moqueca. The fish will break apart. Shake the pan gently side to side instead.
- 5
Remove from heat. Add remaining lime juice, cilantro, and green onions. Drizzle with a final splash of dende oil. Serve in the cooking vessel over white rice.
Restaurant secret: Like many fish dishes, the acid (lime) goes in at the end to stay bright and fresh. Add it off heat for maximum impact.
Pairs With
Brahma or Antarctica pilsner
Light, cold, and the way Brazilians drink it
Cachaca, lime, sugar, muddled
Brazil's national cocktail with Brazil's iconic stew. Lime ties them together
Spanish white with saline and citrus
Coastal wine for a coastal dish, citrus and mineral notes
Make It Yours
Tap a dietary need to see exactly what to swap.
Reviews (0)
Honest reviews from cooks who actually made this recipe.
No reviews yet
Be the first to review this recipe.
Cooking Soundtrack
Easy-going rock, country, and the kind of music that pairs with burgers and cold beer.
Nutrition
Per serving. Estimated values. Not a substitute for professional dietary advice.
Tips
- •Dende oil (palm oil) is available at Brazilian or Latin grocery stores. It is the authentic ingredient.
- •Use a firm fish that won't fall apart. Cod, halibut, and snapper all work perfectly.
- •Restaurant secret: In Bahia, moqueca is served in the clay pot it was cooked in. The presentation is part of the experience.
Substitutions
- dende oil → olive oil plus 1/4 tsp turmeric for color
- firm white fish → shrimp or a mix of fish and shrimp
- coconut milk → no substitute
Leftovers
Refrigerate up to 2 days. The fish is delicate, so reheat gently on the stovetop.
Leftover Ideas
Nutrition values are estimates calculated per serving and may vary based on brand, preparation method, and serving size. Not a substitute for professional dietary or medical advice. Consult a registered dietitian for specific nutritional needs.
Allergen Notice: Recipes may contain or come into contact with major allergens including milk, eggs, fish, shellfish, tree nuts, peanuts, wheat, soy, and sesame. Always verify ingredient labels for allergen information specific to the brands you use.
Drink pairing suggestions are for adults of legal drinking age only. Please drink responsibly.
Food Safety: Follow USDA safe minimum internal temperatures: Poultry 165°F (74°C), Ground meats 165°F (74°C), Beef/pork/lamb steaks 145°F (63°C) with 3-min rest, Fish 145°F (63°C). Use an instant-read thermometer — do not rely on visual cues alone. Refrigerate leftovers within 2 hours.