Fish Shepherd's Pie Recipe: Savory Fish Filling Under Crispy Potato Topping

Main Courses

Fish Shepherd's Pie Recipe: Savory Fish Filling Under Crispy Potato Topping

This fish shepherd's pie recipe transforms a classic comfort dish into a seafood masterpiece with tender white fish, savory vegetables, and a golden potato crust. The secret lies in balancing flaky fish with a rich gravy, then crowning it with perfectly mashed potatoes that turn crispy on top.

I developed this version after realizing how versatile shepherd's pie could be when adapted for fish lovers—it’s hearty enough for a family dinner but elegant enough for company.

The filling begins with pan-seared fish—cod or haddock work best—cooked just until opaque, then mixed with peas, carrots, and a velvety gravy made from the pan drippings. This ensures every bite delivers both texture and flavor without overpowering the delicate fish.

The potatoes, meanwhile, are mashed to a smooth, buttery consistency before being spread in an even layer over the filling, creating that signature crispy top when baked.

What you’ll end up with is a dish that’s equal parts comforting and refined: tender fish flakes that melt in your mouth, vibrant vegetables peeking through, and a golden potato crust that’s crispy enough to stand up to a fork.

The aroma alone—warm potatoes meeting savory fish—will have everyone at the table asking for seconds. This is the kind of recipe that turns weeknight dinners into a showstopper without requiring hours in the kitchen.

Serve with a simple green salad or steamed asparagus to balance the richness, and you’ve got a meal that’s perfect for any occasion. The best part? Leftovers reheat beautifully, making it a great make-ahead option for busy schedules. Let’s get cooking—this pie is worth every minute of prep time.

👨‍🍳
Difficulty
Medium
🐟
Diet
Seafood
🔥
Calories
Med Cal

Ingredients for fish shepherd's pie

Six ingredients make this seafood twist on shepherd's pie absolutely irresistible—crispy, creamy, and packed with flavor.

Ingredient Amount Notes
Cod Fillets 🐟 1 ½ lb Skinless, boneless, firm fillets
Russet Potatoes 🥔 3 lbs Yukon gold or similar works too
Heavy Cream 🥛 ½ cup Full-fat for best texture
Carrots 🥕 1 cup Diced small, vibrant orange
Yellow Onion 🧅 1 whole Diced, medium size
Peas 🌱 1 cup Frozen or fresh, thawed
Unsalted Butter 🧈 ½ cup Cold, cubed for mashing
Whole Milk 🥛 ¼ cup Warmed for creaminess
All-Purpose Flour 🌾 1 tbsp For gravy thickening
Chicken Broth 💧 1 cup Low-sodium preferred
Fresh Dill 🌿 2 tbsp Chopped, bright flavor
Salt 🧂 1 ½ tsp Kosher or sea salt
Black Pepper 🌶️ ½ tsp Freshly ground preferred
Garlic Cloves 🧄 3 cloves Minced, aromatic
Olive Oil 🫒 2 tbsp For searing fish

The fish is everything here. Cod or haddock holds up best—look for fillets that are firm and opaque, not translucent. Trader Joe's and Whole Foods usually carry the freshest options, but don’t overlook your local fishmonger. The potatoes? Russets are ideal for crispy tops, but Yukon golds add creaminess. Peel and cube them before boiling—no skipping this step—it ensures even cooking. For the carrots and onions, fresh is best, but frozen peas work perfectly fine (no need to thaw).

No cod? Haddock or tilapia are great swaps—just keep an eye on cooking time. The gravy gets its richness from the pan drippings, but if you're short on time, a splash of heavy cream in the broth will save you. Fresh dill is a must for that bright, herby note, but dried dill at half the amount works in a pinch. The flour is just for thickening—no need to get fancy here. And if you're worried about the potatoes getting soggy, pre-cook them 10 minutes less than usual—they'll finish baking under the broiler.

This pie tastes even better the next day—make extra if you can. Store leftovers covered in the fridge for 4 days or freeze for up to 3 months. To reheat, cover with foil and bake at 375°F until heated through. The top gets crispy again under the broiler for 2-3 minutes. I always serve it with a simple arugula salad to cut through the richness—game-changer.

❤️

