Traditional Fish Pie Recipe: Mashed Potato Crown Over Savory Creamy Filling

Desserts

Traditional Fish Pie Recipe: Mashed Potato Crown Over Savory Creamy Filling

This traditional fish pie recipe delivers the comforting, creamy layers that make it a British classic—crisp golden mashed potatoes crowning a rich, savory fish filling. The secret lies in perfectly cooked haddock or cod, tender potatoes, and a velvety béchamel that binds everything together.

I’ve refined this recipe over years to ensure the filling stays moist while the topping achieves that signature crackly crust.

The beauty of this dish is in its simplicity and heartiness—ideal for family dinners or special occasions. A precise balance of seasonings (lemon zest, white wine, and fresh herbs) elevates the fish filling, while the mashed potato topping adds a satisfying texture contrast.

The result is a pie that’s both nostalgic and restaurant-worthy, with every bite offering that perfect harmony of creaminess and flakiness.

Baking at 375°F for 40 minutes ensures the filling stays tender while the topping turns golden and crisp. Serve with a simple green salad or steamed vegetables to balance the richness. This recipe is a testament to how traditional comfort food can still shine in modern kitchens—without sacrificing authenticity.

For those who prefer a lighter touch, you can substitute half the cream with milk, or add a sprinkle of smoked paprika to the filling for a subtle depth of flavor. The key is patience—letting the pie rest for 10 minutes after baking ensures the perfect slice every time.

👨‍🍳
Difficulty
Medium
🐟
Diet
Seafood
🔥
Calories
Med Cal

Ingredients for traditional fish pie

Sixteen ingredients transform into a British classic—creamy, comforting, and restaurant-worthy.

Ingredient Amount Notes
Fresh White Fish Fillets 🐟 1 ½ lb Haddock or cod, skin removed
Russet Potatoes 🥔 2 lb Waxy potatoes preferred, peeled
Heavy Cream 🥛 1 cup Full-fat for richness
Unsalted Butter 🧈 ½ cup Cold, cubed for béchamel
Milk 🥛 ½ cup Whole milk preferred
All-Purpose Flour 🌾 ¼ cup For béchamel roux
Dry White Wine 🍷 ½ cup Sauvignon Blanc preferred
Lemon Zest 🍋 1 tbsp Freshly grated
Fresh Dill 🌿 ¼ cup Chopped, stems removed
Fresh Parsley 🌿 0.15 cup Chopped, for garnish
Shallots 🧅 2 whole Finely minced
Garlic Cloves 🧄 4 cloves Minced for filling
Diamond Crystal Kosher Salt 🧂 1 ½ tsp Adjust to taste
Ground White Pepper 🌶️ ½ tsp Freshly ground preferred
Nutmeg 🌿 ¼ tsp Freshly grated

The fish is the foundation, so prioritize quality. Haddock and cod from the seafood counter, ideally sustainably sourced, yield the best texture. Look for fillets with firm, translucent flesh and minimal odor—Whole Foods Market or local fishmongers often carry the freshest cuts. If using frozen, thaw overnight in the fridge, never at room temperature. The potatoes should be waxy varieties like Yukon Gold, as they hold their shape better under baking. For the béchamel, European-style butter adds a richer flavor than American brands, though unsalted butter works well for control. Fresh herbs like dill and parsley should be vibrant green with no wilting—Trader Joe's often has affordable, high-quality bundles.

Substitutions can work, but with adjustments. No white wine? Fish or vegetable stock with a splash of lemon juice replicates the acidity. Fresh herbs unavailable? Dried dill at one-third the amount suffices, though fresh offers superior brightness. For a lighter version, replace half the heavy cream with whole milk or light cream, though texture may slightly alter. The béchamel can use cornstarch instead of flour for a gluten-free option, though roux development differs. Smoked paprika adds depth to the filling—Penzeys carries excellent varieties for this purpose. If shallots are unavailable, red onion works in a pinch, though flavor differs subtly.

Storage is simple: assemble the pie up to 24 hours ahead and refrigerate uncovered to develop flavor. Bake straight from the fridge for even cooking. Leftovers keep 3 days refrigerated or 3 months frozen, though texture softens upon reheating. For reheating, cover with foil and warm at 350°F for 20 minutes to prevent drying. The mashed potato topping freezes beautifully—prevent browning by pressing plastic wrap directly onto the surface before sealing. For serving, a sprinkle of fresh parsley and a drizzle of extra-virgin olive oil elevates presentation.

❤️

