New video every week on YouTube →
Colombian Fish in Coconut Sauce, Pacific Coast Recipe

Colombian Fish in Coconut Sauce, Pacific Coast Recipe

A thick, orange sauce that tastes of sweet coconut over a savory onion and tomato base, with fish that falls into big moist flakes at the touch of a spoon. The whole sauce can be made the day before, leaving a 15-minute finish, and leftovers keep 3 to 4 days. Snapper, halibut or catfish all work, and swapping half the coconut milk for water cuts about 93 kcal a plate.

Pescado en salsa de coco (pes-KAH-doh en SAHL-sah deh KOH-koh) means fish in coconut sauce, and in Colombia it’s cooked on both coasts: firm white fish poached in coconut milk on top of hogao, a slow-cooked base of onion, sweet pepper, garlic and tomato. If you know Thai or Kerala coconut curries, think of it as their mild, chile-free cousin, sweet from the coconut and savory from the tomato. It’s a one-pan weeknight dish that only goes wrong in two ways, and both are about heat and handling rather than ingredients.

What is Colombian fish in coconut sauce, and should you make it?

How do you make Colombian fish in coconut sauce? Season chunks of firm white fish with salt, garlic and lime. Cook onion, bell pepper, garlic, annatto and tomato down into a thick hogao, add thin coconut milk and keep it at a gentle simmer, never a boil. Poach the fish covered in the sauce for 8 to 10 minutes, to 145°F (63°C), and finish with the thick coconut cream and cilantro. Ready in 55 minutes for 4 servings.

It’s worth it if you want a fish dinner without frying, cooked in a single pan, with a sauce that begs for rice. Writing for the Colombian newspaper El Colombiano, the cook Álvaro Molina lists fish stewed in coconut milk among the traditional dishes of the Pacific coast, alongside chontaduro soup, and names chillangua, a wild cilantro-like herb, as an ingredient that’s hard to find outside the region.

When to make it. A Sunday lunch for 4 to 8, a meatless Friday, or a dinner party where you want the sauce done before anyone arrives. It’s a good first Colombian dish to cook: nothing on the shopping list is exotic once you allow for a couple of swaps.

When to skip it. If someone at the table dislikes coconut, because here it’s the main flavor. If you’re watching saturated fat, know that one can of full-fat coconut milk supplies nearly all of it.

Real time. 55 minutes on the clock, about 35 of them hands-on. Making coconut milk from a fresh coconut adds roughly 20 minutes.

Honest difficulty, easy. There’s no tricky technique. It asks for attention at two moments: when the coconut milk goes in, and when the fish does.

What you need, and how to shop for it in the US or UK

Quantities are in the recipe card: 800 g (1¾ lb) of trimmed fish for 4, about 7 oz (200 g) per person, and one 13.5 fl oz (400 ml) can of coconut milk.

Which fish to buy

You want firm white fish that holds together in a sauce. In Colombia it’s usually snapper, corvina (a type of drum) or snook, and the catfish-like bagre inland. The recipes I checked use swordfish, sea bass, halibut, cod or tilapia.

Which fish to buy in the US or UKMatrix of fish for a coconut sauce, with US and UK availability. Red snapper: firm, holds well, US fish counters and Latin or Asian markets, the classic choice. Halibut: firm and thick, US and UK, very good but pricey. Mahi-mahi: firm, sold frozen in the US, very good. Monkfish: very firm, UK fishmongers, excellent. Catfish: firm and cheap, US supermarkets, good value. Cod or hake: flakes into large pieces, everywhere in the UK and US, use thick loins and less time. Tilapia: thin fillets, everywhere, fine if the fillets are thick. Swai or basa: soft and falls apart, US and UK freezers, a last resort.Holds in sauceWhere to find itVerdictRed snapperfirmUS fish counterthe classicHalibutfirm, thickUS and UKgreat, priceyMahi-mahifirmUS, often frozenvery goodMonkfishvery firmUK fishmongersexcellentCatfishfirmUS supermarketsgood valueCod or hakeflakes aparteverywherethick loins onlyTilapiathin filletseverywherethick fillets onlySwai or basasoft, breaks upUS and UK freezerslast resort
For pieces that stay whole, snapper, halibut, mahi-mahi, monkfish or catfish, cut about 1¼ inches (3 cm) thick. Cod and hake taste great but break into flakes, so add them later and stir less.

