Classic Fish Pie Recipe: Crispy Top, Melty Cheese, Comfort in a Dish

Desserts

Classic Fish Pie Recipe: Crispy Top, Melty Cheese, Comfort in a Dish

This classic fish pie recipe delivers the ultimate comfort food experience—tender fish, creamy sauce, and a golden, crispy potato topping that melts in your mouth.

I’ve perfected this dish over years of testing, balancing traditional techniques with modern twists to ensure every bite is rich, satisfying, and full of homestyle charm. The secret lies in steaming the fish first, which keeps it moist while the sauce and potato topping transform into a velvety, golden crown.

The foundation of a great fish pie starts with high-quality fish—haddock, cod, or salmon all work beautifully—cooked just until flaky before being smothered in a luscious sauce. A well-made béchamel or cheese-based sauce ties everything together, while the potato topping adds texture and depth.

The result? A dish that’s hearty enough for a family dinner but elegant enough for a special occasion, all while staying true to its classic roots.

What makes this recipe stand out is the crispy potato topping, achieved through precise layering and baking at the right temperature. The sauce beneath remains silky and rich, ensuring the fish stays tender and the flavors meld perfectly.

Every forkful delivers a perfect balance of textures—creamy, crispy, and melt-in-your-mouth—making it a dish that’s impossible to resist. Whether you’re feeding a crowd or treating yourself, this pie is pure comfort in every bite.

The beauty of this classic fish pie is its versatility—add fresh herbs, a splash of white wine to the sauce, or a sprinkle of breadcrumbs for extra crunch. It reheats beautifully, too, so leftovers taste just as good the next day.

Ready to create a dish that’s as nostalgic as it is delicious? Let’s get started with the ingredients and instructions that will bring this pie to life.

👨‍🍳
Difficulty
Easy
🐟
Diet
Seafood
🔥
Calories
High Cal

Ingredients for classic fish pie

Fresh fish, creamy sauce, and crispy potatoes—this pie needs just a few quality ingredients.

Ingredient Amount Notes
Haddock Fillets 🐟 1 ½ lb Skinless, boneless, fresh or thawed
Russet Potatoes 🥔 2 lb Medium size, peeled and sliced
Heavy Cream 🥛 1 cup Full-fat for richness
Whole Milk 🥛 ½ cup Warmed for smooth sauce
Butter 🧈 ½ cup Unsalted, cubed
Shallots 🧅 2 whole Minced for fine texture
Garlic Cloves 🧄 4 cloves Peeled and minced
All-Purpose Flour 🌾 ¼ cup For thickening sauce
Sharp Cheddar Cheese 🧀 1 cup Shredded, aged variety
Gruyère Cheese 🧀 ½ cup Shredded, nutty flavor
Fresh Dill 🌿 ¼ cup Chopped, bright flavor
Lemon Juice 🍋 2 tbsp Freshly squeezed
Salt 🧂 1 ½ tsp Adjust to taste
Black Pepper 🌶️ ½ tsp Freshly ground
White Wine 🍷 ½ cup Dry variety, optional

The fish is everything here. Haddock or cod stays firm enough to hold shape, while salmon adds richness. Grab fresh from the seafood counter—Trader Joe’s or Whole Foods have great options. If using frozen, thaw overnight in the fridge. The potatoes should be starchy but not waxy—Russets are perfect. I always peel and slice them thinly (about 1/8-inch) for even cooking. For the cheese, aged cheddar gives sharpness while Gruyère adds nutty depth. Skip pre-shredded—it gets gummy.

No white wine? Fish or chicken stock works just as well. Fresh dill is ideal, but dried dill at half the amount gets you close. Short on Gruyère? Parmesan or Swiss both work—just adjust to taste. The butter matters here—European-style melts better than American. For the sauce, if you're nervous about flour, cornstarch slurry (1 tbsp cornstarch + 1 tbsp cold water) thickens beautifully. The shallots? Substitute 3 tbsp onion if you're out, but they're worth the extra minute to mince.

This pie reheats like a dream—just cover with foil and bake at 375°F for 15-20 minutes. Keeps 3-4 days in the fridge, freezes for up to 3 months. I always make a double batch—leftovers are even better the next day. Store the sauce separately if you're prepping ahead; just reheat gently before assembling. The potato topping? Best served fresh from the oven, but you can reheat it covered at 350°F for 10 minutes if needed.

❤️