Why You'll Love This Recipe

  • No-Fuss Prep: Between us, this pie takes less time than deciding what to eat. Peel and slice potatoes while the fish simmers—no fancy techniques, just boiling and layering. I swear, I’ve made it while scrolling through my phone.
  • Creamy Crisp Magic: That golden crust on top? Pure satisfaction. The butter and cream melt into the flaky fish, while the potatoes soak up every last bit of rich, savory goodness. (Yes, even on a Tuesday night.)
  • Leftovers for Days: Honestly, I always end up with seconds, but the best part? It reheats like a dream. The next day, it’s just as comforting—maybe even better, since the flavors meld overnight.
  • Budget-Friendly Luxury: Fresh fish feels fancy, but this recipe stretches it without breaking the bank. A few fillets feed four, and the potatoes and dairy make it feel indulgent. My wallet and taste buds both win.

Step-by-step instructions for traditional fish pie recipe

Master this classic technique for a velvety fish filling crowned with golden mashed potatoes.

1

Prepare the Fish Filling with White Wine and Herbs

Preheat your oven to 375°F and melt 0.25 cup unsalted butter in a large oven-safe skillet over medium heat. Add the 2 whole minced shallots and 4 cloves minced garlic, cooking for 2-3 minutes until translucent but not browned. This gentle cooking draws out their sweetness without bitterness.

Add the 1.5 lb fresh white fish fillets in a single layer, seasoning immediately with 1 tsp diamond crystal kosher salt and 0.25 tsp ground white pepper. Cook undisturbed for 3-4 minutes until the fish begins to flake easily at the edges. Pour in the 0.5 cup dry white wine and 1 tbsp lemon zest, scraping up any browned bits from the pan.

Simmer gently for 2 minutes until the wine reduces by half, then stir in 0.25 cup chopped fresh dill and 0.15 cup chopped fresh parsley. Remove from heat and let cool completely—this prevents the cream from curdling when combined later. The filling should be just warm to the touch before proceeding.

2

Create the Creamy Béchamel Base

In a separate saucepan, melt the remaining 0.25 cup unsalted butter over medium heat. Whisk in the 0.25 cup all-purpose flour to form a smooth roux, cooking for 1-2 minutes until the mixture turns pale golden. This step is critical—it removes the raw flour taste and creates the velvety texture.

Gradually whisk in the 0.5 cup milk and 1 cup heavy cream over 2-3 minutes, ensuring no lumps form. Stir in the 0.5 tsp ground white pepper and 0.25 tsp freshly grated nutmeg, then season generously with the remaining 0.5 tsp diamond crystal kosher salt. The sauce should coat the back of a spoon and have a luxurious, creamy consistency.

Return the cooled fish filling to the skillet and gently fold it into the béchamel sauce using a rubber spatula. Simmer on low heat for 3-4 minutes until everything is thoroughly combined and heated through. The filling should be smooth with no visible fish pieces—this ensures an elegant presentation.

3

Prepare the Perfect Mashed Potato Topping

While the filling cooks, boil the 2 lb peeled russet potatoes in salted water for 15-20 minutes until fork-tender. Drain thoroughly and return to the pot. Add the 0.5 cup unsalted butter and 0.5 cup milk, then mash until completely smooth with no lumps.

Season aggressively with additional diamond crystal kosher salt and ground white pepper to taste. The mashed potatoes should be light, fluffy, and hold their shape when piped—this creates the signature crust when baked. For extra richness, fold in 1 tbsp lemon zest and 0.1 cup chopped fresh parsley.

4

Assemble and Bake to Golden Perfection

Transfer the fish filling to a 9x13-inch baking dish, spreading it evenly. Using a piping bag or large spoon, create a thick, even layer of mashed potatoes over the top, sealing the edges completely. This prevents the filling from bubbling out during baking.

Bake at 375°F for 25-30 minutes until the mashed potato topping is deep golden brown and the filling is bubbling at the edges. The center should be just set—it will continue cooking slightly while resting. For extra browning, broil for 1-2 minutes at the end, watching closely to avoid burning.

5

Rest and Serve Traditionally

Remove from the oven and let rest for 10 minutes before slicing. This allows the filling to set and the flavors to meld completely. The pie should have a crisp golden crust with a creamy, flavorful filling underneath.

Serve immediately with a simple green salad and crusty bread to soak up the rich sauce. The traditional presentation includes a sprinkle of fresh parsley and a final touch of lemon zest for brightness. Each bite should deliver perfectly cooked fish, velvety cream sauce, and buttery mashed potatoes in perfect harmony.

👨‍🍳

