Main Courses
This basic fish pie recipe delivers all the comforting flavors of a classic British pub dish without requiring advanced skills. The secret lies in perfectly poached fish layered under a rich herb gravy, topped with creamy mashed potatoes that create a golden, crispy crust when baked.
I’ve tested this recipe countless times to ensure every element—from the tender fish to the velvety sauce—comes together exactly as it should.
The beauty of this dish is its simplicity: you’ll work with just a few key ingredients, yet the result feels indulgent and restaurant-worthy.
The fish poaches gently in a flavorful broth, absorbing all the aromatic herbs and citrus, while the mashed potato topping transforms into a crispy, golden blanket when baked. This method ensures the filling stays moist and the crust achieves that perfect balance of softness and crunch.
What you’ll end up with is a steaming plate of fish pie that’s tender, flavorful, and satisfying—ideal for a cozy family dinner or a comforting weeknight meal. The layers of savory fish, rich gravy, and creamy potatoes create a harmonious bite that’s impossible to resist.
Whether you’re a seasoned home cook or just starting out, this recipe delivers foolproof results every time.
Serve with a crisp green salad or steamed vegetables to balance the richness, and pair with a glass of chilled white wine for the full experience.
The best part? Leftovers reheat beautifully, making this a perfect make-ahead dish for busy schedules. Let’s get started on creating your own classic fish pie.
Ingredients for basic fish pie
Few ingredients, maximum comfort—this pie brings British pub flavors home effortlessly.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod, haddock, or pollock preferred |
| Russet Potatoes 🥔 | 2 lb | Yukon gold works too |
| Unsalted Butter 🧈 | ½ cup | Full-fat for best flavor |
| Whole Milk 🥛 | ½ cup | Whole milk for creaminess |
| Heavy Cream 🥛 | ¼ cup | Full-fat for richness |
| Fresh Dill 🌿 | ¼ cup | Chopped, stems removed |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Garlic Cloves 🧄 | 4 cloves | Minced for flavor |
| Shallots 🧅 | 2 whole | Minced, or sub onion |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed |
| Fish Stock 💧 | 1 ½ cups | Homemade or quality store-bought |
| All-Purpose Flour 🌾 | 2 tbsp | For thickening gravy |
| Sea Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For sautéing shallots |
The fish is the star, so pick firm, white fillets—cod or haddock are foolproof. Grab them from the seafood counter (not frozen unless you're desperate) and ask for skinless if you want zero fuss. Trader Joe's and Whole Foods have great pre-portioned packs, but the butcher section at Costco often has the best prices for bulk. For the potatoes, Russets are ideal—they mash smoother and crisp up beautifully. If you can't find them, Yukon golds work too, but they'll be slightly creamier. The herbs? Fresh is non-negotiable here—dried just won't cut it for that bright, fresh flavor you want in every bite.
No fish stock? Chicken or vegetable broth with a splash of white wine works in a pinch. Short on dill? Fresh parsley at double the amount gets you close, though it won't be quite the same. The shallots can be swapped for regular onions, but they caramelize faster and add a sweeter note. Want extra richness? Add a splash of crème fraîche to the mashed potatoes. The lemon juice is crucial—it brightens everything up. If you're out, a pinch of citric acid (found in baking aisles) does the trick. And for the love of pie, don't skip the butter in the mashed potatoes. That's what makes the crust crispy!
This pie reheats like a dream—350°F for 15 minutes until bubbly. The filling stays moist for 3 days in the fridge if you cover it tightly, and it freezes beautifully for up to 2 months. I like to make a double batch and freeze half—nothing beats coming home to a hot, ready-to-eat pie after a long day. Store the gravy separately if you're not using it all, and reheat it gently on the stove. The potatoes? Microwave them 1 minute before baking to ensure they're piping hot when they hit the oven.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this—just boil the potatoes, flake the fish, mix the cream, and bake. No chopping, no fuss, no extra dishes. The only "mess" is the good kind.
- Creamy Crisp Perfection: That buttery potato topping? It’s the star—golden and flaky on top, creamy as cloud inside. The fish stays tender while the edges get just crisp enough to make everyone reach for seconds.
- Weeknight or Sunday Supper: Honestly, it works for both. Toss it together when you’re exhausted and need dinner fast, or make it ahead for a cozy family meal. The leftovers? Just as good reheated the next day.
- Budget-Friendly Luxury: White fish and potatoes stretch far, and a little butter and cream make it feel special. I’ll be real—this is the kind of dish that makes simple ingredients taste like a restaurant meal without the price tag.
Step-by-step instructions for basic fish pie
Here's how to build a comforting, restaurant-worthy fish pie with a golden mashed potato crust.
Prepare the Fish Filling
Preheat your oven to 375°F. In a large oven-safe skillet, heat 2 tablespoons extra-virgin olive oil over medium heat. Add the 2 minced shallots and cook for 3-4 minutes until softened but not browned—you want them translucent, not crispy. Stir in the 4 minced garlic cloves and cook for 30 seconds until fragrant.
Add the 1.5 lb white fish fillets, seasoned with 1 teaspoon sea salt and 0.25 teaspoon ground black pepper, to the skillet. Cook for 3-4 minutes per side until the fish flakes easily with a fork. Remove the fish and set aside in a bowl, leaving the flavorful oil in the pan.
Pour in 1.5 cups fish stock and scrape up any browned bits from the bottom of the pan. Bring to a gentle simmer, then stir in 2 tablespoons all-purpose flour to thicken. Cook for 2-3 minutes until slightly thickened. Remove from heat and stir in 2 tablespoons lemon juice, 0.25 cup chopped fresh dill, and 0.25 cup chopped fresh parsley. Taste and adjust seasoning with more salt or pepper if needed.
Make the Creamy Mashed Potato Topping
While the fish filling cools slightly, peel and chop the 2 lb russet potatoes into 1-inch chunks. Place them in a pot of cold, salted water (add 0.5 teaspoon sea salt) and bring to a boil. Reduce heat and simmer for 15-20 minutes until fork-tender. Drain well, then return to the pot.
Add 0.5 cup unsalted butter and 0.5 cup whole milk to the potatoes. Mash until smooth, then stir in 0.25 cup heavy cream for extra richness. Season with 0.5 teaspoon sea salt and 0.25 teaspoon ground black pepper. The mashed potatoes should be light and fluffy—if they're too thick, add a splash more milk. Spread the mashed potatoes evenly over the fish filling in the skillet.
Bake to Golden Perfection
Transfer the skillet to the preheated oven and bake for 20-25 minutes until the mashed potato topping is golden brown and bubbly around the edges. The filling should be hot and the crust should have a crispy texture when pressed gently with a spoon.
Let the pie rest for 5 minutes before serving—this allows the flavors to meld and the filling to set slightly. Garnish with an extra sprinkle of chopped fresh parsley and serve immediately with a side of steamed green vegetables or a simple salad.
Pro Tips For Making Basic Fish Pie
- Boil Potatoes Until Fork-Tender: Don’t stop at "soft" when boiling your russets—aim for a fork sliding in like butter. Undercooked potatoes turn to mush under the cream sauce, and nobody wants that. Test one early; if it’s not falling apart, keep boiling.
- Salt the Fish Before Cooking: Season your white fillets with salt and pepper before they hit the pan. I used to skip this, thinking the pie’s seasoning would carry it—but the fish stays bland if you wait. A light coat of oil helps too; dry fish sticks to itself.
- Mash Potatoes with Warm Milk: Swap cold milk for warm when mashing—it blends smoother and absorbs better. Cold milk makes the mash gluey, and that’s a texture disaster in the pie. Heat the milk just until it steams, then mix it in while mashing.
- Bake Until Golden, Not Just Bubbly: The pie’s done when the top is deep golden, not just set. I learned this after pulling pies too soon—they looked done but tasted undercooked. Broil for 2-3 minutes at the end if needed; watch it like a hawk.
Wine and beer pairings for these flavors
Crisp White Wine
For fish pie, a dry white wine with bright acidity and citrus notes is ideal—it mirrors the lemon in your recipe and cuts through the richness.
I reach for Sauvignon Blanc from New Zealand or Albariño from Spain, both of which have zesty lemon and green apple flavors that complement the dill and parsley. A chilled glass (around 45-50°F) enhances the dish’s freshness without overpowering it. 🍷
Crisp Lager Beer
A crisp, light lager like Peroni or Heineken works beautifully with fish pie, especially if you prefer beer over wine. The subtle malt sweetness balances the savory fish and herb gravy, while its effervescence cleanses your palate between bites.
Serve it ice-cold (around 38-40°F) to highlight its refreshing qualities. 🍺
Dry Rosé Option
If you want something different, a dry rosé (like Whispering Angel or Miraval) adds a touch of elegance. The delicate berry notes and crisp acidity pair wonderfully with the creamy mashed potatoes and flaky fish.
Opt for one with minimal sweetness to avoid clashing with the dish’s savory elements. 🍇
Avoid Heavy Reds
Skip bold red wines like Cabernet Sauvignon or Syrah—they’ll overpower the delicate fish flavors. Even Pinot Noir can be too assertive; if you love reds, try a light, fruity Beaujolais (like Fleurie) instead. The key is acidity and brightness to match the pie’s fresh, herby profile. 🚫🍷
Non-Alcoholic Pairings
For a non-alcoholic option, sparkling water with lemon (like San Pellegrino) or a ginger beer (like Feather) adds a refreshing contrast. The effervescence and citrus notes enhance the dish’s brightness, while ginger beer’s spice complements the dill and parsley. Serve chilled for the best experience. 💦
Nutrition facts
Frequently asked questions
Can I use frozen fish for this recipe?
Fresh fish is ideal, but you can use frozen fillets if thawed properly. Place them in the refrigerator overnight or use the cold water method (sealed in a bag) for 30-45 minutes. Pat them completely dry before cooking to prevent a soggy crust. Avoid using fish that still has ice crystals—it won't cook evenly.
What if my mashed potato topping isn't crispy?
Too much moisture is usually the culprit. For extra crispiness, drain potatoes thoroughly after boiling and let them steam dry in the pot for 1-2 minutes off the heat. Also, ensure your oven is at 375°F—lower temps create a softer crust. A quick broil for 1-2 minutes at the end adds color and crispness.
How do I make this dish ahead of time?
Assemble the pie up to 24 hours ahead and refrigerate uncovered. Bake straight from the fridge, adding 5-10 minutes to the baking time. For freezing, bake the pie, cool completely, wrap tightly, and freeze for up to 3 months. Reheat covered at 350°F for 20 minutes until bubbly.
What's the best fish to use besides cod or haddock?
Look for firm, mild white fish like halibut, tilapia, or pollock. Avoid flaky fish like flounder—they'll fall apart. For extra flavor, try salmon (cooked to 145°F) or mahi-mahi, but reduce baking time by 5 minutes since they cook faster.
Can I make this in a regular baking dish instead of a skillet?
Transfer the filling to a 9x9-inch baking dish and top with mashed potatoes. Bake at 375°F for 25-30 minutes until golden. For even browning, broil for 2 minutes at the end. The dish method works best when the pie is no more than 2 inches deep.
