Desserts
Ina Garten's fish pie recipe transforms simple ingredients into a comforting, restaurant-worthy dish that's perfect for a cozy dinner or special occasion. The secret lies in her signature light, airy mashed potato topping that creates a golden, crispy crust while keeping the filling rich and creamy.
I've perfected this technique over years of testing, ensuring every bite delivers that perfect balance of flaky fish, velvety béchamel, and tender potatoes.
This recipe uses cod or haddock as the star, paired with a smooth béchamel sauce that coats each delicate flake.
The mashed potato topping isn't just for presentation—it acts as a protective barrier that locks in moisture while baking, resulting in a pie that's creamy inside with a satisfying crunch on top.
Baking at 375°F for 30-40 minutes ensures everything comes together just right, with the cheese melting into a perfect blanket over the flaky fish.
The result is a dish that looks impressive but comes together with straightforward techniques anyone can master. The creamy filling stays moist thanks to the potato crust, while the fish remains tender and flavorful.
This is comfort food at its finest—warm, satisfying, and packed with homestyle charm without requiring advanced skills. The best part? Leftovers reheat beautifully, making it an ideal meal prep option for busy weeks.
Serve with a simple green salad or steamed vegetables to round out the meal. The contrast of textures—creamy filling, crispy topping, and fresh greens—makes each bite even more enjoyable.
Whether you're cooking for family or treating yourself, this fish pie delivers restaurant-quality results with a touch of Ina Garten's signature elegance.
Ingredients for ina garten fish pie
Sixteen ingredients for a pie that tastes like a hug from Ina Garten herself.
| Ingredient | Amount | Notes |
|---|---|---|
| Cod Fillets 🐟 | 1 ½ lb | Skinless, boneless, fresh preferred |
| Haddock Fillets 🐟 | 1 ½ lb | Skinless, boneless, alternative to cod |
| Russet Potatoes 🥔 | 2 lbs | Yukon gold for creamier mash |
| Heavy Cream 🥛 | 1 cup | Full-fat for velvety texture |
| Whole Milk 🥛 | ½ cup | Warmed for smoother mash |
| Unsalted Butter 🧈 | ½ cup | Cold, cubed for flaky crust |
| Shallots 🧅 | 2 whole | Minced for delicate flavor |
| Garlic Cloves 🧄 | 4 cloves | Peeled, finely chopped |
| All-Purpose Flour 🌾 | ¼ cup | For béchamel roux |
| Gruyère Cheese 🧀 | 1 cup | Shredded, nutty flavor |
| Sharp Cheddar Cheese 🧀 | ½ cup | Shredded, melts beautifully |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Fresh Dill 🌿 | ¼ cup | Chopped, brightens flavor |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
The fish is non-negotiable—cod or haddock gives you that delicate, flaky texture. Grab the freshest fillets you can find, usually at the seafood counter (or pre-order from Whole Foods if you're planning ahead). Look for fillets that are bright white, not grayish, and smell clean—not fishy. If you're feeling fancy, Wild Alaskan cod from Trader Joe's is a game-changer. The potatoes? Russets or Yukon golds—they're your secret weapon for that creamy, fluffy mash. Peel and cube them while they're still cold for even cooking.
No cod? Haddock or pollock work just as well—they just need a few extra minutes in the oven. The cheeses can be swapped too: Swiss or Emmental for Gruyère, or Pepper Jack for cheddar if you want a kick. Fresh dill is ideal, but dried dill at one-third the amount gets you close. For the béchamel, don't rush the roux—cook it until it's a deep golden color (about 3-4 minutes), or it'll taste raw. The lemon juice is worth squeezing fresh—bottled won't cut it here. And if you're short on time, instant mashed potatoes (like Bethlehem) can be stretched with extra butter for a shortcut crust.
This pie is a leftovers legend—tastes even better the next day once the flavors meld. Store it covered in the fridge for up to 4 days, or freeze portions for 3 months. To reheat, cover with foil and warm at 350°F for 20 minutes. The mashed potato topping gets crispy again—just broil for 2-3 minutes if you want extra crunch. Double the recipe and freeze half for lazy weeknights. Trust me, you'll be making this all winter long.
Why You'll Love This Recipe
- One-Pan Wonder: I swear by this recipe when I’m too tired to wash extra dishes. The potatoes bake right alongside the fish—no separate pots, no fuss—just a single tray that’s almost too easy to mess up.
- Creamy Crisp Magic: That golden crust on top? Pure satisfaction. The heavy cream and milk blend into a velvety sauce that clings to flaky cod and haddock like it’s been best friends with them forever. (Yes, even on a Tuesday night.)
- Leftover Hero: I make this on Sundays because it begs to be reheated. The next day, it’s just as good—maybe even better, since the flavors meld overnight. My kids fight over the portions, and I fight to keep the last slice for myself.
- Budget-Friendly Luxury: Fresh fish can feel fancy, but this pie stretches every bit of it. Haddock and cod are affordable, and potatoes? The ultimate pantry filler. It’s the kind of meal that makes you feel like you’re treating yourself without breaking the bank.
Step-by-step instructions for Ina Garten fish pie recipe
This creamy, comforting fish pie brings restaurant-quality flavor to your home kitchen.
Prepare the Creamy Fish Filling
Preheat your oven to 375°F. In a large skillet, melt 0.25 cup unsalted butter over medium heat. Add the 2 minced shallots and 4 finely chopped garlic cloves, cooking for 3-4 minutes until fragrant but not browned. This aromatic base forms the flavor foundation for your fish filling.
Add the 1.5 lb cod fillets and 1.5 lb haddock fillets, breaking them into 1-inch chunks. Cook for 3-4 minutes until the fish turns opaque and begins to flake easily. Remove from heat and stir in 1 cup heavy cream, 0.5 cup whole milk, 1.5 tsp salt, 0.5 tsp black pepper, and 1 tbsp lemon juice. The mixture should be rich and velvety—this is your creamy fish centerpiece.
Make the Ultra-Creamy Potato Topping
While the fish cooks, peel and dice the 2 lbs russet potatoes into ½-inch cubes. Boil them in salted water for 8-10 minutes until fork-tender but not falling apart. Drain thoroughly, then return to the pot.
In a separate saucepan, melt 0.25 cup unsalted butter over medium-low heat. Whisk in 0.25 cup all-purpose flour to form a roux, cooking for 1-2 minutes until bubbly but not browned. Slowly whisk in the 0.5 cup warmed whole milk until smooth. Add the cooked potatoes and mash until completely broken down, creating a thick, creamy base. Stir in the 0.25 cup chopped fresh dill and 1 tbsp lemon juice for brightness.
Assemble the Fish Pie
Transfer the creamy fish mixture to a 9x13-inch baking dish, spreading it evenly. Spoon the potato mixture over the top, creating a smooth, even layer. The contrast between the creamy fish and fluffy potato topping is what makes this pie so irresistible.
Sprinkle the 1 cup shredded Gruyère cheese and 0.5 cup shredded sharp cheddar cheese evenly over the potato layer. The cheeses will melt into a golden, bubbly crust while baking, creating that perfect Ina Garten touch. Cover the dish loosely with aluminum foil and bake for 25 minutes to let the filling set.
Bake to Golden Perfection
Remove the foil and bake for another 15-20 minutes until the top is golden brown and bubbling. The edges should be crisp while the center remains creamy—this is your visual cue for perfect doneness. If the top browns too quickly, tent with foil for the last few minutes to prevent over-browning.
Let the pie rest for 10 minutes before serving. This resting period allows the juices to redistribute, ensuring every forkful is rich and creamy. Garnish with additional chopped fresh dill if desired, and serve with a simple green salad or steamed vegetables. The first bite delivers that perfect balance of flaky fish, creamy potatoes, and melted cheese—absolute comfort in every mouthful.
Pro Tips For Making Ina Garten Fish Pie
- Boil Potatoes Until Tender: Don’t cut corners here—boil the Russets until they’re actually fork-tender, not just soft. I used to pull them out too soon, and the mash turned out gummy. Aim for 12-15 minutes in salted water (yes, even if they look done earlier), then drain and shock in ice water to stop cooking. This keeps the texture light and fluffy when mashed.
- Sear Fish Before Layering: Skip the raw fish straight into the cream—give those cod and haddock fillets a quick sear in butter or oil (2 minutes per side) before assembling. My grandmother swore by this, and she was right: it adds depth of flavor and prevents the fish from turning rubbery when baked. Just don’t overcook—it’ll finish in the oven.
- Mix Cream with Eggs: The secret to a creamy, not-watery topping isn’t just heavy cream—whisk 1-2 egg yolks into the cream-milk mix before pouring over the fish. I learned this the hard way after my first pie turned out soupy. The eggs bind the sauce and give it that rich, velvety texture without making it heavy. (Yes, even if you’re skeptical.)
- Bake Low and Slow: Resist the urge to crank the oven to 400°F—this pie needs 350°F for 25-30 minutes, covered in foil first. I used to rush it, and the top would brown too fast while the middle stayed cold. Covering traps steam, and the lower heat ensures the fish stays moist and the potatoes don’t dry out. Patience here makes all the difference.
Health benefits of ina garten fish pie
Lean Protein Power
Cod and haddock are both exceptionally lean proteins, providing about 25 grams of protein per serving while being low in calories and fat. This makes the fish pie a fantastic choice for anyone watching their waistline or maintaining a balanced diet.
The flaky texture also makes it satisfying and easy to digest, unlike heavier meats. 💪
Omega-3 Benefits
Both cod and haddock are rich in omega-3 fatty acids, particularly EPA and DHA, which support heart health by reducing inflammation and improving cholesterol levels. A 6-ounce serving of these fish provides about 500-1,000mg of omega-3s, which is nearly half the daily recommended intake for many adults.
These healthy fats also benefit brain function and joint health.
Potassium for Heart Health
The russet potatoes in the topping contribute 900mg of potassium per serving, which helps regulate blood pressure and supports cardiovascular function. Potassium also counters the sodium in the dish, balancing electrolytes and promoting overall heart health. The creamy béchamel adds richness without overpowering these nutritional benefits.
Vitamin Boost
This dish is packed with essential vitamins. The fish provides vitamin B12 for energy metabolism, while the potatoes offer vitamin C (about 25% of daily needs) and vitamin B6 for immune support.
The Gruyère cheese adds calcium and vitamin A, making this a well-rounded meal that covers multiple nutritional bases. 🥗
Calcium from Cheese
The combination of Gruyère and cheddar cheese delivers a significant calcium boost—about 30% of your daily needs per serving. Calcium is crucial for bone health, muscle function, and even maintaining healthy blood pressure. The melted cheese topping not only adds flavor but also enhances the dish's nutritional profile.
Low-Carb Option
For those following a lower-carb diet, you can reduce the potato topping by half or substitute it with cauliflower mash (steamed and blended with butter and cream).
This adjustment cuts carbs while keeping the creamy texture and rich flavor. The fish and cheese still provide ample protein and fat to keep you satisfied.
Nutrition facts
Frequently asked questions
Can I use frozen fish instead of fresh for this recipe?
Yes, but thaw it properly first! Place frozen cod or haddock in the refrigerator overnight (about 12-24 hours) for even cooking. Never thaw at room temperature, as this promotes bacterial growth. Pat the fish dry before cooking to ensure a crispy crust. For best results, use high-quality frozen fillets labeled "sustainably caught."
What's the secret to getting that perfect golden crust on top?
Three key factors:
- Butter ratio—use 0.5 cup cold butter in the mashed potatoes for richness,
- Cheese placement—sprinkle it evenly on top before baking, and
- Baking time—uncover for the last 15-20 minutes at 375°F to let it brown beautifully. A quick broil for 2-3 minutes at the end adds extra crispiness!
How do I make this dish ahead of time?
This pie reheats beautifully! Assemble it completely (including cheese), cover tightly with foil, and refrigerate for up to 2 days. Bake straight from cold at 375°F for 45-50 minutes, adding 5-10 extra minutes uncovered at the end. For freezing, bake first, then cool completely before wrapping in plastic wrap and foil. Freeze for up to 3 months—reheat covered with foil at 350°F for 30-40 minutes.
Can I substitute other fish like tilapia or salmon?
Tilapia works in a pinch, but it lacks the delicate flakiness of cod or haddock. For salmon, use wild-caught and reduce baking time by 5 minutes—it cooks faster and can become dry. Avoid lean white fish like snapper, as they may fall apart too easily. The key is firm, medium-fat white fish that holds its shape during baking.
Why did my fish pie turn out soggy?
Most likely, the potatoes weren't drained well enough or the pie wasn't baked long enough uncovered. Always pat potatoes thoroughly dry after boiling, and bake uncovered for the final 15-20 minutes to create a crispy crust. If the center feels undercooked, broil for 2-3 minutes at the end. Overmixing the mashed potatoes can also make them gummy—keep stirring to a minimum!