Thickness matters as much as the species. Within 3 or 4 minutes a thin ½-inch (1 cm) fillet is cooked through, long before the sauce has flavored it, and it shreds when you serve it. Ask the fish counter for a thick piece from the loin end, or buy steaks about 1¼ inches (3 cm) thick. Frozen fillets are fine: thaw them overnight in the fridge and dry them well, because the water they release thins the sauce.

Canned or fresh coconut milk

Both work. Fresh doesn’t automatically mean better.

  • Canned. Use full-fat, not light. USDA data puts canned coconut milk at about 21 g of fat per 100 g, and that fat is what gives the sauce body. Brands with guar or xanthan gum resist splitting, which helps here.
  • Fresh. Tastes more of coconut and less of the can. A medium coconut gives about 14 oz (400 g) of meat, per USDA, enough for both pressings in this recipe. The method is in the planning section below.
  • Light coconut milk or coconut drink in a carton. Skip them. They’re mostly water, so the sauce turns thin and the fat can’t carry the hogao.

Hogao, sweet peppers and culantro

Hogao is the Colombian sofrito: onion, scallions, bell pepper, garlic and tomato, cooked until the tomato collapses. It’s the same base as the sauce on Colombian patacones, with more pepper. Annatto, sold as ground achiote in the Latin aisle, mostly adds orange color; ½ tsp sweet paprika does a similar job.

Ají dulce is a small sweet pepper with a floral smell and no heat. Latin and Caribbean grocers sometimes stock it, often frozen. If you can’t find it, use 40 g (1.4 oz) more red bell pepper.

Chillangua is Eryngium foetidum, the same plant sold as culantro or recao in US Latin markets and as ngò gai in Vietnamese ones. It tastes like a louder cilantro and stands up to heat better. Plain cilantro is what most cooks outside the Pacific use.

UK shopping. Coconut milk is in every supermarket’s world-foods aisle. For fish, ask for thick monkfish, hake loin or sea bass fillets; ground annatto turns up in Latin American online shops, and paprika covers for it.

Equipment

A deep 11-inch (28 cm) skillet or braiser with a lid, so the fish fits in one layer, and a thin fish spatula. No lid? A sheet pan or snug foil works. For fresh coconut, a blender and a fine strainer or a clean kitchen towel. An instant-read thermometer takes the guessing out of doneness.

How to plan it, from chopping to resting

55 minutes in total. The order matters because the fish sits in its lime marinade exactly as long as the sauce base takes, so it never goes past 30 minutes.

Fish in coconut sauce for 4, planned over 55 minutesTimeline for Colombian fish in coconut sauce, serving 4. Minutes 0 to 12: chop the onion, bell pepper, garlic and tomato. Minutes 12 to 20: soften the onion and pepper while you cut the fish and season it with salt, garlic and lime. Minutes 20 to 40: the fish waits in the fridge. Minutes 20 to 30: garlic, annatto and tomato cook down into hogao. Minutes 30 to 40: the thin coconut milk simmers gently with the hogao. Minutes 40 to 50: the fish poaches covered in the sauce without stirring. Minutes 50 to 52: the thick coconut cream and cilantro go in. Minutes 52 to 55: it rests covered off the heat. About 35 minutes are hands-on.01020304050minutesChop the vegetables12 minSoften onion and pepper8 minCut and season the fish8 minFish rests in the fridge20 minGarlic, annatto, tomato10 minCoconut milk, low heat10 minFish poaches, covered10 minCoconut cream, cilantro2 minRest, covered3 minhands-onon the heat or chilling, unattendedoff the heat
55 minutes start to finish, about 35 of them hands-on. The fish seasons in the fridge for exactly as long as the sauce base takes, so both are ready at the same moment.

