This comforting, creamy Mary Berry Fish Pie is made with smoked haddock, fresh white fish, and a secret layer of sweet leeks, all ready in about 1 hour and 15 minutes. The hero moment comes when you break through the crispy, cheesy mustard mash to reveal the rich sauce and chunks of hard-boiled egg hiding beneath. I love how the grainy mustard in the topping adds a sharp little kick that cuts right through the richness.
Why This Classic Works
Mary Berry’s version of this British staple stands out because of its thoughtful layering. Instead of mixing everything into a single sludge, she places a distinct layer of boiled leeks between the creamy fish filling and the mashed potato topping. This prevents the leeks from becoming mushy and ensures you get a sweet burst of flavour in every bite.
Another reason I return to this recipe is the addition of hard-boiled eggs and grainy mustard. The eggs add a wonderful texture that soaks up the white sauce, while the mustard in the mash gives the dish a savoury depth that standard fish pies often lack.
Mary Berry Fish Pie Ingredients
- 350g smoked haddock fillets (undyed), skinned and cut into 3cm chunks
- 350g fresh haddock or cod fillets, skinned and cut into 3cm chunks
- 2 leeks, sliced into rounds
- 3 large eggs, hard-boiled and roughly chopped
- 50g butter
- 50g plain flour
- 600ml hot milk
- 2 tbsp fresh dill, chopped
- 1/2 lemon, juiced
- Salt and black pepper
For the Topping:
- 1kg floury potatoes (like Maris Piper or King Edward), peeled and chopped
- 50g butter
- 2 tbsp grainy mustard
- 75g mature Cheddar cheese, grated
- Splash of milk (approx. 150ml)

How To Make Mary Berry Fish Pie
- Prepare the Leeks and Eggs: Boil the sliced leeks in salted water for about 5 minutes until tender, then drain thoroughly. Meanwhile, boil your eggs for 8–10 minutes, peel, chop roughly, and set aside.
- Make the White Sauce: Melt 50g of butter in a large saucepan over medium heat. Stir in the flour and cook for 1 minute to form a roux (do not let it brown). Gradually whisk in the hot milk until you have a smooth, thickened sauce.
- Cook the Fish Base: Add the raw fish chunks to the hot sauce along with a pinch of salt and pepper. Simmer gently for 2 minutes—just enough to start cooking the fish. Remove from the heat and stir in the lemon juice, chopped dill, and hard-boiled eggs.
- Assemble the Layers: Pour the creamy fish mixture into a buttered 2-litre ovenproof dish. Scatter the drained leeks evenly over the top of the fish sauce. Let this cool slightly while you make the mash.
- Make the Mustard Mash: Boil the potatoes in salted water until tender (about 15 minutes). Drain and mash until smooth with the butter and a splash of milk. Stir in the grainy mustard and season with pepper.
- Bake: Spoon the mash over the leeks, spreading it to the edges to seal the pie. Scatter the grated Cheddar cheese on top. Bake in a preheated oven at 200°C (180°C fan/Gas 6) for 25–30 minutes until the top is golden brown and the sauce is bubbling.

Recipe Tips
- Dry the leeks: Make sure you drain the boiled leeks very well before adding them to the pie. Any excess water will make the sauce runny and dilute the flavour.
- Don’t overcook the fish: You only need to simmer the fish in the sauce for 2 minutes on the hob. It will finish cooking in the oven, ensuring it stays flaky rather than rubbery.
- Rough up the mash: Use a fork to create ridges and spikes in the mashed potato topping. These little peaks will catch the heat and turn extra crispy and golden.
- Cool the filling: If you have time, let the fish filling cool completely before adding the mash. This prevents the mash from sinking into the sauce and helps the layers stay distinct.
What To Serve With Fish Pie
Since this pie is rich and contains potatoes, you don’t need heavy sides. A bowl of buttery garden peas or green beans is the traditional accompaniment, adding a pop of sweetness and colour. For a lighter option, serve it with a crisp green salad dressed with a sharp vinaigrette to cut through the creamy cheese sauce.

How To Store
Leftovers can be stored in an airtight container in the fridge for up to 2 days. To freeze, assemble the pie but do not bake it; wrap it tightly and freeze for up to 3 months. Thaw completely in the fridge overnight before baking, adding an extra 5–10 minutes to the cooking time if it’s still cold from the fridge.
FAQs
- Can I use frozen fish? Yes, but ensure you defrost it thoroughly and pat it dry with kitchen paper before adding it to the sauce, otherwise, the pie will be watery.
- Do I have to use smoked haddock? No, you can use all white fish or swap it for salmon, but the smoked fish gives this recipe its signature depth of flavour.
- Can I make this ahead of time? Absolutely. You can assemble the entire pie up to 24 hours in advance and keep it in the fridge until you are ready to bake.
- Why is my fish pie runny? This usually happens if the spinach (if using) or leeks weren’t drained enough, or if the sauce wasn’t thickened properly before adding the fish.
- Can I leave out the hard-boiled eggs? Yes, if you aren’t a fan of eggs in fish pie, you can simply omit them or replace them with prawns.
Nutrition
- Calories: 650 kcal
- Total Fat: 35g
- Saturated Fat: 18g
- Cholesterol: 150mg
- Sodium: 700mg
- Total Carbohydrate: 45g
- Protein: 40g
Mary Berry Fish Pie
6
servings30
minutes45
minutes1
hour15
minutesThis Mary Berry Fish Pie features flaky chunks of smoked and fresh haddock in a creamy dill sauce, hidden beneath a layer of sweet leeks and crispy mustard mash. Made with simple ingredients like eggs and cheddar, it is a comforting family dinner ready in 75 minutes.
Ingredients
350g smoked haddock fillets (undyed), skinned and cut into 3cm chunks
350g fresh haddock or cod fillets, skinned and cut into 3cm chunks
2 leeks, sliced into rounds
3 large eggs, hard-boiled and roughly chopped
50g butter
50g plain flour
600ml hot milk
2 tbsp fresh dill, chopped
1/2 lemon, juiced
Salt and black pepper
1kg floury potatoes (Maris Piper/King Edward), peeled and chopped
50g butter (for mash)
2 tbsp grainy mustard
75g mature Cheddar cheese, grated
Splash of milk (approx. 150ml)
Directions
- Boil the sliced leeks in salted water for 5 minutes; drain well. Boil eggs for 8-10 minutes, peel, and chop.
- Melt 50g butter in a pan, stir in flour for 1 minute, then whisk in hot milk to make a thick sauce.
- Add raw fish to sauce, simmer 2 minutes. Stir in lemon juice, dill, and chopped eggs.
- Pour fish mix into a buttered dish. Scatter drained leeks over the top.
- Boil potatoes until tender, mash with butter and milk, then stir in mustard.
- Spread mash over leeks, top with cheese, and bake at 200°C (180°C fan) for 25-30 minutes.