Why You'll Love This Recipe

  • One-Pan Magic: I swear by this trick—just toss everything into a single dish, bake, and walk away. No messy skillets, no multiple pans, and the cod stays flaky while the potatoes crisp up perfectly on top. (Yes, even on a Tuesday night.)
  • Leftovers That Don’t Suck: Honestly, I always make extra because reheating this is a dream. The potatoes stay fluffy, the filling doesn’t dry out, and it’s still hearty enough for lunch the next day. (My kids actually ask for it—rare.)
  • Budget-Friendly Feast: Cod’s affordable, potatoes fill you up, and a single onion and carrot stretch the filling without breaking the bank. It’s the kind of dish that makes grocery day feel like a win, especially when it feeds four for under $15.

Step-by-step instructions for savory fish filling under crispy potato topping

Here's how to create a restaurant-worthy fish shepherd's pie with golden crust and flaky cod.

1

Prepare the Fish Filling with Perfect Texture

Heat the 2 tablespoons olive oil in a large skillet over medium-high heat. Add the 1 whole yellow onion and 1 cup carrots, cooking for 5 minutes until the vegetables soften and begin to caramelize slightly. This develops deep flavor that will carry through the filling.

Push the vegetables to one side of the skillet and add the 1.5 pounds cod fillets. Season both sides generously with 1 teaspoon salt and 0.25 teaspoon black pepper. Cook the fish for 3-4 minutes per side until it reaches 145°F internally and flakes easily with a fork. Remove the fish and set aside.

In the same skillet, add the 3 cloves minced garlic and cook for 30 seconds until fragrant. Pour in the 1 cup chicken broth and scrape up any browned bits from the bottom. Bring to a gentle simmer and let reduce by half. Stir in the 1 tablespoon all-purpose flour to thicken the sauce slightly.

Shred the cooked cod fillets into the skillet and gently fold in the 1 cup peas and 2 tablespoons chopped fresh dill. Remove from heat and stir in the 0.5 cup heavy cream. The filling should be moist but not soupy - if too thick, add 1-2 tablespoons warm water. This creates the perfect base for our savory layer.

2

Create the Ultimate Crispy Potato Topping

While the filling cooks, peel and cube the 3 pounds russet potatoes. Boil them in salted water for 12-15 minutes until fork-tender but not falling apart. Drain thoroughly and return to the pot.

Add the 0.5 cup unsalted butter and 0.25 cup warm whole milk to the hot potatoes. Mash until smooth, adding 0.5 teaspoon salt and 0.25 teaspoon black pepper. The potatoes should be light and fluffy - if too dry, add 1 tablespoon milk at a time. This creates the perfect creamy base that will crisp beautifully.

For extra flavor, fold in the remaining 1 tablespoon chopped fresh dill. Spread the potato mixture evenly over the fish filling in a 9x9-inch baking dish, creating a smooth, even layer. The thickness should be about ½ inch - this ensures proper browning while keeping the filling warm.

3

Bake to Golden Perfection with Crispy Topping

Preheat your oven to 400°F. Place the baking dish on the middle rack and bake for 25-30 minutes until the potato topping turns deep golden brown and crispy. The edges should be slightly charred while the center remains soft and creamy.

Here's the secret: For the last 5 minutes of baking, increase the oven temperature to 425°F. This high heat creates that coveted crispy crust while keeping the fish filling warm and moist underneath. You'll know it's done when the top is firm to touch and has developed a beautiful golden-brown color.

Let the shepherd's pie rest for 10 minutes before serving. This allows the filling to set slightly and makes it easier to slice cleanly. The contrast of crispy potato topping with flaky fish filling creates an irresistible texture combination that will have everyone asking for seconds.

👨‍🍳

Pro Tips For Making Fish Shepherd'S Pie

  • Crisp the Cod First: Pat the cod fillets dry with paper towels, then sear them skin-side down in a hot pan with a little oil for 2-3 minutes before adding the sauce. This locks in moisture and gives the fish a proper texture—no more sad, rubbery fish under that potato blanket.
  • Peel and Dice Potatoes Fast: Use a bench scraper instead of a knife to peel potatoes—it’s faster and leaves fewer bruises. Cut them into even 1-inch chunks so they cook uniformly and don’t turn to mush in some spots while staying raw in others.
  • Don’t Overmix the Filling: After cooking the carrots and onions, stir in the cream and fish just until combined. Overmixing makes the filling dense and gluey—keep it loose so the potatoes can steam and create that perfect fluffy top layer.
  • Preheat the Oven Properly: Set your oven to 400°F (200°C) and let it fully preheat for at least 10 minutes before baking. Cold ovens mean uneven cooking—your bottom crust will turn to paste while the top stays doughy, and no one wants that.

