Gently poached halibut in fragrant coconut milk broth, served over turmeric rice with charred scallions. Ready in under an hour.
Poaching fish in coconut milk is one of those techniques that sounds fancier than it is — the liquid stays below a simmer, which means you almost can't overcook the fish as long as you're paying attention. This recipe builds a deeply aromatic broth with fresh ginger, lemongrass, and fish sauce before the halibut ever hits the pan, so every bite of fish is saturated with flavor rather than just coated by it.
The result is silky, flaky halibut with a broth that's somewhere between a Thai poaching liquid and a light curry — fragrant, gently spiced, with enough brightness from lime to keep it from feeling heavy. Turmeric rice soaks up the extra broth and turns the whole thing into a satisfying weeknight dinner that also works for a low-key dinner party. If your halibut looks like it's cooking unevenly, tilt the pan slightly and baste the thicker end with a spoon — it'll come to temperature in another 90 seconds.
🛒 Links may earn us a small commission at no cost to you.
🛒 We may earn a small commission at no extra cost to you. We only recommend gear we'd use ourselves.
A crisp, dry Riesling from Alsace — something like a Trimbach Réserve — is the natural call here. Its stone fruit and petrol notes cut through the coconut fat without overwhelming the delicate halibut, and it has just enough residual sweetness to stand up to the fish sauce. If you're reaching for white Burgundy, go with a village-level Mâcon-Villages rather than a richer Meursault, which would compete.
For beer, a Belgian witbier like Allagash White is excellent. The coriander and orange peel in the beer echo the citrus and spice notes in the broth in a way that feels intentional rather than accidental. Avoid IPAs here — the bitterness clashes with the coconut milk.
Non-alcoholic: make a quick ginger limeade (1 tbsp fresh ginger juice, 2 tbsp lime juice, 1 tsp honey, topped with sparkling water). It mirrors the broth's ginger and lime backbone and cleanses the palate between bites.
For sides, a simple cucumber salad dressed with rice vinegar, sesame oil, and toasted sesame seeds provides crunch and acidity that the soft halibut needs alongside it. A small bowl of sliced fresh chilies and a wedge of lime on the table lets each diner tune the heat level without adjusting the whole pot.
For a dairy-free and vegan version, swap the halibut for two 14-oz blocks of extra-firm tofu, pressed and sliced into 1-inch planks. Reduce the poaching time to 8 minutes since tofu doesn't need to cook through — it just needs to absorb the broth. Add 1 tbsp more fish sauce OR use 2 tbsp soy sauce plus 1 tsp nori flakes to maintain the savory depth that fish sauce provides.
If halibut isn't available or is outside budget, cod loins are the closest substitute — same thickness, similar flakiness. Avoid tilapia fillets here; they're too thin and will overcook in the broth before it reduces properly. Mahi-mahi works well and holds up slightly firmer, which some people prefer.
To make this gluten-free, the recipe is already compliant as written — just confirm your fish sauce label reads gluten-free (Tiparos brand is reliably safe). If scaling up to serve 8, use a 12-inch straight-sided sauté pan or a wide Dutch oven and increase the broth by 50% (1.5 cans coconut milk, 1.5 cups stock). Don't increase fish pieces more than 6 — poach in two batches instead to avoid crowding, which drops the broth temperature and causes uneven cooking.
For a Southeast Asian variation, add 4 fresh kaffir lime leaves (torn) and 1 stalk bruised lemongrass (additional) to the broth and let it steep for 5 minutes before adding the fish. Finish with Thai basil instead of scallions for a more distinctly Thai profile.
Yes, but thaw it completely in the refrigerator overnight and pat it very dry before poaching. Frozen fish releases water as it cooks, which dilutes the broth and causes the fish to steam rather than poach. If the fillets feel soft or waterlogged after thawing, press them gently between paper towels for 5 minutes before they go in the pan.
Yes — the coconut broth can be made up to 2 days ahead and refrigerated in an airtight container. Reheat it gently over medium-low until it just steams before adding the fish. Don't boil it hard during reheating or the coconut milk can separate and turn grainy.
Store fish, rice, and broth separately in airtight containers in the refrigerator for up to 2 days. The fish will continue absorbing the broth if stored together, which makes it taste over-seasoned by day two. Reheat the fish gently in a covered pan with a splash of broth over low heat — about 3 minutes — rather than microwaving, which toughens it.
Freeze the broth only — it holds well for up to 1 month. Poached halibut doesn't freeze well; the texture becomes mealy and waterlogged after thawing. The turmeric rice freezes fine in portioned zip-lock bags for up to 3 months.
If the coconut milk separates into visible fat globules, your heat was too high. Pull the pan off the stove, add 2 tablespoons of cold water, and whisk briefly — it usually comes back together. Next time, keep the broth at a bare simmer (you should see lazy bubbles at the edge, not a rolling boil) before adding the fish.
You can, but the broth will be noticeably thinner and less rich. To compensate, reduce the broth for an extra 3-4 minutes before adding the fish. Full-fat coconut milk (Chaokoh or Aroy-D are reliable brands with higher fat content) gives you the silky consistency that makes this dish work.
Substitute the lemongrass with 1 tsp lemon zest plus 1 tsp lime zest added at the same stage. It won't have the same woody, floral depth, but it provides the citrus brightness lemongrass contributes. Avoid lemongrass paste in tubes — it's fine in a pinch but too sweet for this application; use 1 tsp if you have no other option.
Press gently on the thickest part with a fork — it should yield and begin to flake, and the flesh should have turned from translucent to opaque white all the way through. An instant-read thermometer should read 130°F for just-done, which carries to 135°F after resting. At 145°F it's overcooked; the texture will be mealy rather than silky.
Bowls are actually ideal for this recipe — mound the turmeric rice in the center, lay the fish on top, then ladle the broth around the base of the rice. Deep wide bowls (like Japanese ramen bowls) work better than shallow dinner plates because you want enough broth to soak into the rice as you eat.
Cod loins are the best substitute and are more widely available. Sea bass (striped or black) also works and stays slightly firmer after poaching. Avoid thin fillets under 3/4 inch thick regardless of species — they'll cook through before the broth has a chance to season them properly.
Daily Home Cookery is self-funded. If something you cooked here made dinner a little better, a coffee keeps the kitchen running.
☕ Buy me a coffee
Shredded rotisserie chicken, napa cabbage, edamame, and crispy wonton strips with a ginger-sesame dressing. Ready in 15 minutes, great for meal prep.
A meal-prep-friendly Mediterranean quinoa bowl with chickpeas, Kalamata olives, feta, and a sharp lemon-oregano dressing. Ready in 30 minutes.
Deeply savory miso butter braised cabbage topped with shatteringly crispy chickpeas. A fast, pantry-friendly weeknight vegetarian dinner.