Desserts
This traditional fish pie recipe delivers the comforting, creamy layers of a classic British comfort dish—fluffy white fish baked beneath a golden, velvety mashed potato topping. The secret lies in perfectly steamed fish, a rich yet light sauce, and silky potatoes that create a satisfying crown.
I’ve perfected this recipe over years of testing, ensuring every bite captures that nostalgic, homey flavor without sacrificing authenticity.
The foundation of a great fish pie starts with fresh white fish—cod or haddock work best—poached gently in milk and seasoned with just a touch of white wine for brightness.
The sauce, a blend of cream and fish stock, keeps the filling tender and flavorful, while the mashed potatoes get their signature texture from a splash of cream and a generous amount of butter.
This isn’t just a pie; it’s a restaurant-quality dish that feels like a hug in bowl form.
What sets this recipe apart is the balance—creamy yet not heavy, rich yet not greasy. The fish stays flaky and moist, the sauce clings without overwhelming, and the potato topping achieves that perfectly golden crust while remaining soft inside.
It’s the kind of dish that disappears quickly, leaving only empty plates and satisfied smiles. Ready to master this timeless classic?
Whether you’re serving it as a family dinner or impressing guests, this fish pie stands up to tradition while adapting to modern preferences—like using gluten-free flour for the topping or swapping butter for olive oil.
The method is straightforward, but the result is anything but basic. Let’s get started on creating your own savory masterpiece.
Ingredients for traditional fish pie
Fresh fish, velvety cream, and golden potatoes—this classic pie delivers restaurant-quality comfort.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod or haddock preferred, skinless |
| Heavy Cream 🥛 | 1 cup | Full-fat for best texture |
| Fish Stock 💧 | 1 cup | Homemade or high-quality store-bought |
| Whole Milk 🥛 | 1 cup | For poaching fish |
| Dry White Wine 🍷 | ¼ cup | Subtle flavor enhancement |
| Russet Potatoes 🥔 | 2 lbs | Starchy variety for creamy mash |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed for potatoes |
| All-Purpose Flour 🌾 | ¼ cup | For thickening sauce |
| Fresh Lemon Juice 🍋 | 1 tbsp | Brightens fish flavor |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Fresh Parsley 🌿 | ¼ cup | Chopped for garnish |
| Breadcrumbs 🍞 | ¼ cup | Panko for extra crunch |
| Garlic Cloves 🧄 | 2 cloves | Minced for flavor depth |
The fish is the heart of this dish, so freshness is non-negotiable. Look for cod or haddock fillets with a clean, ocean-like scent and firm texture—avoid any with a fishy odor or slimy skin. Whole Foods or local fishmongers often carry the best quality, but most grocery stores stock frozen fillets that work well if properly thawed. The milk and white wine poaching liquid should be cold when added to the fish—this ensures gentle cooking without curdling. For the potatoes, Russet variety is ideal due to its high starch content, which creates the signature creamy texture.
No white wine? Extra fish stock or even chicken stock works in a pinch—just reduce the amount slightly to avoid over-diluting. The sauce can be thickened with cornstarch slurry if flour feels too heavy, though traditionalists swear by the flour roux. For a lighter topping, substitute half the breadcrumbs with crushed cornflakes—it adds crunch without bulk. Fresh parsley is best for garnish, but dried parsley at one-third the amount will suffice. The garlic should be minced finely to distribute flavor evenly throughout the potatoes.
This pie reheats beautifully—just cover with foil and bake at 375°F for 20 minutes to restore its golden crown. Store leftovers in the fridge for up to 3 days, though the texture may soften slightly. For longer storage, freeze portions for up to 2 months—thaw overnight in the fridge before reheating. The topping can be prepped ahead and baked separately if needed, making this a perfect make-ahead dish for dinner parties.
Why You'll Love This Recipe
- No-Fuss Assembly: I swear, this comes together faster than ordering takeout. Flake the fish, mix the cream and stock—no chopping, no fuss. The wine cuts through the richness while you’re still deciding what to watch on TV.
- Creamy Wine Kiss: That splash of dry white wine in the sauce? It’s the secret weapon. Brightens the heavy cream without overpowering, then the milk smooths it into something velvety. One bite and you’ll forget it’s "healthy."
- Weeknight to Dinner Party: Same recipe, different vibes. Serve it with crusty bread for a lazy Sunday or add a sprinkle of parsley and a side salad for guests. The pie reheats beautifully—no one will guess it’s your go-to meal.
- Leftovers That Don’t Suck: Honestly, I make this twice—once for dinner, once for lunch. The texture holds up, the flavors deepen overnight, and it’s still better cold than most takeout. Plus, it’s cheaper than ordering in when you’re tired. Win.
Step-by-step instructions for traditional fish pie
A classic British comfort dish with tender fish and velvety mashed potatoes—this method delivers restaurant-quality results at home.
Poach the Fish in White Wine and Herbs
In a large, deep skillet or Dutch oven, combine the 1 cup fish stock, 1 cup whole milk, 0.25 cup dry white wine, 1 tbsp fresh lemon juice, 1.5 tsp salt, and 0.5 tsp black pepper. Bring to a gentle simmer over medium heat. The mixture should bubble softly—never a rolling boil, or the fish will turn rubbery.
Add the 1.5 lb white fish fillets (cod or haddock) and the 2 minced garlic cloves to the liquid. Gently lower the heat to maintain a barely simmering temperature. Poach for 8-10 minutes until the fish is just opaque in the center and flakes easily with a fork. Remove the fish with a slotted spoon and set aside on a plate, reserving the poaching liquid for later. The fish should be tender but still hold together—overcooking will make it crumble.
Prepare the Creamy Fish Sauce
Return the reserved poaching liquid to the skillet and bring it to a gentle simmer over medium heat. In a small bowl, whisk together 1 cup heavy cream and 0.25 cup all-purpose flour until smooth. Slowly ladle this mixture into the simmering liquid, whisking constantly to prevent lumps from forming.
Continue cooking for 3-4 minutes until the sauce thickens enough to coat the back of a spoon. Stir in 0.25 cup chopped fresh parsley and taste—adjust seasoning with additional salt or black pepper if needed. The sauce should be rich but not overly thick; if it's too stiff, whisk in 1-2 tablespoons of water to loosen it. Remove from heat and gently fold in the poached fish, coating each piece evenly with the sauce.
Make the Classic Mashed Potatoes
While the fish sauce simmers, peel and chop the 2 lbs russet potatoes into 1-inch chunks. Place them in a pot of cold, salted water (add 1 tsp salt) and bring to a boil. Cook for 15-20 minutes until the potatoes are fork-tender—you should be able to pierce them easily with a knife. Drain thoroughly, then return them to the pot.
Add the 0.5 cup unsalted butter (cold and cubed) and 0.25 cup breadcrumbs to the potatoes. Using a potato masher or ricer, mash until smooth and creamy. The texture should be velvety, with no lumps—this is the foundation of a perfect fish pie. Taste and adjust seasoning with salt or black pepper as needed. Cover the mashed potatoes and keep them warm while you assemble the pie.
Assemble and Bake the Fish Pie
Preheat your oven to 375°F. Transfer the fish and sauce to a 9x13-inch baking dish, spreading it evenly in a single layer. Spoon the mashed potatoes over the fish, creating a smooth, even layer. Use the back of a spoon to create gentle peaks or swirls in the potatoes for a traditional finish.
Bake uncovered for 25-30 minutes until the top is golden brown and the edges are slightly crispy. The filling should be bubbling hot, and the potatoes should have a firm, creamy texture. If the top browns too quickly, tent loosely with foil for the last 10 minutes of baking. Remove from the oven and let it rest for 5 minutes before serving—this allows the filling to set slightly and makes slicing easier.
Serve with Fresh Parsley and a Side of Greens
Garnish the fish pie with an additional sprinkle of 0.25 cup chopped fresh parsley for a pop of color and freshness. Serve immediately with steamed green vegetables or a crisp salad to balance the richness. The pie should be piping hot, with a tender yet flaky fish filling and a smooth, buttery potato topping. Each bite should deliver a harmonious blend of creamy, savory, and slightly tangy flavors—just like a traditional British classic.
Pro Tips For Making Traditional Fish Pie
- Sear the Fish First: Skip the raw fish straight into the sauce—it’ll turn rubbery. Pat those fillets very dry, hit them with a little oil in a hot pan for 2-3 minutes per side until golden. The crust won’t stick, and the flavor jumps off the plate. (Yes, even if you’re impatient like me.)
- Strain That Stock: Fish stock straight from a jar or pot has bits—trust me, you’ll feel them. Strain it through a fine-mesh sieve or even cheesecloth before mixing with milk and wine. The sauce will be silky, not gritty, and that’s the difference between "good" and "I’ll make this again."
- Don’t Overmix the Cream Sauce: Whisk the heavy cream, milk, and wine together just until combined—no lumps, but no frothing either. Overworking it turns the sauce thin and watery. My grandmother swore by this, and she was right: the pie stays rich and velvety when you treat the cream gently.
- Bake Covered, Then Uncovered: Start the pie under foil at 375°F (190°C) for 20 minutes—this lets the filling set without curdling. Then remove the foil and crank the heat to 425°F (220°C) for the last 10-15 minutes. The top will brown beautifully, and the sauce won’t split. (Your future self will thank you.)
Troubleshooting perfect results
Fish Too Dry?
If your fish turns out dry or crumbly, it likely overcooked during poaching. Keep the liquid at a gentle simmer—never a rolling boil—and never exceed 10 minutes of cooking time. For extra moisture, brush the fillets with 1 tbsp melted butter before poaching.
I also recommend using a meat thermometer to check for 130°F internal temperature—this ensures perfect doneness without drying. 🌡️
Sauce Too Thin?
A runny sauce usually means the flour didn’t thicken properly. Whisk the cream and flour vigorously for 2-3 minutes before adding to the pot—this creates a smoother roux.
If it’s still too thin after simmering, mix 1 tsp cornstarch with 1 tbsp cold water, then stir it into the sauce. Let it cook for 1 extra minute to fully thicken.
For a richer texture, reduce the sauce over low heat for 5 minutes after removing from the fish. 🥄
Potato Topping Collapsing?
Overmashing potatoes or baking at too high a temperature causes this issue. For a stable topping, mash the potatoes just until smooth—don’t overwork them. Spread them evenly over the fish and chill the assembled pie for 15 minutes before baking.
This helps the potatoes hold their shape. Also, bake at 375°F—any hotter risks a soggy top. A sprinkle of breadcrumbs before baking adds structure. 🥔
Fish Flavor Fading?
If the fish tastes bland, the poaching liquid may have lost its depth. Always use fresh fish stock (homemade if possible) and dry white wine—never substitute with water or vinegar. Add 1 tsp lemon zest or ½ tsp Old Bay seasoning to the poaching liquid for extra brightness.
For a deeper flavor, sear the fish in a hot pan with 1 tbsp butter for 1 minute per side before poaching. 🍋
Topping Not Browning?
A pale potato topping often means insufficient fat or heat. Ensure your butter is cold and cubed—this prevents the potatoes from becoming greasy. For extra browning, brush the top with 1 tbsp melted butter before baking.
Broil for 1-2 minutes at the end for a golden finish, but watch closely to avoid burning. 🔥
Pie Too Heavy?
If your fish pie feels dense, the sauce might be too thick or the potatoes overworked. Lighten the sauce by adding 2 tbsp extra fish stock before baking. For fluffier potatoes, use a potato ricer instead of a masher and fold in 2 tbsp whipped cream for airiness.
Serve with a side of steamed asparagus or a simple salad to balance the richness. 🥗
Nutrition facts
Frequently asked questions
Can I use frozen fish for this recipe?
Yes, but thaw it properly first! Place frozen fillets in the fridge overnight or use the cold water thaw method (sealed in a bag) for 30-45 minutes. Never microwave—it makes fish rubbery. Pat dry thoroughly before poaching to ensure even cooking.
What's the best way to make this lighter?
Swap half the heavy cream for Greek yogurt or light coconut milk to reduce fat while keeping richness. Use a potato ricer instead of a masher for fluffier potatoes, and top with toasted breadcrumbs instead of extra butter. Serve with steamed veggies to balance the dish.
How do I make this gluten-free?
Replace the all-purpose flour with cornstarch or gluten-free flour blend> for the sauce, and use gluten-free breadcrumbs> for the topping. For the potatoes, ensure your butter is certified gluten-free. The texture will be slightly different but still delicious!
Can I prep this ahead of time?
Assemble the pie up to 24 hours ahead and refrigerate. Bake straight from the fridge (add 10-15 minutes to cooking time). For make-ahead convenience, prepare the filling and topping separately, then assemble and bake when ready. The flavors actually improve overnight!
What's the secret to the perfect golden crust?
The key is cold butter in the potatoes> and proper baking temperature. Use 375°F and brush the top with melted butter> before baking. For extra color, broil for 1-2 minutes**> at the end. Don't overbake—the crust should be golden but still soft underneath!
