Poaching gets a bad reputation for being fussy or forgettable, but that’s not the dish’s fault — it’s the cook’s. When you build the poaching liquid properly, mahi mahi comes out of the pot silky, seasoned through to its center, and surrounded by leeks that have gone tender and sweet in the same broth. The whole thing takes about 30 minutes, uses one pan, and looks considerably more composed than the effort involved.
Mahi mahi is underused on weeknights. It’s firm enough to hold together in liquid without falling apart, mild enough to take on whatever you season the broth with, and widely available year-round. This recipe is a reliable weeknight anchor.
Why This Recipe Is Worth Making
A few real reasons to keep this one in rotation:
It’s genuinely fast. If your leeks are prepped, you’re eating in under 35 minutes from a cold pan.
The fish stays moist. Poaching is an insulating technique — the fish never gets hotter than the temperature of the surrounding liquid, which means there’s a much wider window between “just done” and “overcooked” compared to searing or roasting.
Leeks do a lot of work here. They’re not garnish. They soften directly in the poaching liquid, picking up the aromatics and contributing their own mild sweetness to the broth. By the time the fish is done, the leeks are the thing half the table wants seconds of.
One pan, no splatter. Nothing to scrub off the stovetop.
What You’ll Need
Serves 4
For the dish:
- 4 mahi mahi fillets (6 oz each, about 1 inch thick)
- 3 medium leeks (white and light green parts only), halved lengthwise and sliced into ½-inch half-moons
- 3 garlic cloves, thinly sliced
- 2 tablespoons unsalted butter
- 1 tablespoon olive oil
- 2½ cups low-sodium chicken or vegetable broth
- 1 cup water
- 1 tablespoon fresh lemon juice, plus lemon wedges for serving
- 1 teaspoon lemon zest
- 1 teaspoon fine sea salt, divided
- ½ teaspoon white pepper (or black pepper)
- 2 sprigs fresh thyme
- 1 bay leaf
- 2 tablespoons fresh flat-leaf parsley, roughly chopped
Ingredient notes:
Mahi mahi: Fresh is ideal, but frozen mahi mahi works well here — thaw it overnight in the refrigerator and pat it completely dry before it goes in the liquid. Skin-on or skinless both work; the poaching liquid lifts the skin away cleanly if you want to remove it after cooking.
Leeks: Leeks hide grit between their layers. After slicing, soak them in a bowl of cold water for a few minutes and agitate — the sand sinks, the leeks float. Lift them out rather than pouring them through a strainer.
Broth: Low-sodium matters here. The liquid reduces slightly as you cook and concentrates in flavor — if you start with a salty broth, you’ll lose control of the seasoning at the end. Vegetable broth keeps this pescatarian-friendly with no meaningful difference in the final result.
Butter: Adds richness and rounds the broth into something that tastes finished rather than just seasoned water. If you want to keep this dairy-free, two tablespoons of a good olive oil does the same job with a slightly different character — less round, more grassy.
White pepper: Gentler and more floral than black pepper in a pale broth, and it disappears visually. Black pepper works fine — just use slightly less, as it’s more assertive.
How to Make It
- Sweat the leeks and garlic. In a wide, straight-sided skillet or shallow sauté pan — you need room for four fillets to lie flat — melt the butter with the olive oil over medium heat. Add the leeks and a pinch of salt. Cook, stirring occasionally, for 6–8 minutes until the leeks are softened and translucent but not browned. Add the garlic and cook another 90 seconds, until fragrant. The leeks should look silky and slightly collapsed.
- Build the poaching liquid. Pour in the broth and water. Add the thyme sprigs, bay leaf, lemon zest, lemon juice, remaining salt, and white pepper. Increase the heat to medium-high and bring to a gentle simmer — small bubbles breaking the surface, not a rolling boil. Taste the liquid now. It should be well-seasoned, slightly herbal, and lightly bright from the lemon. Adjust salt if needed.
- Reduce to a low simmer. Once simmering, reduce the heat to medium-low. The surface should barely ripple. This matters. A hard boil will make the fish tough and may break the fillets apart. You want the liquid at around 170–180°F — hot enough to cook the fish through gently without agitating it.
- Add the fish. Lower the fillets into the liquid using a wide spatula, skin-side down if applicable. They should be mostly submerged — if the liquid doesn’t quite cover them, spoon some broth over the tops. Space them so they’re not touching.
- Poach without touching. Cover the pan partially with a lid and cook for 8–10 minutes depending on thickness. A 1-inch fillet takes about 9 minutes. The fish is done when it turns completely opaque through the thickest part and flakes cleanly when pressed gently with a fork at the center — no translucent, jelly-like resistance. If you have an instant-read thermometer, you’re looking for 137°F at the center.
- Finish and plate. Remove the thyme sprigs and bay leaf. Using a wide slotted spatula, carefully transfer each fillet to a shallow bowl or plate. Spoon the leeks and broth generously around and over the fish. Scatter the fresh parsley. Serve with lemon wedges alongside.
Tips That Actually Make a Difference
Dry the fish before it goes in. Surface moisture dilutes the broth directly where the fillet touches it, especially at the start. Pat the fillets dry with paper towels even though they’re going into liquid.
Don’t skip the leek-softening step. It might seem unnecessary when they’re going into broth anyway, but softening the leeks first in butter coaxes out their sugars and rounds their flavor before the liquid ever touches them. Leeks added raw to the poaching liquid taste sharper and thinner.
Keep the liquid just below a simmer. Check it once during cooking. If the broth has crept back up to a boil, the fish will tighten. A few bubbles at the edge of the pan is the right visual cue.
Use a wide, shallow pan. A tall stockpot traps too much steam and makes it hard to monitor the simmer. A 12-inch straight-sided skillet is the right tool — the fish lies flat, the broth circulates evenly, and you can see exactly what’s happening.
Mistakes to Watch Out For
Poaching at too high a temperature. This is the most common problem, and it produces rubbery fish with a chalky texture. Once you’ve added the fish, the heat should barely move the surface of the liquid. If you’re seeing vigorous bubbling, the temperature is too high. Turn it down immediately.
Undercooking and not catching it. Because poached fish looks pale and “wet” even when raw, undercooking is easy to miss. Go by the flaking test — press the center firmly enough to feel the resistance. Raw fish at the center feels dense and springs back without separating. Properly cooked fish yields and begins to separate in layers. When in doubt, give it another 90 seconds and check again.
Not seasoning the broth enough before the fish goes in. The fish picks up flavor from the liquid as it cooks, not after. A bland broth produces a bland fillet. The liquid should taste noticeably seasoned before the fish touches it.
Using frozen fish straight from the freezer. Partially frozen fish cooks unevenly — the outside overcooks before the center has time to thaw and cook through. Thaw completely and bring the fillets closer to room temperature (about 15 minutes on the counter) before poaching.
Easy Ways to Change It Up
Swap the fish: Cod, halibut, or striped bass all work with the same timing. Thinner fish like tilapia will cook in 5–6 minutes; check early.
Add capers and olives: Stir 2 tablespoons of rinsed capers and a handful of halved green olives into the broth after building it. This pushes the dish in a briny Mediterranean direction that works very well with the mild fish.
Make it more substantial with white beans: Add one can of drained white beans to the broth after softening the leeks. They absorb the poaching liquid as the fish cooks and turn the dish into something closer to a stew — filling enough to need no other starch.
Add a little heat: A pinch of red pepper flakes added with the garlic gives the broth a gentle background warmth that builds as you eat.
Dairy-free version: Substitute the butter with extra olive oil as noted above. The broth is slightly less rich but still very good.
What to Serve It With
The broth here is worth treating as part of the meal, not just the cooking medium — serve the fish in a shallow bowl with enough liquid to dip crusty bread into. A baguette or a thick slice of sourdough alongside soaks up the leek-infused broth and makes the whole thing feel more complete.
For a starch alongside, simply cooked white rice or small boiled potatoes work well and don’t compete. Both can be added directly to the bowl and spooned over with broth.
A simple green salad with a sharp vinaigrette rounds out the meal — the acidity contrast works well against the mellow broth. Avoid creamy dressings here, which sit too heavily next to an already-enriched liquid.
Leftovers and Reheating
Poached fish is best the day it’s made. The texture changes in the refrigerator as the proteins continue to firm — not unpleasant, but noticeably different from freshly cooked.
Store the fish and broth together in an airtight container in the refrigerator for up to two days. Storing them together keeps the fish from drying out.
To reheat: spoon everything into a small pan over low heat, covered, until just warmed through — about 5 minutes. Do not boil. The fish breaks apart easily once cooked, so handle it gently. The microwave works if you use low power and stop as soon as it’s warm — 60% power in 45-second intervals is better than full power for one long burst.
The leeks and broth, without the fish, reheat easily and hold up well. If you’ve got leftover broth, it’s worth saving — it makes a good base for a quick grain soup the next day.
Approximate Nutrition Per Serving
Estimates only, for informational purposes.
- Calories: 310
- Protein: 38g
- Carbohydrates: 11g
- Fat: 12g
- Fiber: 1g
Final Thoughts
What keeps Weeknight Poached Mahi Mahi with Leeks in regular rotation isn’t just that it’s fast — it’s that the results genuinely match the effort level. You’re not cutting corners to get dinner on the table; you’re using a technique that happens to be both forgiving and flavorful. The leeks are the quiet star, and the broth is worth a spoon on its own.
If you’ve been avoiding poaching because it seemed either dull or difficult, this recipe is the argument against both assumptions. Give it a try on a weeknight when you want something that feels a little more considered than your usual rotation.