How to tell each stage is right.

  • Onion and pepper → soft and glossy after 8 minutes, the onion see-through. If they brown, the heat is too high and the sauce will come out darker.
  • Hogao → no visible tomato pieces, thick, with a little reddish oil at the edge.
  • Coconut milk → small bubbles at the edge only. Big bubbles in the middle mean turn it down now.
  • Sauce ready for the fish → it coats a spoon, and a finger drawn across the back leaves a clean line.
  • Fish → 145°F (63°C) at the center of the thickest piece, or opaque all the way through and flaking easily.

Making coconut milk from a fresh coconut

  1. Crack it. Pierce two of the eyes with a clean screwdriver and drain the water. Tap firmly around the middle with the back of a heavy knife or a hammer until it splits.
  2. Pry out the meat with a blunt knife. You can leave the brown skin on; the milk comes out slightly less white.
  3. First pressing, the thick cream. Blend the meat in pieces with 250 ml (1 cup) hot, not boiling, water for about 2 minutes, then squeeze it through a towel.
  4. Second pressing, the thin milk. Blend the pulp again with 300 ml (1¼ cups) hot water and squeeze again.

The thick first pressing is saved for the end and the second goes into the sauce, much like the thin-then-thick method in Kerala fish moilee. With fresh coconut milk, leave out the 60 ml (¼ cup) water in the recipe.

What you can do ahead

  • The day before → the complete sauce, hogao plus thin coconut milk, without the fish or the thick cream. It keeps 3 to 4 days in the fridge, USDA’s window for cooked leftovers. On the day, rewarm it gently, add the fish and dinner is 15 minutes away.
  • The day before → homemade coconut milk, in a sealed jar in the fridge. It separates and the fat sets on top; Food Republic notes that separation doesn’t mean it has gone bad. Blitz it for 10 seconds before using.
  • On the day → the fish and its marinade, 30 minutes at most before cooking. The FDA advises keeping raw fish no more than 2 days in the fridge.

Feeding 8, 12 or 20

Plan on 7 oz (200 g) of fish and about 3.4 fl oz (100 ml) of coconut milk per person, and one batch of hogao for every 4. What doesn’t scale is the pan: the fish needs a single layer.

PeopleFishCoconut milkHow to cook it
41¾ lb (800 g)1 canone 11-inch (28 cm) skillet
83½ lb (1.6 kg)2 canstwo skillets or a wide 16-inch (40 cm) pan
125¼ lb (2.4 kg)3 canssauce in a pot, fish in sheet pans in the oven
208¾ lb (4 kg)5 canssauce the day before, fish in 3 sheet pans

For a crowd, I make the sauce in a big pot, divide it between sheet pans, lay the fish in one layer, cover with foil and bake at 350°F (180°C) until the center reads 145°F (63°C); in my oven that takes 15 to 20 minutes. If it has to wait, USDA says to hold hot food above 140°F (60°C).

Before you start, splitting, breaking, safety and allergens

Safe doneness. The FDA’s safe minimum for fish is 145°F (63°C) at the center, or flesh that’s opaque and separates easily with a fork.

The temperatures that matter for fish in coconut sauceTemperature scale in Fahrenheit with Celsius. Leftovers keep 3 to 4 days at 40 degrees Fahrenheit, 4 Celsius, or below. Fish is done at 145 Fahrenheit, 63 Celsius, according to the FDA. Leftovers are reheated to 165 Fahrenheit, 74 Celsius, according to the USDA. Above about 176 Fahrenheit, 80 Celsius, held for a long time, coconut milk can start to split. At a rolling boil, 212 Fahrenheit, 100 Celsius, the sauce breaks and turns oily.40°F (4°C)fridge, 3-4 days145°F (63°C)fish is done (FDA)165°F (74°C)reheat leftovers176°F (80°C)coconut may split212°F (100°C)hard boil, sauce breaks40°F80°F120°F160°F200°F
Fish is done at 145°F (63°C), and coconut milk starts to split if it sits for long above about 176°F (80°C). That’s why the sauce only ever trembles, never boils hard, and the fish needs just 10 minutes.

Why coconut milk splits, and how to rescue it

