Years ago, on a slow trip through the Kerala backwaters, our boat tied up near a small house where the family cooked lunch for travellers on the veranda. There was no menu. The fish had come off a canoe that morning, the coconuts came down from the tree behind the house, and what arrived at the table was a shallow bowl of the palest golden curry I had ever seen, with thick white fish pieces resting in it. That was my first fish moilee, eaten with lacy appam and my fingers, and the cook — the grandmother of the house — gave me the rule I still cook by: the curry must taste of the sea and the coconut, never of the spice shelf. This fish moilee recipe is my attempt to honour her bowl: gentle, fragrant, and calm.
It helps to say what moilee is not. Most of us grew up on the other kind of fish curry — a bold, red tomato-and-onion masala. Moilee goes the opposite way. Nothing browns in the pan, nothing shouts. The onions soften until they are sweet and translucent, the heat comes from slit green chilies you can fish out before serving, and the fish is poached — lowered into warm coconut milk and left alone — instead of being fried or stirred through a gravy. The first time I made it at home I kept waiting for the moment to add more of everything. That moment never comes — learning to leave the dish alone is the whole lesson of this fish moilee recipe.
Why This Fish Moilee Recipe Works
Moilee looks simple enough to improvise, but its softness is engineered: every step protects either the fish or the coconut milk, the two fragile things in the pan. Here is what this fish moilee recipe does differently and why:
- The coconut milk goes in at two thicknesses, in the right order. Thin coconut milk — diluted, so it can hold a bare simmer without splitting — does the poaching. The thick milk is stirred in only at the end, off the heat, so it stays glossy instead of separating into oil and curds.
- The fish is poached, never stirred. The pieces slide into the warm sauce and the pan is swirled gently, or tilted so the sauce washes over the tops. A spoon through this curry will break the fish into flakes and cloud the milk; patience keeps both whole and clear.
- Nothing is allowed to brown. The onions cook low and slow until soft and pale, never golden. Browning belongs to masala curries; here it would drag the flavour toward heaviness and muddy the ivory-gold colour turmeric gives the sauce.
- Curry leaves in hot coconut oil open the dish. That first sizzle — leaves crackling in coconut oil with mustard seeds — sets the signature aroma of the whole coast into the pan. It takes thirty seconds, and the curry never tastes right without it.
- Lemon and thick milk finish off the heat, always. Acid and a hard boil are the two things that break a coconut sauce. Adding the lemon juice and thick milk after the pan leaves the flame keeps the sauce silky and bright.
Ingredients
The dish Kerala calls fish molee — moilee, molly, the spelling changes from house to house — is built on one ingredient above all: coconut milk, pressed from freshly grated coconut in the homes where this curry was born. Coastal cooks press a thin second extraction for the cooking and save the rich first pressing for the finish; we can honestly fake it with a can — part stirred with water for the poaching milk, the thick spoonfuls from the top kept for the end. The fish itself should be firm and thick-cut — king fish (surmai) or pomfret are the Kerala classics, and cod, halibut, or sea bass from a Western fish counter behave exactly the same way. Everything else is a short, gentle list: ginger, green chilies, curry leaves, turmeric, and the coconut oil that ties it to its coastline.
Serves 4
For the fish and its quick marinade:
- 1 1/2 pounds firm white fish (king fish, pomfret, cod, halibut, or sea bass), cut into thick steaks or large chunks
- 1/2 teaspoon ground turmeric
- 1/2 teaspoon salt
- 1 tablespoon lemon juice
For the coconut milk curry:
- 2 tablespoons coconut oil
- 1 teaspoon black mustard seeds
- 14 to 16 fresh curry leaves, plus a few more for serving
- 1 large onion, thinly sliced into half-moons (about 1 1/2 cups)
- 1 tablespoon fresh ginger, cut into fine matchsticks
- 4 fresh green chilies, slit lengthwise (keep the seeds in for more heat)
- 3 garlic cloves, thinly sliced (optional, but lovely)
- 1/2 teaspoon ground turmeric
- 1/2 teaspoon freshly ground black pepper
- 1 1/2 cups thin coconut milk (or 3/4 cup canned coconut milk stirred with 3/4 cup water)
- 3/4 cup thick coconut milk or the thick cream from the top of a second can, unshaken
- 1 small tomato, chopped (optional — some homes add one)
- Salt, to taste (start with 3/4 teaspoon)
- 1 tablespoon lemon juice, plus lemon wedges to serve
How to Make This Fish Moilee Recipe – Step by Step
Step 1: Give the fish a short, gentle marinade. Pat the fish pieces dry with paper towels — a dry surface keeps them from weeping into the sauce later. Rub them all over with the turmeric, salt, and lemon juice, cover, and leave for 15 minutes at room temperature while you prepare everything else. This is seasoning, not a long cure: the turmeric gives the finished pieces their faint golden blush, the salt firms the flesh slightly, and anything beyond half an hour starts to toughen the surface, so keep it brief.
Step 2: Soften the aromatics in coconut oil without any colour. Warm the coconut oil in a wide, shallow pan or a clay chatti over medium heat. Drop in the mustard seeds and let them pop for a few seconds, then add the curry leaves — stand back, they crackle fiercely. Slide in the sliced onions with a pinch of salt and cook them low and patiently for 6 to 8 minutes, stirring often, until they are soft, sweet and translucent but still completely pale. Add the ginger matchsticks, slit green chilies, and garlic, and give them one more minute until the raw smell lifts. If the onions catch golden edges, your heat is too high; this fish moilee recipe wants them melted, not fried.
Step 3: Build the thin coconut milk base and bring it to the barest simmer. Stir the turmeric and black pepper into the onions for ten seconds, then pour in the thin coconut milk (and the tomato, if using). Let it come up slowly to the gentlest possible simmer — lazy bubbles at the edges, steam rising, nothing like a rolling boil. Taste and settle the salt now, then give the base 3 to 4 minutes at its quiet simmer so the ginger and chilies perfume the milk.
Step 4: Slide the fish in and poach it, swirling the pan only. Lay the marinated pieces into the sauce in a single layer, tucking them down so the milk reaches most of the way up their sides. From this moment, no spoon goes near the fish. Swirl the pan gently every minute or so, or tilt it and let the sauce wash over the tops; if a piece sits too proud of the liquid, spoon sauce over it — spooning over is allowed, stirring through is not. Poach for 6 to 8 minutes depending on thickness, until the fish turns opaque, feels firm-but-giving when pressed, and a flake at the thickest part separates cleanly. Handle these pieces like glass the whole way; they reward it.
Step 5: Finish off the heat with thick milk and lemon. Take the pan off the flame completely. Pour the thick coconut milk in a slow ribbon around the fish and swirl the pan once — the curry will turn paler, richer and silkier. Rest it a full minute off the heat, then stir in the lemon juice, scatter a few fresh curry leaves over the top, and swirl once more. Serve this fish moilee recipe straight from the pan, because it waits for nobody: the sauce is at its glossy best in the first ten minutes.
Serving Suggestions
In Kerala this curry is ladled over appam — the lacy-edged rice pancakes whose spongy centres exist precisely to soak up a sauce like this — and eaten with fingers, tearing, dipping, and chasing the last of the milk. At home, plain steamed rice does the same job honourably — a mound in the middle of the bowl with the moilee poured over it. Keep everything else on the table quiet: a cucumber salad, papad, lemon wedges. The curry is mild by design, so let people heat their own portion with a fresh chili rather than firing up the whole pan.
If moilee’s calm surprises you after a lifetime of fiery fish curries, the contrast is worth exploring across this site. My fish curry is the full Punjabi Friday-night version — bold tomato-onion masala, real heat, the fish seared before it simmers — a world away from this bowl, from the same market fish. And for the days when the curry pot stays in the cupboard altogether, masala fish gives you the spice-crusted, pan-fried route: dry, punchy, and made for tearing with roti. Three fish, three tempers — the gentle coconut poach is the one I cook when I want the house to feel peaceful.
Storage and Reheating
Honestly, this fish moilee recipe is at its best the day it is made — within the hour, while the sauce is still glossy and the fish just-poached tender. If you do have leftovers, refrigerate them for up to one day and reheat them the gentlest way you know: slide everything into a pan over the lowest flame, warm it through without ever reaching a simmer, and swirl rather than stir — a re-boiled leftover splits the sauce and toughens the fish in one move. Freezing is not recommended; coconut sauces thaw grainy and the fish turns woolly, so make only what the table will finish.
Frequently Asked Questions
Why did my coconut milk split and look curdled?
Heat or acid got to it too hard. Coconut milk separates when it boils properly, and lemon juice stirred into a bubbling sauce will break it almost instantly. The defences built into this fish moilee recipe are the thin milk for the simmering stage, and both the thick milk and the lemon going in off the heat at the end. If a sauce has only just started to grain, taking it off the flame and swirling in two spoonfuls of cold thick coconut milk sometimes persuades it back together.
Which fish works best, and can I use frozen fish?
Choose anything firm, thick, and mild: king fish and pomfret on the coast, cod, halibut, sea bass, or mahi-mahi elsewhere. Thin, delicate fillets like sole fall apart in the poach, and oily fish like mackerel fight the coconut’s sweetness. Frozen fish works perfectly well — thaw it fully in the fridge, then pat it very dry before the marinade, because surface water is the enemy of a clean, silky sauce.
Can I make this with light coconut milk or a carton of coconut drink?
Light coconut milk can stand in for the thin poaching stage, though the sauce will taste a little leaner. For the finishing pour, though, you need the real thick milk or coconut cream — that last ribbon is where the dish gets its richness, and a coconut-milk drink carton is too watery and sweetened to belong in this pan. When in doubt, one full-fat can, divided as the ingredients describe, beats every substitute.
My family finds green chilies too hot — how mild can moilee go?
As mild as you like, because the chilies here are perfume, not punishment. Slit them whole and fish them out before serving for fragrance with barely a whisper of heat, or leave them out entirely and let the black pepper carry the warmth — many Kerala homes serve exactly that version to children and grandparents. What you should not do is swap in red chili powder; its raw, dusty heat belongs to masala curries and flattens everything delicate in this one.
Recipe Summary
- Prep time: 20 minutes (including the 15-minute marinade)
- Cook time: 20 minutes
- Total time: About 40 minutes
- Servings: 4
- Cuisine: Pakistani
- Course: Main Course