Why You'll Love This Recipe

  • I’ll be real: haddock is cheaper than steak, and potatoes stretch further than you’d think. Make a big batch, and you’ve got lunch for days. The flavor actually improves the next day—yes, really. Plus, it reheats like a dream, so no sad, dry leftovers here. My wallet and my taste buds thank me.
  • One-Pan Magic: Honestly, I swear by this recipe because it’s literally one pan. You boil the potatoes in the same dish you’ll later bake the pie—no extra pots, no scrubbing. Just peel, chop, and layer. That creamy milk-butter sauce? It’s all made in the same spot, too. Less cleanup than my takeout order.
  • Creamy Crisp Perfection: Between us, the texture is ridiculous—flaky haddock under a golden, buttery potato crust that cracks just enough to let the steam escape. The heavy cream and milk make it silky, but the butter? It’s what turns it from good to "I’ll make this again tomorrow." That crispy edge? Chef’s kiss.
  • Weeknight Hero: This is my go-to when I’m exhausted but need something hearty. The potatoes soften while you prep the fish, and the whole thing bakes in 30 minutes. Feed a crowd? Double the recipe—it’s just more layers. Even my picky husband asks for seconds, and that’s saying something.

Step-by-step instructions for classic fish pie

Here's how to build this comforting classic with a golden crust and creamy, cheesy filling.

1

Prepare the Potato Topping

Start by peeling and thinly slicing the 2 lb russet potatoes. I like to cut them about ⅛-inch thick for even cooking and maximum crispiness. Spread them out on a baking sheet and toss with 1 tbsp of the 0.5 cup butter, melted, and 0.5 tsp of the 1.5 tsp salt. This pre-coating helps prevent sticking and adds flavor.

Bake at 400°F for 20-25 minutes until the edges start to brown and the potatoes feel tender when pierced with a fork. You're not fully cooking them yet—just getting them partially done so they'll crisp beautifully on top. Remove from oven and set aside while you prepare the filling.

2

Cook the Fish and Make the Creamy Sauce

Heat 2 tbsp of the 0.5 cup butter in a large skillet over medium heat. Add the 2 minced shallots and 4 minced garlic cloves, cooking for 2-3 minutes until softened but not browned. Pour in the 0.5 cup white wine and let it simmer for 2 minutes to cook off the alcohol.

Add the 1.5 lb haddock fillets and cook for 3-4 minutes per side until golden and just opaque in the center. Remove fish and set aside. In the same pan, sprinkle the 0.25 cup all-purpose flour over the fish juices and stir for 1 minute to cook off the raw flour taste. Slowly whisk in the 1 cup heavy cream and 0.5 cup whole milk, then add the 2 tbsp lemon juice, 1 tsp of the 1.5 tsp salt, and 0.5 tsp black pepper. Simmer for 3-4 minutes until thickened.

3

Assemble the Pie

Preheat your oven to 375°F. Transfer the cooked haddock to a 9x13-inch baking dish, breaking it into chunks if needed. Pour the creamy sauce over the fish, then sprinkle with the 1 cup sharp cheddar cheese and 0.5 cup gruyère cheese. Stir gently to distribute the cheese evenly.

Arrange the partially cooked potatoes on top, slightly overlapping them. The edges should extend over the sides of the baking dish for that classic pie look. Sprinkle the remaining 0.5 tsp salt and 0.25 cup chopped fresh dill over the potatoes for extra flavor.

4

Bake to Golden Perfection

Bake uncovered for 25-30 minutes until the potato topping is golden brown and crispy on top. The filling should be bubbling hot and the cheese should be fully melted. If the top browns too quickly, tent loosely with foil for the last 10 minutes.

Let the pie rest for 10 minutes before serving. This resting time lets the filling set slightly and makes it easier to slice. The result should be a crispy potato crust, creamy fish filling, and melty cheese that makes every bite comforting and satisfying.

👨‍🍳