Coconut milk is an emulsion of fat and water held together by its own proteins. Tasting Table and Food Republic both put the trouble point at about 176°F (80°C): held above it for long, the proteins change, the emulsion breaks, and you get curds with a slick of oil on top. Three things cause it:

  • A hard boil → the main one. Keep it at a tremble, and keep it short: 8 to 10 minutes with the hogao, 8 to 10 with the fish.
  • Cold milk into a hot pan → the temperature shock splits it too. Leave the can out for an hour or store it in the pantry.
  • Acid mid-cook → that’s why the fish goes in without its marinade liquid and the lime goes on the table.

If it splits anyway. It’s safe, just not pretty. Turn off the heat, lift the fish onto a plate, whisk 1 tbsp cornstarch into 2 tbsp water and stir it into the sauce a little at a time, as Tasting Table suggests. Within 2 or 3 minutes the sauce comes back together. Return the fish.

Keeping the fish in one piece

  1. Firm species, thick cut → 1¼ inches (3 cm).
  2. Dry it before seasoning → surface water dilutes the sauce and steams the fish.
  3. No more than 30 minutes in lime → beyond that the outside turns chalky and crumbles in the pan.
  4. One layer, no spoon → swirl the pan, or turn each piece once with a spatula.
  5. Don’t overshoot 145°F (63°C) → past it the flakes separate on their own. Pull it a minute early and let it rest covered.

Common mistakes

  • Thin, watery sauce → light or carton coconut milk, or not simmered for the full 8 to 10 minutes. Uncover and let it tremble a few minutes more before the fish goes in.
  • Oily sauce with curds → it boiled. See above.
  • Tastes only of coconut → the hogao was rushed. Onion and tomato must be fully broken down first.
  • Dry, stringy fish → thin fillets or too long. Thick chunks and a thermometer.
  • Tastes of lime → marinated over 30 minutes, or the marinade went in with the fish.

Heat level, 0 out of 5. Neither ají dulce nor bell pepper is hot. Put hot sauce on the table for anyone who wants it.

Kids? Usually yes: the sauce is mild and slightly sweet. Use boneless fillets for them.

Allergens. Fish. Coconut isn’t one of the 14 allergens that must be declared in the UK and EU, but coconut allergy exists, so ask if you’re cooking for others. The dish is free of gluten, dairy and eggs, provided your annatto or seasoning blend has no added flour.

Which version to make

  • Short on time → canned coconut milk and hogao made ahead. Warm it, add the milk, 8 minutes, then 10 for the fish: about 25 minutes.
  • With fresh coconut → the coastal way, with two pressings. Adds about 20 minutes.
  • For a party → sauce the day before and the fish baked in sheet pans, as in the table above.
  • Lighter → half the can, half water or fish stock. About 93 kcal less per plate, a thinner and less sweet sauce.
  • With shrimp → peeled shrimp for the last 3 minutes, until pink. For a full seafood version with cream, the Colombian seafood stew is its own recipe.
  • Vegetarian → there’s no traditional one. The same sauce works with cooked chickpeas or hearts of palm, 10 minutes on low.

How it compares with encocado, moqueca and other fish stews

DishBaseWhat sets it apart
Colombian fish in coconut saucehogao and coconut milkchunks of fish in a thick sauce; 55 min for 4
Ecuadorian encocadosofrito and coconut milkmarinade with lime, orange, cumin and ground coriander, per Laylita
Bahian moquecacoconut milk and dendê palm oilthe palm oil; the Espírito Santo version skips both, per TudoGostoso
Colombian tapaolittle water, green plantaincovered pot, chillangua; “not a soup”, says cook Hamilton Urrutia to Radio Nacional
Colombian river fish stewbroth with cassava, plantain, potatowhole river fish from the Magdalena; 70 min for 6

If you’d rather have fish without a sauce, Colombian beach-style fried mojarra is the crunchy, whole-fish route.

What it costs to make in the US

There’s no official US retail price series for fish fillets or canned coconut milk, so I can’t give you an honest total. What I can price, with the BLS average for tomatoes (August 2026) and USDA AMS retail averages from October 2026 for the produce: tomatoes $1.09, onion $0.40, one lime $0.50, a bunch of cilantro $0.97 and garlic $0.16, about $3.12 in all.

