Recipes Diets we supportDiets Start your planStart plan

Coconut Halibut Curry

Flaky halibut and tender spinach gently poached in a silky coconut-and-tomato sauce fragrant with ginger, garlic, turmeric, and cumin, brightened with lime and cilantro and spooned over warm rice.

By Camille McLaughlin, RDN, LD, registered dietitian nutritionist

Built forPescatarianDinner
Also fits Balanced Gut-Health High-Protein Anti-Inflammatory Mediterranean DASH
Coconut milk and crushed tomatoes cook down into a sauce thick enough to coat a spoon, warm with ginger and garlic. Halibut chunks poach in it without breaking apart, spinach wilts down at the last minute, and lime squeezed over at the table cuts straight through the richness. Rice takes the rest.
↓ Jump to Recipe

Why You'll Love This Recipe

This is a warming, one-pan seafood curry for anyone who wants a comforting dinner that still feels light. The halibut stays delicate and flaky because it is poached gently in the sauce rather than fried, and the coconut milk gives the whole dish a rounded, soothing richness. It suits a weeknight when you want something nourishing without a long list of steps, and it is gentle enough to please people who say they do not usually love fish.

Turmeric, cumin, cayenne, garlic, and ginger all go into hot oil before a drop of liquid does. Toasting the spices in fat wakes up their aroma and lets them coat the onion, so the flavor is layered rather than raw and dusty. Once the tomatoes and coconut milk go in, a low, patient simmer marries the tang of the tomato with the sweetness of the coconut into a sauce that clings to the fish. Adding the halibut last, over the lowest simmer, keeps it tender instead of tough.

Richness, warmth, and freshness in the same bowl. The fish is mild and filling, the coconut milk makes it feel indulgent, and the spinach folds in an earthy green note that keeps the plate from feeling heavy. A finishing squeeze of lime and a handful of cilantro lift everything, so the last bite tastes as bright as the first. Served over rice, it is a complete, balanced plate that leaves you comfortably full.

Golden coconut curry with chunks of white halibut and wilted spinach over rice, cilantro and lime on top. Save
Prep: 15 minsCook: 22 minsTotal: 37 minsMakes: 4 servingsServing: About 1½ cups curry with ½ cup rice

Ingredients

Serves4Amounts change with the number. The nutrition panel is per serving, so it stays the same.
  • 560 g halibut fillets, cut into chunks
  • 2 cups cooked white rice
  • 1 1/2 cups canned coconut milk
  • 1 cup crushed tomatoes
  • 4 cups spinach
  • 1 onion, diced
  • 3 cloves garlic, minced
  • 1 tbsp fresh ginger, grated
  • 1 tbsp avocado oil
  • 1 tsp ground turmeric
  • 2 tsp ground cumin
  • 1/2 tsp cayenne
  • 4 tbsp cilantro, chopped
  • 1 tbsp lime juice
  • 1/4 tsp salt

Instructions

  1. Cook the rice: Rinse the white rice under cool water until the water runs mostly clear, then combine it with fresh water in a saucepan, bring to a boil, cover, and simmer over low heat until the water is absorbed and the grains are tender, about 15 minutes. Turn off the heat and let it sit, covered, while you make the curry.
  2. Prep everything: Dice the onion, mince the garlic, and grate the fresh ginger. Pat the halibut dry and cut it into large, even chunks so the pieces cook at the same rate. Chop the cilantro and set it aside for finishing.
  3. Bloom the aromatics: Heat the avocado oil in a wide skillet or deep saute pan over medium heat. Add the onion and cook until softened and translucent, about 4 minutes, then add the garlic, ginger, turmeric, cumin, and cayenne. Stir constantly until the spices are fragrant and coat the onion, about 2 minutes, so they toast without scorching.
  4. Build the sauce: Pour in the crushed tomatoes and coconut milk, stir to combine, and bring to a gentle simmer. Let it bubble softly, stirring now and then, until the sauce darkens slightly and turns silky, about 8 minutes. If it thickens too much, loosen it with a splash of water.
  5. Poach the halibut: Lower the heat so the sauce is barely simmering and slide in the halibut chunks in a single layer, spooning some sauce over the top. Simmer gently, without stirring hard, until the fish turns opaque and flakes easily with a fork and reaches an internal temperature of 145°F (63°C), about 6 minutes.
  6. Wilt the spinach and finish: Add the spinach and stir gently until it wilts into the sauce, about 1 minute. Season with the salt and stir in the lime juice, then taste and adjust. Serve the curry over the rice and garnish with the chopped cilantro.
Nutrition Facts
4 servings per recipe
Serving sizeAbout 1½ cups curry with ½ cup rice
Calories567
% Daily Value*
Total Fat 30g39%
Saturated Fat 22g109%
Trans Fat 0g
Cholesterol 46mg15%
Sodium 362mg16%
Total Carbohydrate 44g16%
Dietary Fiber 5g19%
Total Sugars 8g
Includes 0g Added Sugars 0%
Protein 34g
Vitamin D 4.5mcg23%
Calcium 109mg8%
Iron 4.9mg27%
Potassium 1324mg28%
* Percent Daily Values are based on a 2,000 calorie diet. Values are computed from USDA FoodData Central and are estimates. Per serving (About 1½ cups curry with ½ cup rice).

