Desserts
This basic fish pie recipe delivers comfort food perfection with its creamy mashed potato topping and tender flaky fish filling—just like Grandma used to make. The secret lies in poaching the fish gently to preserve its delicate texture while building a rich, velvety sauce that ties everything together.
I developed this version to balance tradition with modern convenience, using simple ingredients that still yield restaurant-quality results.
What sets this fish pie apart is the foolproof technique for achieving both crisp edges on the potato topping and a tender, flaky fish filling. The sauce—made from the poaching liquid—adds depth without overpowering the natural flavors of the fish.
This recipe works equally well with cod, haddock, or pollock, and the mashed potato topping can be made ahead for stress-free assembly.
By the time it emerges from the oven, you’ll have a golden, bubbling pie with a creamy potato crust that encases perfectly seasoned fish in a rich, savory sauce.
The contrast between the flaky fish and velvety topping makes every bite satisfying, while the aroma alone will have everyone gathering at the table. Ready in about 45 minutes, this dish proves homemade comfort food doesn’t require hours of prep.
Serve with a simple green salad or steamed vegetables for a complete meal. The leftovers reheat beautifully, making this the ideal recipe for meal prep or feeding a crowd. Whether you're a seasoned home cook or new to fish dishes, this pie delivers flaky, comforting results every time.
Ingredients for basic fish pie
Fourteen simple ingredients transform into a restaurant-worthy fish pie with tender fish and velvety potato topping.
| Ingredient | Amount | Notes |
|---|---|---|
| Cod Fillets 🐟 | 1 ½ lb | Skinless, boneless, fresh or thawed |
| Russet Potatoes 🥔 | 2 lbs | Yukon gold or similar waxy variety |
| Heavy Cream 🥛 | 1 cup | Full-fat for best texture |
| Whole Milk 🥛 | ½ cup | Warmed for creamy mashed potatoes |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed for best flakiness |
| Shallots 🧅 | 2 whole | Finely minced for sauce |
| Garlic Cloves 🧄 | 3 cloves | Peeled, minced for depth |
| Dry White Wine 🍷 | ½ cup | Sauvignon Blanc preferred |
| Fish Stock 💧 | 1 cup | Homemade or quality store-bought |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed for brightness |
| Dijon Mustard 🍯 | 1 tbsp | For subtle tang |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground for heat |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Breadcrumbs 🍞 | ½ cup | Panko for extra crunch |
The fish is the foundation, so prioritize quality. Cod is ideal for its mild flavor and delicate texture, but haddock or pollock work equally well. Look for fillets with a firm, translucent appearance and minimal fishy odor—Whole Foods or local seafood markets often carry the freshest options. If using frozen, thaw overnight in the fridge to preserve texture. The potatoes should be starchy but not waxy—Russets or Yukon Golds are perfect. For extra flavor, consider using organic potatoes from a trusted source like Trader Joe's or Costco.
No white wine? Fish stock or chicken broth works in a pinch, but add a splash of lemon juice to mimic acidity. Fresh herbs are best, but dried parsley at half the amount suffices. The Dijon mustard adds depth—substitute with 1 tsp of lemon juice if unavailable. For the mashed potatoes, warm the milk and cream before mixing to ensure a silky texture. The breadcrumbs can be swapped for crushed cornflakes for a gluten-free option, though texture will differ slightly. If you prefer extra crispiness, toss the breadcrumbs with 1 tbsp melted butter before topping.
Prep the mashed potatoes ahead of time—they keep well in the fridge for 2-3 days or frozen for 3 months. Assemble the pie just before baking to prevent sogginess. Leftovers reheat beautifully—cover with foil and bake at 350°F for 15 minutes. For meal prep, portion the filling into individual dishes, top with mashed potatoes, and bake as directed. The pie freezes well too—assemble, bake, then freeze for up to 2 months. Just thaw overnight before reheating.
Why You'll Love This Recipe
- One-Pan Wonder: I swear by this recipe because it’s basically hands-off after the initial chop. Boil the potatoes, simmer the cod, mix the cream—then dump it all into one dish and bake. No fancy layers, no fuss, just pure, golden satisfaction.
- Creamy Crisp Magic: That buttery, flaky crust on top with the velvety cream underneath? It’s the kind of contrast that makes you pause mid-bite. The heavy cream and milk turn this into something rich and comforting, not just another fish dish.
- Leftovers That Don’t Suck: Honestly, I make this on Sundays just so I can reheat it all week. The potatoes stay soft, the cod stays tender, and the cream doesn’t curdle—unlike some sad, rubbery casseroles I’ve tried. It’s the kind of meal that actually tastes better the second day.
- Budget-Friendly Luxury: Cod is affordable, potatoes fill you up, and a splash of cream makes it feel special without breaking the bank. It’s the kind of dish that tricks your brain into thinking you spent an hour slaving over it, when really, you just assembled it. Win-win.
Step-by-step instructions for creamy mashed potato crown over flaky fish filling
Here's the method to achieve that perfect balance of tender fish and velvety mashed potatoes.
Prepare the Flaky Fish Filling
Preheat your oven to 375°F. In a large oven-safe skillet, melt 0.25 cup of the unsalted butter over medium heat. Add the 2 whole shallots and 3 cloves garlic cloves, cooking until softened and fragrant, about 3-4 minutes. Pour in the 0.5 cup dry white wine and let it simmer until reduced by half.
Add the 1.5 lb cod fillets, seasoning with 1 tsp salt and 0.25 tsp black pepper. Cook for 3-4 minutes per side until the fish is just opaque in the center. Remove the skillet from heat and stir in the 1 cup fish stock, 2 tbsp lemon juice, and 1 tbsp Dijon mustard. Return the skillet to the oven and bake for 10 minutes to let the flavors meld.
Create the Creamy Mashed Potato Topping
While the fish bakes, peel and cube the 2 lbs russet potatoes. Boil them in salted water until fork-tender, about 15-20 minutes. Drain well and return them to the pot. Add the remaining 0.25 cup unsalted butter and 0.5 cup whole milk, then mash until completely smooth.
Season the mashed potatoes with the remaining 0.5 tsp salt and 0.25 tsp black pepper. Stir in the 1 cup heavy cream and 0.25 cup fresh parsley, mixing until the parsley is evenly distributed. The texture should be light and airy, with no lumps remaining.
Assemble and Bake to Perfection
Remove the fish from the oven and carefully spread the mashed potato mixture over the top, using a spatula to create a smooth, even layer. Sprinkle the 0.5 cup breadcrumbs evenly over the mashed potatoes to create a crispy topping.
Return the skillet to the oven and bake for an additional 15-20 minutes, until the top is golden brown and the filling is bubbling. The breadcrumbs should be crispy to the touch, while the mashed potatoes underneath remain creamy and smooth. Let the pie rest for 5 minutes before serving to allow the filling to set slightly.
Serve with Confidence
Garnish with additional fresh parsley if desired. The fish should be flaky and tender, while the mashed potato topping remains creamy and velvety. Cut into wedges and serve immediately, ensuring each bite delivers that perfect combination of textures and flavors.
This dish delivers on the promise of creamy mashed potatoes and flaky fish filling, with each component perfectly balanced. The breadcrumb topping adds a satisfying crunch that contrasts beautifully with the tender fish and smooth mashed potatoes.
Pro Tips For Making Basic Fish Pie
- Parboil Potatoes First: I used to mash raw potatoes straight into the cream, and it always turned out gummy. Instead, boil them in their skins until fork-tender (about 12 minutes), then drain and mash while still hot. This keeps the texture light and fluffy—no one wants gluey mashed potatoes in their pie.
- Season Cod Like It’s Steak: Cod’s delicate flavor gets drowned out if you’re shy with salt. Generously season both sides with flaky salt (about ½ teaspoon per fillet) and let it sit for 10 minutes before cooking. This ensures the seasoning penetrates, and you won’t end up with bland fish hiding under the cream.
- Prevent Soggy Topping: The worst offense in a fish pie is a sad, wet crust. After assembling the pie, spread a thin layer of cold butter over the mashed potato topping, then sprinkle with breadcrumbs. Bake uncovered for the first 15 minutes to crisp it—this creates a barrier that keeps the filling from turning to soup.
- Upgrade with Lemon Zest: Heavy cream and milk can make fish pie taste heavy. Brighten the sauce with 1 teaspoon of lemon zest mixed into the cream before adding it to the fish. It’s a tiny effort that cuts through the richness and makes the whole dish taste fresher—trust me, it’s worth it.
Dietary considerations for basic fish pie
Gluten-Free Adaptations
For a gluten-free version, swap the breadcrumbs for crushed cornflakes or gluten-free panko—I recommend Bob's Red Mill brand. These alternatives maintain a crispy texture while avoiding gluten.
You’ll need about ½ cup to match the original topping. The mashed potatoes stay naturally gluten-free, so no other changes are needed. 🌾
Dairy-Free Options
To make this dish dairy-free, replace the butter with vegan butter (like Miyoko's) and use full-fat coconut milk instead of heavy cream and milk. For richness, add 1 tbsp nutritional yeast to the mashed potatoes.
The flavor remains creamy, though slightly nuttier. Test the seasoning—dairy-free versions often need extra salt.
Vegetarian-Friendly Swaps
Turn this into a vegetarian pie by replacing the fish with chickpeas or white beans. Simmer 1.5 cups cooked chickpeas in the wine, stock, and lemon juice mixture for 10 minutes before adding to the sauce.
For extra heartiness, stir in ½ cup spinach at the end. The texture will be heartier, but the creamy topping balances it perfectly.
Lower-Carb Modifications
Reduce carbs by replacing half the potatoes with cauliflower mash. Steam 1 lb cauliflower florets until tender, then blend with 2 tbsp butter and ¼ cup milk until smooth.
Mix this with the regular mashed potatoes in a 50/50 ratio. The result is lighter but still creamy, cutting carbs by about 30% per serving. 🥦
Allergen-Friendly Tips
For nut allergies, avoid any nut-based thickeners—stick to traditional methods. If shellfish allergies are a concern, ensure your fish stock is shellfish-free (many store-bought versions contain it).
For egg allergies, the recipe is naturally safe, but always double-check your breadcrumbs—some brands add egg wash for crispiness. Opt for egg-free panko if needed.
Keto-Friendly Adjustments
Transform this into a keto-friendly dish by omitting the potatoes entirely. Instead, create a cauliflower crust by blending 1 lb riced cauliflower with 2 eggs, ¼ cup cheese, and 1 tbsp cream cheese.
Press this into the skillet before baking, then top with the fish filling. The result is a low-carb, high-fat pie that still delivers rich, satisfying flavors. 🥬
Nutrition facts
Frequently asked questions
Can I use frozen fish instead of fresh for this recipe?
Yes, but thaw it properly to avoid dry fish. Place frozen fillets in a sealed bag and submerge in cold water for 30 minutes per pound. Never thaw at room temperature—this causes uneven cooking. For best texture, use cod, haddock, or pollock as they hold up well to freezing.
Why does my mashed potato topping get watery after baking?
This happens when the potatoes aren't drained completely or the cream is added too early. Always drain potatoes well and let them cool slightly before mashing. For extra insurance, add 1 tbsp cold butter to the mashed potatoes before baking to stabilize them. Also ensure your oven isn't too hot—375°F is ideal.
Can I make this fish pie ahead of time?
Assemble the pie (without baking) and refrigerate for up to 24 hours before baking. For best results, bake it straight from the fridge—just add 5-10 extra minutes to the baking time. Leftovers keep well for 3 days in the fridge, or freeze for 2 months. Reheat covered with foil at 350°F for 15 minutes.
What's the best way to reheat fish pie?
For crispy results, cover with foil and bake at 350°F for 15 minutes. To revive the breadcrumb topping, broil for 2-3 minutes at the end. For microwave reheating, cover with a damp paper towel and heat in 30-second intervals—this prevents sogginess. Add a splash of milk or cream if the potatoes seem dry.
Can I use a different type of fish?
Mild white fish work best—try halibut, tilapia, or mahi-mahi. For stronger flavors, use salmon or trout but reduce the lemon juice to 1 tbsp to balance. Avoid oily fish like mackerel—they can make the sauce greasy. Always use 1.5 lbs of fish regardless of type for proper proportions.