To finish the sum, take the per-pound price on your fish label and multiply by 1.76, then add one can of coconut milk. The fish is almost always most of the bill; catfish is the budget pick that still holds together, and snapper or halibut the splurge.

Real yield. 4 plates, each with about 7 oz (200 g) of fish and plenty of sauce. With coconut rice and patacones it stretches to 5 light eaters.

What to expect, how to serve it and how to store leftovers

Taste and texture. A thick, orange sauce, sweet from coconut and onion with a savory tomato base, and moist fish that flakes apart when you press it with a spoon. The cilantro at the end keeps it fresh.

How to serve it. In shallow bowls with plenty of sauce. On the side, Colombian coconut rice on the Caribbean coast or plain rice, patacones and a tomato-onion salad. To drink, a frosty coconut lemonade. Leftover sauce makes a quick base for Colombian shrimp rice the next day.

Fridge. USDA FSIS allows 2 hours at most at room temperature and 3 to 4 days in the fridge at 40°F (4°C) or below, covered.

Freezer. Cooked fish keeps 4 to 6 months frozen, per FoodSafety.gov. The sauce separates when thawed; it isn’t spoiled, and gentle heat with stirring brings it back. I freeze the sauce on its own and add fresh fish when I use it.

Reheating. Warm the sauce alone over low heat and add the fish last, covered, just until the center reaches 165°F (74°C), the FSIS target for leftovers. In the microwave, cover it and use half power in 1-minute bursts; full power splits the sauce and turns the fish rubbery.

Colombian fish in coconut sauce FAQ

What’s the best fish for coconut sauce? Firm white fish: red snapper, halibut, mahi-mahi, monkfish or catfish. Thin tilapia and swai or basa tend to fall apart.

Why did my coconut milk curdle? It boiled hard, went cold into a very hot pan, or met acid mid-cook. Keep it at a tremble and add lime at the table.

Can I fix a split coconut sauce? Yes. Take it off the heat, remove the fish, and stir in a slurry of 2 tbsp water and 1 tbsp cornstarch, a little at a time.

How long does the fish cook in the sauce? About 8 to 10 minutes, covered on low, for 1¼-inch (3 cm) chunks, until 145°F (63°C) at the center. Thin fillets are done in 3 or 4 minutes, so add them later.

Is canned coconut milk okay? Yes, full-fat and at room temperature. Spoon off the thick cream for the end and cook the sauce with the rest.

Can I use frozen fish? Yes. Thaw it overnight in the fridge and pat it very dry first.

Is this the same as encocado? In Colombia the names overlap. The Ecuadorian encocado usually has orange juice and cumin in the marinade; the Colombian version builds on hogao.

Is it spicy? No. It’s mild and slightly sweet; serve hot sauce on the side.

What do you serve with it? Coconut rice or white rice, patacones and a simple salad.

Nutrition per serving

Per serving (about 7 oz / 200 g fish and a quarter of the sauce, without rice or plantains), calculated ingredient by ingredient from USDA FoodData Central (SR Legacy) with this recipe’s quantities, using snapper and canned coconut milk:

  • Calories: 497 kcal
  • Protein: 45 g
  • Carbohydrates: 14 g
  • Fat: 30 g, of which 19 g saturated
  • Fiber: 3 g
  • Sugars: 6 g
  • Sodium: 733 mg
Where the calories in the pot come fromBar chart of the calories in the whole pot of Colombian fish in coconut sauce for 4, calculated from USDA SR Legacy data. 800 grams of snapper: 800 kilocalories. One 13.5 ounce can of full-fat coconut milk: 743 kilocalories. 2 tablespoons of oil: 239 kilocalories. Onion, scallions, bell pepper, sweet peppers, tomato, garlic, lime, cilantro and cumin together: 206 kilocalories. The pot totals about 1,988 kilocalories, or 497 per serving.Whole pot for 4, USDA SR LegacyFish, 800 g (1¾ lb)800 kcalCoconut milk, 1 can743 kcalOil, 2 tbsp239 kcalVegetables and herbs206 kcal
The can of coconut milk is 37% of the pot’s calories and 94% of its saturated fat. Swapping half of it for water or fish stock saves about 93 kcal a plate; the sauce comes out thinner and milder.