Perfect pairings for this dish

Crisp Salad Pairings

Bright, peppery arugula tossed with lemon vinaigrette (mix 2 tbsp olive oil, 1 tbsp fresh lemon juice, and ½ tsp Dijon mustard) cuts through the richness beautifully.

I add ¼ cup shaved fennel for a subtle anise flavor that complements the fish. For extra crunch, top with toasted walnuts and edible flowers. 🥗

Citrusy Sides

Grilled or roasted asparagus spears with zesty orange segments and a sprinkle of fleur de sel add a refreshing contrast. Toss 1 bunch asparagus with 1 tbsp olive oil, ½ tsp smoked paprika, and roast at 425°F for 12 minutes.

Finish with 2 orange slices and a pinch of flaky salt. The citrus brightens the dish without overpowering the fish.

Wine Pairings

A crisp Sauvignon Blanc from New Zealand—like Oyster Bay—pairs perfectly with the dish’s herby, lemony notes. The wine’s zesty acidity and citrus undertones mirror the dill and lemon in the pie.

For red lovers, a light Pinot Noir from Oregon offers subtle earthiness that won’t clash with the fish. 🍷

Beverage Alternatives

For non-alcoholic options, try sparkling elderflower lemonade (mix ½ cup elderflower syrup, 1 cup sparkling water, and ice). The effervescence cleanses the palate between bites.

Another favorite? Iced hibiscus tea with a squeeze of lime—it’s tart, floral, and refreshing. Both drinks balance the dish’s richness without competing for attention.

Garnish Finishes

Add a final touch with crispy fried shallots or microgreens just before serving. For extra flair, drizzle with truffle oil (use sparingly—½ tsp is plenty) or a swirl of crème fraîche. These garnishes elevate the dish from comforting to restaurant-worthy in seconds. ✨

Nutrition facts

Servings 6
Amount Per Serving
Calories 480kcal
% Daily Value *
Total Fat 24g31%
Saturated Fat 12g60%
Cholesterol 115mg38%
Sodium 820mg36%
Total Carbohydrate 42g15%
Dietary Fiber 6g21%
Sugars 6g
Protein 32g64%
* 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

Can I use frozen fish instead of fresh cod?

Yes, but thaw it properly first! Place frozen fillets in a sealed bag and submerge in cold water for 30 minutes per inch of thickness. Never thaw at room temperature. For best results, pat dry thoroughly before cooking to prevent a watery filling. Tilapia or haddock work well frozen too.

2

How do I prevent the potato topping from getting soggy?

Bake the filling uncovered for the first 15 minutes to evaporate excess moisture, then add the potato layer. Also use russet potatoes (their high starch content helps crisping) and avoid overmashing. A ½-inch thick topping layer bakes perfectly without steaming.

3

What's the best way to reheat leftovers?

Cover with foil and bake at 375°F for 15 minutes, then uncover and broil for 2-3 minutes to restore crispiness. For microwave reheating, use 30-second intervals on low power, then finish under the broiler. Leftovers keep for 4 days refrigerated or 3 months frozen.

4

Can I make this dish ahead of time?

Assemble completely (including potato topping) up to 24 hours ahead and refrigerate uncovered. Bake straight from cold at 425°F for 35-40 minutes—the extra time compensates for the cold start. For freezing, bake first, then wrap tightly with plastic wrap and foil for up to 3 months.

5

What's a good substitute for dill if I don't have any?

Use 1 tablespoon chopped parsley plus ½ teaspoon dried thyme for a similar freshness. Or try ½ teaspoon lemon zest with 1 tablespoon parsley to maintain brightness. Avoid heavy herbs like oregano—they'll overpower the delicate fish flavor.

★★★★★5.0(2 reviews)
Categories Main Courses