Pro Tips For Making Traditional Fish Pie

  • Parboil Potatoes First: Toss peeled russets in boiling water for 5 minutes before mashing—this guarantees a smoother texture and prevents gummy mash. (Yes, I’ve ruined a pie with unparboiled potatoes. Don’t be that person.)
  • Poach Fish Low and Slow: Simmer the fillets in milk and butter at 160°F (71°C) for 8–10 minutes—gentle heat keeps them tender without falling apart. Rushing this step turns flaky fish into sad, rubbery shreds.
  • Salt the Cream: Mix a pinch of salt into the heavy cream before adding it to the sauce—it balances the richness and cuts through the fish’s mildness. (I used to skip this and wondered why the pie tasted flat.)
  • Top with Cold Butter: Dot the pie with chilled butter cubes right before baking—this creates a golden crust without overbrowning the fish layer. (Your future self will thank you for not using melted butter.)

Serving suggestions for traditional fish pie

Classic Pairings

Serve your fish pie with a simple arugula salad dressed with 1 tbsp lemon juice, 2 tbsp extra-virgin olive oil, and a pinch of flaky sea salt.

The peppery bite cuts through the richness beautifully. I always use Whole Foods Market's organic arugula for its vibrant flavor. 🥗

Bread Selection

Crusty sourdough bread is my go-to for soaking up the creamy sauce. Look for a loaf with a thick crust and open crumb—Brioche or challah work well too. Toast slices lightly before serving to prevent sogginess. Warm bread enhances the pie's comforting qualities.

Vegetable Sides

Steamed green beans with 1 tsp lemon zest and 1 tbsp butter provide a fresh contrast. For a heartier option, try roasted Brussels sprouts with balsamic glaze. Both sides balance the dish's richness while adding vibrant colors to your plate.

Dessert Follow-Up

Finish the meal with a light lemon posset or sticky toffee pudding. The citrus notes in the posset complement the pie's lemon zest, while the caramelized sugar in the pudding offers a sweet contrast. I often make a small batch of posset using Earl Grey tea for added depth.

Beverage Pairings

A crisp Sauvignon Blanc from New Zealand enhances the fish pie's herbal notes. For beer lovers, a Belgian witbier like Hoegaarden provides a refreshing citrusy contrast. Avoid heavy reds—they can overpower the delicate flavors. A warm chamomile tea also works beautifully with the dish's comforting qualities.

Presentation Tips

Garnish each slice with a sprinkle of fresh parsley and a pinch of lemon zest right before serving. Use a serrated knife for clean slices, and serve on a white ceramic platter to highlight the golden crust. The presentation should feel inviting and traditional, just like the dish itself. ✨

Nutrition facts

Servings 6
Amount Per Serving
Calories 580kcal
% Daily Value *
Total Fat 34g43%
Saturated Fat 21g105%
Cholesterol 120mg40%
Sodium 980mg43%
Total Carbohydrate 42g15%
Dietary Fiber 5g18%
Sugars 6g
Protein 32g64%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I use frozen fish instead of fresh for this recipe?

Yes, but thaw it properly first! Place frozen fish in a sealed bag and submerge in cold water for 20-30 minutes or refrigerate overnight. Never use room-temperature water—it can make the fish watery. For best texture, pat the fillets completely dry before cooking to achieve that perfect sear.

2

What's the secret to getting the mashed potato topping crispy?

Three key factors: high heat at the end, well-drained potatoes, and proper seasoning. Bake at 375°F until golden, then broil for 1-2 minutes for extra crispiness. Use waxy potatoes like Yukon Gold—they hold their shape better. Season aggressively with salt and pepper before baking.

3

How can I make this recipe lighter without sacrificing flavor?

Swap half the heavy cream for whole milk or Greek yogurt in the béchamel, and use low-fat milk in the mashed potatoes. Add extra lemon zest and fresh herbs to compensate for the reduced richness. The wine in the filling still provides depth of flavor while keeping it lighter overall.

4

Why did my filling get watery after baking?

This usually happens from overcooking the fish or not draining the potatoes well. Cook fish just until it flakes easily (3-4 minutes max), and ensure potatoes are thoroughly drained before mashing. Another tip: simmer the filling gently after combining with the béchamel to thicken slightly before baking.

5

Can I make this pie ahead of time?

Assemble the pie up to 24 hours ahead and refrigerate uncovered. This allows flavors to meld beautifully. When ready to bake, add 10-15 minutes to your baking time since it'll be cold. For make-ahead freezing, assemble and bake as directed, then cool completely before wrapping tightly and freezing for up to 3 months.

★★★★★5.0(8 reviews)
Categories Desserts