Desserts
This classic fish pie recipe delivers all the comfort of a British pub dinner with its crispy golden top and rich, creamy filling—the perfect balance of textures and flavors.
The secret lies in poaching delicate fish with aromatic vegetables before layering it with velvety mashed potatoes and a luscious cheese sauce, all topped with a buttery pastry crust. I’ve perfected this method over years of testing, ensuring the filling stays tender while the crust achieves that satisfying crackle.
The beauty of this dish is in its simplicity—just a few key ingredients transform into something restaurant-worthy. You’ll start with firm white fish (like cod or haddock) gently poached in milk and herbs, then combined with a velvety sauce made from cream cheese and a touch of mustard for brightness.
The mashed potato layer provides structure, while the pastry top ensures that irresistible crispness we all crave.
What you’ll end up with is a pie that’s creamy in the center, crispy on top, and packed with savory depth from the herbs and vegetables.
The aroma alone will have everyone gathering at the table, and the first bite delivers that perfect harmony of textures—tender fish, fluffy potatoes, and a golden crust that shatters with every forkful. This is the kind of dish that feels like a hug in food form.
Serve it with a simple green salad or crusty bread to soak up every last bit of that rich, cheesy sauce. The leftovers reheat beautifully, making it ideal for meal prep or feeding a crowd. Let’s bring this timeless comfort classic to your kitchen—step by step.
Ingredients for classic fish pie
Firm white fish, creamy cheese, and buttery crust—just eight ingredients for ultimate comfort.
| Ingredient | Amount | Notes |
|---|---|---|
| Cod Fillets 🐟 | 1 ½ lb | Skinless, boneless, firm white fish |
| Heavy Cream 🥛 | 1 cup | Full-fat for richness |
| Milk 🥛 | 1 cup | Whole milk preferred |
| Russet Potatoes 🥔 | 2 large | Yukon gold works too |
| Carrots 🥕 | ½ cup | Diced, medium size |
| Leeks 🧅 | 1 whole | White and light green parts |
| Cream Cheese 🧀 | 8 oz | Full-fat block preferred |
| Dijon Mustard 🍯 | 1 tbsp | For bright tang |
| Butter 🧈 | ½ cup | Unsalted, softened |
| All-Purpose Flour 🌾 | 1 ½ cups | For pie crust |
| Cold Water 💧 | ½ cup | For pie crust |
| Shredded Cheddar Cheese 🧀 | 1 cup | Sharp cheddar preferred |
| Fresh Dill 🌿 | 2 tbsp | Chopped, for brightness |
| Fresh Parsley 🌿 | 1 tbsp | Chopped, for garnish |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
The fish is non-negotiable—cod or haddock with firm texture holds up best. Whole Foods or your local fishmonger usually have great options, but the frozen section at Trader Joe's works too. Look for fillets with a clean, bright color and minimal fishy odor. The carrots and leeks should be crisp—no rubbery stems. For the potatoes, Russets are ideal, but Yukon golds add natural sweetness. The cream cheese matters here: Philadelphia brand is reliable, but block cream cheese melts better for that velvety texture.
No cod? Pollock or tilapia work in a pinch, but they can get mushy. Short on dill? Fresh tarragon or chives add a nice contrast. The mustard is key for brightness—Dijon is best, but whole-grain mustard adds texture. For the crust, Pillsbury pie crust is a shortcut, but homemade (flour, butter, ice water) gives that professional crackle. The cheese sauce freezes beautifully—portion it out for future use. And trust me, the extra sharp cheddar in the filling makes all the difference.
This pie reheats like a dream—350°F for 20 minutes until bubbly. Store leftovers for up to 3 days in the fridge, or freeze the whole pie for up to 2 months. The crust stays crispy if you reheat it covered with foil first, then uncovered to brown. For extra crispiness, brush the top with egg wash before baking. And if you're feeding a crowd, double the crust—everyone wants seconds.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this—just toss everything into a single dish, pop it in the oven, and walk away. No fancy layers, no stressing over assembly. The potatoes and carrots steam right into the fish filling, so you’re basically making dinner while doing laundry.
- Creamy Crisp Contrast: That buttery, golden potato top with the tender, flaky cod underneath? It’s the kind of texture combo that makes you pause mid-bite. The heavy cream and milk in the filling keep it rich without being heavy, and the carrots add just enough sweetness to balance the salt.
- Leftover Hero: Between us, this is my go-to for meal prep. The pie reheats beautifully—just cover it with foil and zap it for two minutes. Honestly, I’ve had it cold the next day too, and it’s still solid. Perfect for busy mornings when you need something hearty without the fuss.
- Budget-Friendly Feast: Cod’s affordable, and potatoes/carrots stretch further than you’d think. I’ll be real: this feeds four for under $15, and everyone walks away happy. Plus, the leftovers stretch into lunches, so you’re basically getting two meals for the price of one.
Step-by-step instructions for classic fish pie
Let's build this comforting classic with a golden crust and velvety filling.
Prepare the Creamy Fish Filling
Preheat your oven to 375°F. In a large skillet, melt 0.5 cup butter over medium heat. Add the 1 whole leeks, sliced into ¼-inch rounds, and cook for 5 minutes until softened but not browned. Stir in the 0.5 cup diced carrots and cook for another 3 minutes until they begin to soften.
Push the vegetables to one side of the pan and add the 1.5 lb cod fillets, seasoned with 1.5 tsp salt. Cook for 3-4 minutes per side until the fish is just opaque in the center and flakes easily with a fork. Remove the fish and set aside.
Increase the heat to medium-high and pour in the 1 cup milk and 1 cup heavy cream. Bring to a gentle simmer, then reduce heat to low. Stir in the 8 oz cream cheese and 1 tbsp Dijon mustard until completely melted and smooth. Add the cooked fish back to the pan along with the vegetables, then stir in the 1 cup shredded cheddar cheese and 2 tbsp fresh dill. Keep warm while you prepare the topping.
Make the Crispy Potato Topping
Peel and slice the 2 large russet potatoes into ¼-inch thick rounds. Spread them on a baking sheet in a single layer and bake for 15 minutes at 375°F until they begin to soften slightly but aren't browned.
In a medium bowl, combine the 1.5 cups all-purpose flour, 1.5 tsp salt, and 0.5 cup cold water. Mix with a fork until a rough dough forms. Remove the potatoes from the oven and sprinkle the flour mixture evenly over them, pressing gently to adhere. Return to the oven and bake for another 10 minutes until the topping is golden brown and crispy.
Assemble and Bake the Pie
Transfer the creamy fish mixture to a 9x9-inch baking dish, spreading it evenly. Arrange the crispy potato topping over the filling, pressing down gently to create a sealed crust. Bake for 20-25 minutes until the edges are golden brown and the filling is bubbling at the edges.
For the final touch, sprinkle the pie with 1 tbsp fresh parsley and return it to the oven for 2-3 minutes to let the parsley crisp slightly. Remove from the oven and let it rest for 5 minutes before serving—this helps the filling set and makes slicing easier.
Serve with Confidence
Slice into squares and serve immediately, with the crispy topping contrasting beautifully against the creamy, cheesy fish filling. The potatoes should be tender but still hold their shape, and the crust should be golden and slightly crispy. If you prefer extra crispiness, broil for 1-2 minutes at the end, watching closely to avoid burning.
Pair with a simple green salad or steamed vegetables to complete this classic dish. The combination of textures—creamy filling, crispy topping, and tender fish—makes every bite satisfying. Leftovers keep well in the refrigerator for up to 3 days, though they're rarely that lucky!
Pro Tips For Making Classic Fish Pie
- PARBOIL POTATOES FIRST: I learned this the hard way—peeling and slicing potatoes before boiling them makes them turn to mush in the cream sauce. Parboil them whole in salted water for 8-10 minutes first, then slice while still firm. The edges stay crisp, and they absorb the sauce like a dream instead of falling apart.
- SEAR COD IN BATCHES: Don’t crowd the pan or you’ll steam the fish instead of searing it. Work in single layers with a good splash of oil, and cook until golden—about 2-3 minutes per side. The crust is what keeps it from turning rubbery under the cream sauce.
- STARCH THE SAUCE: After removing the seared cod, don’t just dump in the cream—thicken it first. Stir in a spoonful of the potato water (yes, the starchy one) and let it simmer for 2 minutes. This makes the sauce velvety instead of watery, and it clings to the fish like it’s supposed to.
- TOAST THE CRUMB TOPPING: Skip the pre-made mix and make your own with breadcrumbs, butter, and a splash of milk—then toast it in the oven for 3-4 minutes before adding it to the pie. The extra crispness on top is the thing that matters most when it comes out of the oven. (Your future self will thank you.)
Storing and reheating your leftovers
Refrigerator Storage
Store your classic fish pie in an airtight container for up to 3 days in the refrigerator. The creamy cheese filling and crispy potato topping stay fresh when sealed properly.
I use glass Pyrex containers with snap-on lids—they preserve flavor better than plastic. Let the pie cool completely before storing to prevent condensation, which can make the crust soggy. 🥫
Freezer-Friendly Tips
This pie freezes beautifully for up to 2 months—perfect for meal prep! Wrap the baked pie tightly in plastic wrap, then place it in a freezer bag to lock in moisture.
Label with the date to track freshness. Thaw overnight in the fridge before reheating for best results. The texture holds up remarkably well, though the crust may lose some crispness.
Oven Reheating Method
For restaurant-quality reheating, cover the pie with aluminum foil and bake at 350°F for 20 minutes. Remove the foil for the last 5 minutes to restore that golden-brown crust.
This method ensures the filling stays creamy while the topping regains its satisfying crunch. I add a splash of milk or cream if the filling looks dry during reheating.
Microwave Shortcut
When time is tight, microwave individual portions covered with a damp paper towel on 50% power for 2-3 minutes. Stir halfway through to redistribute heat evenly. The filling may separate slightly, so I recommend adding 1 tablespoon of milk or cream to restore creaminess.
This method works best for quick lunches rather than full reheats.
Crispiness Revival
If the potato topping loses its crunch after reheating, pop the pie under the broiler for 1-2 minutes—watch closely to avoid burning. For extra insurance, brush the top with egg wash (1 egg + 1 tbsp water) before the final bake.
This technique works wonders for restoring that coveted crispy texture. 🔥
Leftovers Strategy
I always bake an extra portion—fish pie reheats better the second day! Store components separately if possible: the filling in one container and the crust in another. Reheat the filling first, then top with the crispy crust just before serving.
This keeps every bite perfectly textured, just like fresh from the oven. The flavors actually deepen overnight, making leftovers even more comforting.
Nutrition facts
Frequently asked questions
Can I make this fish pie with frozen fish?
Yes, but thaw it completely first in the refrigerator overnight. Frozen fish can release excess water during cooking, which may dilute your creamy filling. For best results, use high-quality frozen fillets like cod or haddock, and pat them thoroughly dry before cooking to maintain that rich texture.
What's the secret to a perfectly crispy potato topping?
The key is baking the potato slices first to soften them slightly, then coating them with a dry flour mixture before the final bake. This creates a sturdy, golden crust that holds its shape. For extra crispiness, brush the baked topping with a little melted butter before serving.
Can I substitute puff pastry for the potato topping?
Use a single sheet of puff pastry instead of the potato topping for a richer, flakier crust. Just brush it with egg wash before baking. The pastry adds a buttery contrast that pairs beautifully with the creamy filling. For a hybrid version, try layering half pastry and half potatoes.
Why did my fish pie turn out soggy?
Sogginess usually happens when the filling isn't fully set before baking or the topping isn't properly sealed. Make sure to bake the potato topping until golden and crisp, then press it firmly onto the filling. Also, avoid overfilling the dish—leave at least ½-inch headspace for the filling to set properly.
What's the best way to reheat leftovers?
Cover the pie with foil and reheat at 350°F for 20 minutes, then uncover for the last 5 minutes to restore crispiness. For microwave reheating, use 50% power for 2-3 minutes and add a splash of milk to maintain creaminess. The oven method always gives the best texture revival.
