Desserts
This basic fish pie recipe delivers all the comfort of a classic British dish without the fuss—creamy, flaky layers of mashed potato crowned over tender fish and vegetables, baked to golden perfection.
I developed this version after years of testing what makes a fish pie truly special: the right balance of texture, flavor, and simplicity. The secret lies in using high-quality white fish (like cod or haddock) and a velvety béchamel that binds everything together.
The beauty of this recipe is its versatility—it’s perfect for a cozy weeknight dinner or a special meal that feels indulgent without being complicated. The mashed potato topping isn’t just a crust; it’s the star, crisping beautifully on top while staying tender underneath.
With just 45 minutes of active prep and 30 minutes in the oven, you’ll have a dish that tastes like it took hours to prepare.
What you’ll end up with is a flaky, golden-brown pie with layers that melt in your mouth—creamy fish filling, rich béchamel, and a crispy potato crown that holds its shape.
The aroma alone will have everyone gathering around the table, and the first bite delivers that satisfying combination of textures and flavors. This is comfort food at its finest, and it’s entirely pescatarian-friendly.
Serve with a simple green salad or steamed vegetables to round out the meal. The leftovers reheat beautifully, making this an ideal recipe for meal prep or feeding a crowd. Let’s get started on creating your perfect fish pie!
Ingredients for basic fish pie
Fourteen simple ingredients transform into a flaky, golden fish pie with creamy layers.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod or haddock preferred (skinless) |
| Russet Potatoes 🥔 | 2 lbs | Yukon gold works too (peeled, cubed) |
| Heavy Cream 🥛 | 1 cup | Full-fat for best texture |
| Whole Milk 🥛 | ½ cup | Warmed for smoother mash |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed for béchamel |
| All-Purpose Flour 🌾 | ¼ cup | For velvety béchamel |
| Shallots 🧅 | 2 whole | Minced (or 1 small onion) |
| Garlic Cloves 🧄 | 3 cloves | Minced (fresh preferred) |
| Fresh Parsley 🌿 | ¼ cup | Chopped (stems okay) |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked |
| Nutmeg 🌿 | ¼ tsp | Freshly grated |
| Green Onions 🧅 | 2 whole | Sliced (for garnish) |
The fish is non-negotiable here—cod or haddock is your best bet for that tender, flaky texture. Trader Joe's or Whole Foods usually have fresh fillets, but frozen works too (just thaw overnight). Look for fillets with even thickness so they cook uniformly. I always grab extra because it's so easy to overcook—better to have leftovers than dry fish. The potatoes? Russets they're starchy and hold their shape when baked. Yukon golds give a creamier mash but can get gummy if overworked.
No fresh parsley? Dried works at half the amount, but fresh is best for that bright flavor. Swapping shallots for onion? Use half the quantity since onions are stronger. The béchamel can be made ahead—just reheat with a splash of milk before using. Want extra richness? Stir in 1 oz cream cheese with the butter. The lemon juice is key for brightness—don't skip it, even if you're not a fan of citrus in savory dishes. Diamond Crystal kosher salt is my go-to because it dissolves cleanly, but any sea salt works.
This pie reheats like a dream—350°F for 15 minutes covered with foil. Store leftovers in the fridge for 3-4 days, or freeze portions for up to 2 months
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just peel and slice those potatoes, poach the fish, then dump everything into one baking dish. No extra bowls, no stress, and the oven does all the work while I sip tea.
- Creamy Crisp Perfection: That buttery potato topping turns golden and flaky, while the fish stays tender beneath. Honestly, the contrast is what makes it—like a hug in dish form.
- Lunchbox Hero: Between us, this reheats beautifully. Pack the leftovers for work, and no one will guess it’s "basic." My kids actually like it cold, which is saying something.
- Budget Bargain: White fish and russets stretch further than you’d think. I make this twice a month, and the ingredients rarely cost me more than $12. Filling, fancy-feeling, and kind to my wallet.
Step-by-step instructions for savory mashed potato crown over flaky fish
Here's how to build a comforting fish pie with layers of creamy mash and tender fish.
Prepare the Fish Filling with Aromatics
Preheat your oven to 375°F for baking. In a large oven-safe skillet, melt 0.25 cup unsalted butter over medium heat. Add the 2 minced shallots and 3 minced garlic cloves, cooking for 3-4 minutes until softened and fragrant—you'll smell that sweet onion aroma filling your kitchen.
Add the 1.5 lb white fish fillets (cod or haddock) to the pan, seasoning immediately with 1 tsp salt, 0.25 tsp ground black pepper, and 1 tbsp lemon juice. Cook for 4-5 minutes on each side until the fish flakes easily with a fork and turns opaque. Remove from heat and stir in 0.25 cup chopped fresh parsley.
Make the Creamy Potato Topping
While the fish cooks, boil the 2 lbs peeled and cubed russet potatoes in salted water for 15-18 minutes until fork-tender. Drain thoroughly, then return to the pot. Add 0.5 cup unsalted butter, 1 cup heavy cream, 0.5 cup warmed whole milk, 1.5 tsp salt, 0.5 tsp ground black pepper, and 0.25 tsp nutmeg.
Mash until completely smooth—no lumps allowed. For extra creaminess, press the potatoes through a ricer or fine-mesh sieve. Spread this velvety mash evenly over the fish in the skillet, creating a smooth, even layer.
Create the Béchamel Sauce Layer
In a small saucepan, melt 0.25 cup unsalted butter over medium heat. Whisk in 0.25 cup all-purpose flour to form a roux, cooking for 1-2 minutes until bubbly but not browned. Slowly whisk in 1 cup heavy cream and 0.5 cup warmed whole milk, stirring constantly until thickened to a glossy consistency.
Season with remaining 0.5 tsp salt, 0.25 tsp ground black pepper, and 0.25 tsp nutmeg. Pour this creamy béchamel evenly over the mashed potato layer, spreading it to the edges of the skillet.
Bake Until Golden and Flaky
Transfer the skillet to the preheated oven and bake for 25-30 minutes until the top is golden brown and the edges bubble slightly. The filling should be heated through and the mashed potatoes should be set but still creamy.
For the perfect flaky finish, broil for 1-2 minutes at the end, watching closely to prevent burning. Garnish with 2 sliced green onions before serving immediately from the warm skillet.
Pro Tips For Making Basic Fish Pie
- Precook the Potatoes: DESCRIPTION: Boil them until they’re fork-tender, then spread them on a baking sheet to cool. Cold potatoes mash smoother and don’t turn gluey when you mix them later—I learned this after one very lumpy pie.
- Salt the Fish Early: DESCRIPTION: Season the fillets right after thawing (or when raw) and let them sit for 10 minutes. The salt breaks down proteins, so they stay firm instead of falling apart in the creamy sauce—trust me, your pie won’t fall apart mid-slice.
- Don’t Overmix the Topping: DESCRIPTION: Stir the cream-milk-butter mix just until combined—lumps are fine. Overworking it makes the crust rubbery, and nobody wants a sad, dense top layer. Rough is better.
- Bake at 375°F, Not Higher: DESCRIPTION: Too hot and the potatoes steam instead of crisping; too low and the fish gets rubbery. 375°F is the Goldilocks zone—hot enough to brown the top, cool enough to keep the fish tender. Use an oven thermometer if yours lies.
Serving suggestions for basic fish pie
Classic Garnish Touches
Freshly sliced green onions add a bright pop of color and mild onion flavor that elevates the dish. I like to sprinkle them evenly over the golden crust right after broiling—just 2 onions sliced thinly works perfectly.
For extra flair, add a pinch of smoked paprika or a few toasted breadcrumbs to the top before baking for added texture. 🌿
Side Dish Pairings
A simple steamed green bean salad with lemon zest and parsley complements the richness without overpowering. Toss 1 lb green beans with 1 tbsp olive oil, 1 tbsp lemon juice, 1 tsp honey, and 2 tbsp chopped parsley for a refreshing contrast.
Alternatively, serve with buttery dinner rolls to soak up any extra sauce. 🥗
Wine Pairing Perfection
A crisp Sauvignon Blanc from New Zealand or Loire Valley balances the dish’s creaminess with its bright acidity. I recommend Oyster Bay Sauvignon Blanc—its citrus notes mirror the lemon in the fish filling.
For red wine lovers, a light Pinot Noir like Meiomi offers subtle earthiness that won’t clash. Avoid heavy, oaky whites or bold reds. 🍷
Presentation Pro Tips
Serve the pie directly from the skillet for that rustic, comforting appeal. If plating individually, use a ring mold to create neat circles of mashed potato on top of the fish.
Drizzle with extra béchamel sauce or a swirl of crème fraîche for a restaurant-worthy finish. I always serve with a small side salad to cut through the richness. ✨
Leftovers Reinvented
Transform leftover fish pie into fish pie croquettes for a crispy appetizer. Cut the pie into 1-inch cubes, dip in beaten egg, then coat with panko breadcrumbs.
Pan-fry until golden and serve with tartar sauce. Another idea: slice into thick rounds and reheat for open-faced sandwiches with a dollop of sour cream. 💡
Seasonal Adaptations
In summer, swap the mashed potatoes for a light potato scallop topping—thinly sliced potatoes baked until crispy. For winter, add caramelized onions or roasted mushrooms to the fish filling. A sprinkle of fresh dill in spring or sautéed spinach in fall keeps the dish vibrant year-round. 🌱
Nutrition facts
Frequently asked questions
Can I use frozen fish instead of fresh for this recipe?
Thaw the fish overnight in the refrigerator before using. Look for frozen fillets with even thickness to ensure they cook uniformly. Avoid thawing at room temperature, as this can make the fish mushy.
How do I prevent the mashed potato topping from getting soggy?
Pat the mashed potatoes completely dry after draining and let them cool slightly before spreading. Also, ensure the fish filling is fully cooked and drained of excess moisture. For extra insurance, sprinkle a pinch of salt on the mashed potato layer before adding the béchamel.
What's the best way to reheat leftover fish pie?
Cover the pie with foil and reheat at 350°F for 15 minutes, then uncover and broil for 1-2 minutes to restore crispiness. For individual portions, microwave for 1 minute covered, then finish under the broiler for 30 seconds. Never microwave uncovered.
Can I make this recipe without dairy?
Yes! Replace the butter with olive oil or vegan butter, use unsweetened almond milk instead of cream/milk, and make a cashew-based béchamel. The texture will be slightly different but still delicious. For the mashed potatoes, use coconut milk or olive oil instead of dairy.
Why did my fish pie turn out dry?
Overcooking is the most common cause. Fish cooks quickly—4-5 minutes per side is perfect. Also check your oven temperature—too high heat can dry out the filling. For extra moisture, add 2 tbsp extra cream to the fish filling before baking.