Pro Tips For Making Classic Fish Pie

  • Boil Potatoes Until Fork-Tender: Russets should collapse like butter when pierced—no half-chewed chunks. I used to stop at "soft," but undercooked potatoes turn to mush in the oven. Boil them 15-20 minutes longer than you think, then drain and shock in ice water to halt cooking. (Yes, even if you're impatient like me.)
  • Salt the Fish While Raw: Haddock needs seasoning before it hits the oven—don’t wait for the sauce. Sprinkle generously with salt (and a pinch of pepper) while arranging fillets, then let them sit 5 minutes. This guarantees flavor penetration, not just surface dusting. (Your future self will taste the difference.)
  • Whisk Cream Cold: Warm cream separates like a bad breakup. Chill your heavy cream and milk in the fridge for 30 minutes before mixing with butter—this keeps the sauce silky, not greasy. I learned this the hard way after serving a pie with a sad, split-topped béchamel. (Not pretty.)
  • Bake on Middle Rack: Top racks overcook the crust; bottom racks leave the fish soggy. The middle rack (about 3 inches from the top) gives even heat—golden crust on top, perfectly cooked fish underneath. Skip the guesswork: use an oven thermometer if your oven lies. (Does it look weird? Yes. Does it work? Every single time.)

Storing and reheating your leftovers

Refrigerator Storage

Your classic fish pie stays fresh in the fridge for 3-4 days when stored properly. Let it cool completely before transferring to an airtight container—I use glass Pyrex with snap-on lids to maintain moisture.

The creamy sauce and potatoes absorb flavors beautifully overnight, so the second day is often even better than the first. Just reheat gently to preserve that crispy potato top. ❄️

Freezer Storage

For longer storage, freeze your pie for up to 3 months without losing quality. Wrap tightly in plastic wrap first, then place in a freezer-safe bag with all air squeezed out.

Label with the date—this helps track freshness. Thaw overnight in the fridge before reheating. The sauce may thicken slightly after freezing, so add a splash of warm milk when reheating.

Reheating Methods

For best results, reheat your pie covered with aluminum foil at 375°F for 15-20 minutes. This prevents the potato topping from drying out while warming the filling evenly. If the top isn't crispy enough, broil for 2-3 minutes at the end.

For quick reheating, use the microwave on 50% power for 2-minute intervals, stirring between each, until heated through.

Reviving the Crisp

The potato topping can lose its crispiness after reheating. To fix this, sprinkle 1 tbsp breadcrumbs mixed with 1 tsp melted butter on top before reheating. Bake uncovered at 400°F for 5 minutes—this restores that perfect golden crunch. A quick broil at the end also helps. 🔥

Make-Ahead Sauce Tip

If you're prepping ahead, make the creamy sauce separately and store it in the fridge for up to 3 days. Assemble the pie just before baking—this keeps the filling ultra-creamy and prevents sogginess.

The potatoes can also be pre-cooked and stored separately, then layered fresh when ready to bake. This is my go-to strategy for busy weeknights.

Serving Leftovers

Fish pie reheats beautifully for lunches or light dinners. Serve with a side of steamed green beans or a simple arugula salad to balance the richness. For extra flair, drizzle with lemon wedges or sprinkle with extra fresh dill before serving.

The contrast of bright flavors cuts through the creamy filling perfectly. 💫

Nutrition facts

Servings 4
Amount Per Serving
Calories 680kcal
% Daily Value *
Total Fat 42g54%
Saturated Fat 26g130%
Cholesterol 185mg62%
Sodium 1250mg54%
Total Carbohydrate 48g18%
Dietary Fiber 6g21%
Sugars 6g
Protein 48g96%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

What type of fish works best for this classic fish pie?

Haddock or cod are ideal—they stay firm when cooked and absorb flavors beautifully. Salmon is another excellent choice for a richer, more buttery taste. Avoid delicate fish like tilapia, which can fall apart in the creamy sauce. Fresh is best, but thawed frozen works too if you plan ahead.

2

Can I make this fish pie ahead of time?

Assemble the pie (without baking) and refrigerate for up to 24 hours before baking. For even better results, make the sauce separately and store it for 3 days, then assemble and bake fresh. The flavors meld beautifully overnight. Just add 5-10 extra minutes to baking time if starting cold.

3

Why is the potato topping not crispy?

Overlapping potato slices too tightly or under-baking them causes sogginess. Pre-cook potatoes at 400°F for 20-25 minutes until slightly tender, then layer them loosely with space between slices. For extra crispiness, broil for 2-3 minutes at the end of baking. A sprinkle of breadcrumbs before baking also helps!

4

What can I substitute if I don't have white wine?

Use fish or chicken stock (½ cup) for depth, or skip it entirely—just reduce the milk by ¼ cup. For extra richness, add 1 tsp lemon juice or a pinch of dried thyme. The sauce will still be delicious; wine just adds a subtle brightness that complements the fish.

5

How do I adjust this recipe for a smaller serving?

Scale down all ingredients by half for 2 servings and use a 7x9-inch baking dish. Reduce baking time to 20-25 minutes—smaller pies cook faster. For 6 servings, double the recipe and bake in a 9x13-inch dish. Always check doneness with a thermometer (165°F for fish, 210°F for potatoes).

★★★★★4.9(6 reviews)
Categories Desserts