Variations

  • Swap the fish: Any firm white fish such as cod or haddock works in place of halibut, as do peeled shrimp, which need only a couple of minutes to turn pink and opaque. Choose thick, even pieces so they poach evenly in the sauce.
  • Add more vegetables: Stir cauliflower florets or diced bell pepper into the sauce during the simmer, giving them time to soften before the fish goes in. This stretches the curry and adds color, texture, and extra fiber.
  • Change the greens: Trade the spinach for chopped kale or Swiss chard. Both are sturdier, so add them a few minutes earlier than you would the spinach so they have time to soften into the sauce.
  • Make it heartier: Fold in drained, rinsed chickpeas along with the tomatoes for a more filling bowl. This adds a legume and gives the curry extra plant protein and a pleasant creamy bite.
  • Adjust the heat: Dial the cayenne up or down, or drop in a sliced fresh chile with the aromatics for a sharper kick. A little extra coconut milk at the end will soften the burn if it gets too hot.

Storage & Leftovers

Store leftover curry and rice in separate airtight containers in the refrigerator for up to three days. Keeping the rice apart keeps it from soaking up the sauce and turning soft, and it lets the flavors of the curry settle and deepen overnight.

Reheat the curry gently in a saucepan over low heat, stirring occasionally and adding a splash of water if the sauce has thickened, just until the fish is warmed through. Avoid a hard boil or a long spin in the microwave, which can overcook the already-tender halibut and make it dry.

To get ahead, make the coconut-tomato sauce through the simmer stage a day in advance and refrigerate it. When you are ready to eat, bring the sauce back to a gentle simmer, poach the fresh halibut in it, and wilt the spinach at the last minute so the fish and greens taste just-cooked.

Notes & Tips

A few practical notes to help this curry come out silky, fragrant and just spicy enough every time.
  • Buy the right coconut milk: Reach for full-fat canned coconut milk, not the thin carton kind meant for drinking. The higher fat is what gives the sauce its silky body; shake the can well before opening so the cream and liquid combine.
  • Let the fish sit out briefly: Take the halibut out of the fridge while you cook the rice and sauce. Fish that has lost its deep chill poaches more evenly, so the outside does not overcook before the center is done.
  • Grate ginger with the peel scraped off: Scrape the thin skin off the ginger knob with the edge of a spoon before grating. It comes off easily and saves you from bitter, stringy bits in an otherwise smooth sauce.
  • Taste for salt at the very end: Coconut milk and crushed tomatoes vary in how seasoned they are, so wait until the fish and spinach are in before adjusting the salt and lime. Season in small additions until the sauce tastes bright but not sharp.
  • Do not stir the fish too much: Once the halibut is in, spoon sauce over it rather than stirring, and turn the pieces only once if at all. Gentle handling keeps the chunks intact instead of breaking them into shreds.
  • Round out the plate: This curry is lovely with warm flatbread for scooping, or with a cooling spoonful of plain yogurt on the side, which adds dairy but tames the heat. A wedge of extra lime at the table lets everyone brighten their own bowl.
  • A simpler coconut broth: Melt two tablespoons of coconut oil in place of the avocado oil, leave out the crushed tomatoes, cumin, and cayenne, and let the turmeric, garlic, and ginger flavor the coconut milk on their own. Poach the halibut in that broth and serve it in bowls without rice. The numbers above include the rice.

Nutrition & Mindful Eating

Halibut holds together where softer fish falls apart, which makes it worth the price in a curry like this. The tomato and coconut sauce carries real heat from the cayenne, and the rice underneath is there to take the edge off.
  • The sauce, the fish and the rice are three separate textures meeting on one plate. The tomato and coconut base is thick and spiced, the halibut sits in firm meaty pieces, and the rice underneath catches everything that runs.
  • Halibut is a firm white fish that cuts into clean chunks and stays in them, which is why it can go into a bubbling sauce and come out intact. It brings complete protein and a share of omega-3 fats along with its mild sweetness.
  • Crushed tomatoes give this curry its acidity and its depth, keeping the coconut milk from taking over the pot, and simmering them in oil is what makes their lycopene easier for the body to take up.
  • Spinach stirred in at the end collapses into the sauce almost immediately, adding folate, plant iron and vitamin K along with a green note that keeps the bowl from tasting entirely of spice and coconut.
  • Cayenne, cumin and turmeric are toasted in the oil before any liquid arrives, and the cayenne is the one you feel afterwards, a slow heat that builds across a few bites and gets cooled again by the lime and cilantro at the end.
  • As you eat, notice the heat building and receding as the lime catches up with the cayenne, and pace yourself against it, letting the rice and the cooling herbs decide when the bowl has been enough.

Frequently Asked Questions

Can I use frozen halibut?

Yes. Thaw it fully in the refrigerator overnight, then pat it very dry before cutting it into chunks. Excess water will thin the sauce and keep the fish from poaching cleanly.

My sauce split or looks oily. What happened?

That usually means it boiled too hard. Coconut milk can separate at a rolling boil, so keep the sauce at a gentle simmer; if it does split, stir in a small splash of water off the heat to bring it back together.

How do I know the halibut is done?

It should turn from translucent to opaque and flake apart easily when nudged with a fork, reaching 145°F (63°C) at the thickest point. It takes only a few minutes, so start checking early to avoid overcooking.

Is this dish very spicy?

As written it is mildly warming from the cayenne, with the coconut milk keeping it gentle. Reduce or omit the cayenne for a milder version, or add fresh chile if you like more heat.