Most of the sodium, 581 mg per serving, comes from the salt itself. USDA lists no fiber or sugar for canned coconut milk, so those two figures run slightly low.

I grew up in Venezuela eating fish fried or in soup, and I learned fish in coconut sauce in Colombia, mostly by watching other cooks. My first attempts failed exactly where yours might: a boiling, curdled sauce, and fish broken into threads because I stirred it like a beef stew. These days I make it with catfish more often than snapper because it’s cheaper and holds up just as well, and I still pick the bones out for Dylan before his plate leaves the stove. Josnaisis.

Colombian Fish in Coconut Sauce, Pacific Coast Recipe

Colombian Fish in Coconut Sauce, Pacific Coast Recipe

By Josnaisis Ramirez · Gran Receta

Rate
★ ★ ★ ★ ★
✓ Thanks!

Prep

20 min

Cook

35 min

Servings

4

people

Total

55 min

Difficulty

Easy

Cuisine

Colombian · Venezuelan

Calories

497 kcal

Ingredients

For 4 servings · Check off what you have

Instructions

1

Pat the fish dry and cut it into chunks about 2 inches (5 cm) across and 1¼ inches (3 cm) thick. Toss with ½ tsp salt, the pepper, the 2 crushed garlic cloves and the lime juice, cover and refrigerate while you make the sauce, about 20 minutes and never more than 30. Longer than that, the lime starts to turn the surface white and chalky.

2

Open the can without shaking it and spoon off the thick cream that has risen to the top, about 100 ml (scant ½ cup). Set it aside. Stir the rest of the can with the 60 ml (¼ cup) water: that thinner milk is what the sauce cooks in. With fresh coconut, the first pressing is the thick cream and the second is the thin milk.

3

Heat the oil in a deep 11-inch (28 cm) skillet or wide braiser over medium heat. Add the onion, scallions, bell pepper and ají dulce and cook for 8 minutes, until soft and the onion is translucent but not browned.

4

Add the minced garlic, annatto and cumin and stir for 1 minute. Add the tomatoes and the remaining ½ tsp salt and cook 8 to 10 minutes, until the tomato has collapsed and the base is thick, with a little reddish oil showing at the edges. This is the hogao.

5

Turn the heat to medium-low and pour in the thin coconut milk gradually, stirring. Cook 8 to 10 minutes at the barest simmer, the surface trembling with small bubbles only around the edge, until the sauce coats the back of a spoon. A hard boil is what splits coconut milk, so don't let it get there.

6

Lift the fish out of its marinade, leaving the liquid behind, and lay it in a single layer in the sauce. Spoon sauce over it, cover and cook on low for 8 to 10 minutes without stirring; swirl the pan or turn each piece once with a thin spatula if needed. It is done when the center reads 145°F (63°C) or the flesh is opaque and flakes with a fork.

7

Take the pan off the heat, or turn it to its lowest setting, and add the reserved coconut cream and the cilantro. Swirl the pan to combine and let it rest, covered, for 3 minutes. Taste for salt and serve with rice, patacones and lime wedges.

Nutrition

Approximate values per serving · 4 servings total

497

kcal

45g

Protein

14g

Carbs

30g

Fat

3g

Fiber

19g

Sat. fat

733mg

Sodium

6g

Sugar

Tip: Coconut milk splits when it boils hard or when it goes cold into a very hot pan, so bring it to room temperature and keep the sauce just trembling. Cut the fish 1¼ inches (3 cm) thick, lay it in one layer and move the pan, not the fish: that is how the pieces reach the plate whole.
#Colombian fish in coconut sauce#fish in coconut milk#pescado en salsa de coco#Colombian coconut fish stew#Latin American fish recipes
Josnaisis Ramirez
Josnaisis Ramirez · Cook & author

Mom of Dylan and home-cooking enthusiast. I share the Venezuelan and Colombian recipes that shaped my life. My story →

Link copied! Now you can share it