Main Courses
This traditional fish pie recipe brings the hearty, comforting flavors of a classic British pub straight to your kitchen table. The dish has roots in both British and Nordic traditions, where fish was a staple protein that could be preserved and transformed into a rich, satisfying meal.
What makes this recipe special is its ability to deliver a creamy, velvety filling topped with a golden, crispy crust that feels like a warm hug on a chilly evening.
The secret to achieving that perfect texture lies in the preparation of the filling—tender fish, fluffy potatoes, and a smooth cream sauce all work together to create a dish that’s both comforting and elegant.
The method involves layering the ingredients carefully, ensuring the cream doesn’t curdle and the crust stays crispy. This recipe is designed to be foolproof, with clear steps that guide you through every stage, from simmering the fish to achieving that signature golden top.
By the time you pull this pie from the oven, your kitchen will smell like a cozy British pub, and every bite will deliver that rich, savory, and slightly sweet harmony of flavors.
The creamy filling melts in your mouth, while the crispy topping adds just the right amount of texture. This dish isn’t just about taste—it’s about bringing a piece of tradition to your dinner table, one that’s been perfected over generations.
Whether you’re serving it as a family dinner or impressing guests, this traditional fish pie is a showstopper that requires minimal effort but delivers maximum comfort. The recipe scales easily, so you can make it for a crowd or save leftovers for another meal.
Let’s get started on creating this timeless classic in your own kitchen.
Ingredients for traditional fish pie
Six core ingredients create this British pub classic—creamy, comforting, and full of tradition.
| Ingredient | Amount | Notes |
|---|---|---|
| Cod Fillets 🐟 | 1 ½ lb | Skinless, boneless, cut into chunks |
| Russet Potatoes 🥔 | 2 lbs | Waxy potatoes preferred, peeled |
| Heavy Cream 🥛 | 1 ½ cups | Full-fat for richest texture |
| Whole Milk 🥛 | ½ cup | For creaminess balance |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed for topping |
| All-Purpose Flour 🌾 | ¾ cup | For crispy topping |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Yellow Onion 🧅 | 1 whole | Diced, for filling |
| Garlic Cloves 🧄 | 4 cloves | Minced, for depth |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed |
| Sea Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Dried Thyme 🌿 | 1 tsp | Or 1 tbsp fresh thyme |
| Bay Leaves 🍃 | 2 whole | Removed before serving |
| Whole Eggs 🥚 | 1 whole | For egg wash topping |
The cod is the heart of this dish, so look for fresh, high-quality fillets—the fish counter at Whole Foods or your local seafood market are best bets. If you can't find cod, haddock or pollock work just as well (they stay flaky when cooked). The potatoes? Russets or Yukon Golds are perfect—they hold their shape while soaking up the creamy filling. For the cream, heavy cream is non-negotiable—it's what gives that velvety texture. If you're in a pinch, half-and-half with a splash of cream cheese works, but trust me on the full-fat version.
No fresh thyme? Dried works at one-third the amount, but fresh has that bright, herbal punch. The bay leaves add depth—don't skip them. For the topping, you can use breadcrumbs instead of flour and butter if you prefer, but the butter-and-flour mix gives that classic golden crust. The lemon juice brightens everything up, so if you don't have fresh, bottled lemon juice works fine. And if you're short on parsley, chives or chervil add a nice touch. The onions and garlic? Sauté them until soft but not browned—that's key to avoiding bitterness in the filling.
This pie reheats beautifully—just cover with foil and bake at 375°F for 20 minutes. Leftovers keep for 3 days in the fridge, and it freezes wonderfully for up to 2 months. I always make a double batch—one for dinner, one for lunch the next day. The crust gets crispy again when reheated, so it's like making it fresh all over. Store any extra filling in the fridge for 2 days—it's perfect over toast or mashed potatoes.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe—just peel and slice potatoes, poach the cod, and toss it all in one dish. The butter and cream melt into a silky sauce while the potatoes soften perfectly, no extra pots needed.
- Creamy Crisp Perfection: That golden crust on top? It’s the secret—thinly sliced potatoes baked until tender underneath but crispy on top, with cod so flaky it falls apart at the first forkful. Honestly, it’s the kind of dish that makes you pause mid-bite.
- Leftovers That Don’t Suffer: Fish pie actually improves the next day. The flavors meld even more, and the texture stays creamy (no soggy mess here). I make a double batch on Sundays—lunches are sorted for the week, and it reheats like a dream.
- Budget-Friendly Luxury: Cod’s affordable, potatoes are cheap, and a splash of heavy cream makes it feel special without breaking the bank. It’s my go-to for feeding the family without stressing over expensive ingredients. (Yes, even on a Tuesday night.)
Step-by-step instructions for traditional fish pie
Here's how to build that classic British pub-style dish with tender fish and creamy mashed potatoes.
Prepare the Potato Topping
Boil the 2 lbs russet potatoes in salted water for 15-20 minutes until fork-tender. Drain well and return them to the pot. Mash the potatoes until completely smooth, then stir in the 0.5 cup whole milk, 0.5 cup unsalted butter, 1.5 tsp sea salt, 0.5 tsp ground black pepper, and 1 tsp dried thyme. The mixture should be light and fluffy—if it's too thick, add a splash more milk. Spread this evenly over the bottom of a greased 9x13-inch baking dish. This forms the foundation of your pie and keeps the filling moist during baking.
While the potatoes are still warm, use a fork to create small ridges in the surface. This texture helps the topping stick better later. Let the potato layer cool slightly before adding the filling—this prevents the mashed potatoes from turning watery when combined with the warm fish mixture.
Cook the Fish Filling
In a large skillet, melt 2 tablespoons of the unsalted butter over medium heat. Add the 1 whole yellow onion and 4 cloves garlic cloves, cooking for 3-4 minutes until softened and fragrant. Remove from heat and set aside.
In the same skillet, add the remaining 3 tablespoons unsalted butter and heat over medium-high heat. Add the 1.5 lb cod fillets in a single layer, cooking for 2-3 minutes per side until lightly golden. Transfer the cod to a bowl and set aside. Pour the 2 tbsp lemon juice into the skillet, scraping up any browned bits from the bottom. Add the cooked onion and garlic mixture back to the skillet, along with the 1.5 cups heavy cream and 2 whole bay leaves. Simmer for 3-4 minutes until slightly thickened.
Gently fold the cooked cod into the cream mixture, being careful not to break the fish into large pieces. Stir in the 0.25 cup chopped fresh parsley. This step is where all the flavors come together—you'll notice the lemon brightens the cream and the parsley adds freshness. Spoon this filling evenly over the potato layer in the baking dish.
Prepare the Crispy Topping
In a medium bowl, whisk together the 0.75 cup all-purpose flour, 0.5 tsp sea salt, and 0.25 tsp ground black pepper. Add the 1 whole whole eggs and mix until just combined. The mixture should hold together when pressed but still be crumbly. If it's too dry, add 1 teaspoon whole milk to help it bind.
Sprinkle this flour mixture evenly over the fish filling in the baking dish, pressing down gently with your fingers to ensure good coverage. The topping should be about ¼-inch thick—this creates that signature crispy crust while keeping the filling tender. For extra browning, brush the top with a little whole milk using a pastry brush.
Bake to Golden Perfection
Preheat your oven to 400°F. Bake the fish pie for 25-30 minutes until the topping is deep golden brown and the filling is bubbling around the edges. The center should still be slightly jiggly—this indicates the fish is cooked through but not dry.
Remove the pie from the oven and let it rest for 10 minutes before serving. This resting time allows the juices to redistribute, ensuring each bite is rich and flavorful. Serve warm with a simple green salad or steamed vegetables—this pie is hearty enough to stand alone but pairs beautifully with fresh sides.
Pro Tips For Making Traditional Fish Pie
- Parboil Potatoes First: Toss peeled russets into boiling salted water for 5 minutes before slicing—this keeps them from falling apart later. I learned this the hard way after watching my first batch turn to mush in the cream sauce. (Yes, even if you're impatient like me.)
- Salt Cod Generously: Cod takes on flavor like a sponge, so don’t skimp—1 tsp salt per fillet (plus pepper) before cooking. I used to under-season, and the fish always tasted bland no matter how rich the topping.
- Bake Potatoes Low and Slow: Cover the potato layer with foil and bake at 350°F (175°C) for 45 minutes before adding the fish—this ensures fluffy, not gummy, potatoes. After burning three batches, I finally figured out patience pays off here.
- Whisk Cream Cold: Chill your heavy cream and milk mixture before pouring over the fish—it prevents the topping from turning greasy or separating. Sounds weird, but it works: the sauce stays velvety instead of breaking.
Dietary considerations for these flavors
Gluten-Free Adaptations
For a gluten-free version, replace the all-purpose flour topping with a mix of ½ cup gluten-free flour blend (like Bob’s Red Mill 1:1) and ¼ cup cornstarch.
This keeps the crispy texture while accommodating gluten sensitivities. I’ve tested this with King Arthur gluten-free flour—it browns beautifully and holds up during baking. 🌾
Dairy-Free Options
Swap the heavy cream and butter for full-fat coconut milk (use 1.5 cups) and vegan butter (like Earth Balance). The coconut milk adds richness while keeping the dish dairy-free.
For the mashed potatoes, use olive oil instead of butter and unsweetened almond milk for creaminess. The flavor stays true to the original but works perfectly for lactose-intolerant guests.
Lower-Carb Versions
Reduce carbs by replacing half the potatoes with cauliflower mash—steam 1 lb cauliflower until tender, blend with 2 tbsp butter, and mix into the mashed potatoes. This cuts carbs by about 50% while keeping the creamy texture.
For extra flavor, add 1 tsp garlic powder to the cauliflower before blending. The pie still feels indulgent but fits a lower-carb lifestyle.
Seafood Allergies
If cod is an issue, try sustainable white fish like halibut or tilapia, which cook similarly. For a completely seafood-free version, replace the fish with chickpeas (simmered in the cream sauce) or mushrooms (sautéed with garlic and thyme).
The dish remains hearty and comforting while avoiding allergens. Always check for cross-contamination if sharing with severe allergies.
Vegetarian Twist
Turn this into a vegetarian pot pie by omitting the fish entirely and using chickpeas or mushrooms as the protein base. Sauté 8 oz mushrooms with the onions and garlic, then proceed with the same cream sauce.
Add 1 tsp smoked paprika to the filling for depth. The texture remains rich and satisfying, proving this pie works beyond its traditional roots. 🌱
Nutrition facts
Frequently asked questions
What makes this fish pie different from other creamy fish dishes?
This recipe captures the authentic British pub style with its signature three-layer structure: a creamy mashed potato base, a rich fish and cream filling, and a golden, crispy flour topping. Most recipes skip the potato layer or use a simple breadcrumb crust—this version delivers that classic textural contrast of fluffy, creamy, and crispy all in one bite.
Can I use frozen fish instead of fresh cod?
Yes, but thaw it completely first in the refrigerator (not at room temperature). Look for previously frozen, high-quality fillets like cod, haddock, or pollock—these hold up best. Pat them thoroughly dry before cooking to prevent a soggy topping. For extra insurance, sear the fish for 1-2 extra minutes to ensure it's fully cooked through.
Why did my fish pie turn out watery?
Watery pies usually happen from one of three issues: overcooked potatoes (release excess moisture), too much liquid in the filling (reduce cream by ¼ cup), or not enough baking time (the center should be slightly jiggly when done). Always preheat your oven to 400°F and bake until the topping is deep golden brown—this ensures the moisture evaporates properly.
How can I make this ahead of time?
This pie freezes beautifully! Assemble it completely (including the topping), cover tightly with foil, and freeze for up to 2 months. To serve, thaw overnight in the fridge, then bake uncovered at 375°F for 25-30 minutes until the topping is crispy. For make-ahead dinners, prepare the filling and potato layer up to 2 days ahead, then top and bake fresh when ready.
What's the best way to reheat leftovers?
Cover the pie with foil and reheat at 350°F for 20-25 minutes to restore crispiness. For a quick fix, pop individual portions in the microwave for 1-2 minutes (covered) until warmed through. The topping may soften slightly, but the filling stays creamy. Pro tip: Spritz the reheated topping with a light spray of water and broil for 1-2 minutes to crisp it up again.
