Side Dishes
This fish and potatoes recipe delivers a restaurant-quality meal with minimal effort—crispy fish skin and fluffy, golden potatoes all cooked on one pan. The secret lies in high-heat searing for the fish followed by a gentle bake that transforms simple potatoes into a tender, herby side.
I developed this method after years of struggling with dry fish and mushy potatoes, and it finally cracked the code for a perfect weeknight dinner.
The beauty of this approach is its simplicity: no fancy techniques, just precise timing and a well-seasoned pan. You'll start with a quick sear to lock in those crispy edges on the fish, then add potatoes that roast alongside it, absorbing the same aromatic flavors.
The result is a dish that feels indulgent yet requires less than 30 minutes of active prep, making it ideal for busy evenings.
What you end up with is a plate that balances textures perfectly—crispy, flaky fish with tender, buttery potatoes that have just the right amount of caramelization. The dish is hearty enough to stand alone but pairs beautifully with a simple green salad or steamed vegetables.
Every bite delivers that satisfying contrast between the crispy exterior and fluffy interior, proving that a complete meal can be both impressive and effortless.
This recipe works equally well with white fish like cod or haddock, or even heartier options like salmon. The same method applies, ensuring you'll always achieve that coveted crispy skin and tender centers.
Whether you're cooking for two or feeding a family, the one-pan technique keeps cleanup simple while delivering professional-quality results.
Ingredients for fish and potato
Eleven simple ingredients transform into restaurant-style fish and potatoes with perfect crispy edges and fluffy centers.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod, haddock, or salmon preferred |
| Russet Potatoes 🥔 | 2 lbs | Cut into 1-inch chunks (skin on) |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | High smoke point for searing |
| Unsalted Butter 🧈 | 2 tbsp | Full-fat for best flavor |
| Garlic Cloves 🧄 | 4 cloves | Minced for aromatic base |
| Fresh Thyme Leaves 🌿 | ½ tsp | Or 0.25 tsp dried thyme |
| Fresh Rosemary 🌿 | 1 tbsp | Chopped, for earthy depth |
| Sea Salt 🧂 | 1 ½ tsp | Kosher or fine grain preferred |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked for best flavor |
| Lemon Zest 🍋 | 1 tbsp | Brightens the dish |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
The fish is the star here, so quality matters. Whole Foods Market or your local seafood counter often carry the freshest fillets—look for bright, translucent flesh with minimal odor. If you're using salmon, wild-caught has superior flavor. For potatoes, Russets are ideal due to their high starch content, which creates that fluffy interior. Avoid waxy potatoes like reds or yellows—they'll turn mushy. Cut the potatoes into even 1-inch chunks for consistent cooking. If you're short on time, pre-cut frozen potatoes work in a pinch, but rinse them well to remove excess starch.
No fresh thyme? Dried works at half the amount, but the flavor won't be as vibrant. Rosemary can be swapped for fresh sage if you prefer, though rosemary's piney notes complement the fish beautifully. For the olive oil, California Avocado Ranch or Bertolli brands are reliable choices with good heat tolerance. If you're using haddock or cod, the fillets should be about 1-inch thick—thinner pieces will overcook before the potatoes finish. For salmon lovers, wild Alaskan is the gold standard, but any quality fillet will work. The lemon zest and juice can be combined into a single tablespoon of juice if you're in a hurry, but zest adds that restaurant-quality brightness.
This dish reheats beautifully—just pop it in a 375°F oven for 10-15 minutes until heated through. Store leftovers in the fridge for up to 4 days, though the potatoes tend to dry out after day two. For longer storage, freeze the fish and potatoes separately (they have different thawing times). Portion into airtight containers with parchment paper between layers to prevent sticking. The flavors actually improve after the first night as the potatoes absorb the fish's juices—perfect for meal prep. If you've got extra lemon zest, freeze it in ice cube trays for future use.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this for lazy nights—just slice the potatoes, lay the fish on top, and let the oven do the work. No chopping boards, no extra pots, just golden perfection with zero stress.
- Garlic Butter Bliss: That moment when the butter melts into the crispy potatoes and flaky fish? Pure satisfaction. The garlic cloves roast into sweet, fragrant perfection while the fish stays tender—no overcooking, no fuss.
- Lunchbox Hero: Between us, this makes the best cold leftovers. The fish stays moist, the potatoes hold their shape, and the garlic butter adds a rich kick—pack it for work or school, and you’ll be the star of the day.
- Budget-Friendly Feast: Russets are cheap, fish fillets stretch far, and a little olive oil goes a long way. Honestly, I’ve fed four people for under $15 with this, and they always ask for seconds. That’s a win.
Step-by-step instructions for one-pan crispy fish and potatoes
Here's how to achieve perfectly crispy edges and fluffy potato centers with tender fish in a single pan.
Prep and Par-Cook the Potatoes
Preheat your oven to 425°F with a rack positioned in the lower third. Cut the 2 lbs russet potatoes into 1-inch chunks, leaving the skin on for texture. Toss the potato chunks in a large bowl with 0.25 cup extra-virgin olive oil, 1.5 tsp sea salt, 0.5 tsp ground black pepper, and 1 tbsp chopped fresh rosemary until evenly coated.
Spread the potatoes in a single layer on a large sheet pan, ensuring they don't overlap. Roast for 20 minutes until they begin to soften slightly but aren't fully cooked. You'll know they're ready when they develop a few golden spots but still feel firm to the touch. Remove from the oven and let them cool slightly while you prepare the fish.
Season and Sear the Fish Fillets
While the potatoes roast, pat the 1.5 lb white fish fillets completely dry with paper towels. This step is crucial for achieving crispy edges. Season both sides generously with 0.5 tsp sea salt and 0.25 tsp ground black pepper, then sprinkle with 1 tbsp lemon zest for brightness.
Heat a large oven-safe skillet over medium-high heat until very hot. Add 2 tbsp unsalted butter and let it melt completely, then add 4 minced garlic cloves and 0.5 tsp fresh thyme leaves. Cook for 30 seconds until fragrant but not browned. Carefully place the fish fillets in the skillet, skin-side down if present, and let them sear undisturbed for 2-3 minutes until golden brown and crispy.
Combine and Finish in the Oven
Using tongs, carefully transfer the seared fish fillets to the sheet pan with the partially cooked potatoes. Pour any remaining butter and garlic mixture from the skillet over the potatoes and fish. Return the pan to the oven and roast for an additional 15-18 minutes until the potatoes are tender when pierced with a fork and the fish flakes easily with a fork.
The potatoes should have crispy edges with fluffy centers, and the fish should be opaque throughout with no translucent areas. You'll know the potatoes are done when they're fork-tender and the edges are deeply golden brown. The fish should release easily from the pan and flake apart with gentle pressure.
Add Lemon and Rest Before Serving
Remove the pan from the oven and let it rest for 3-5 minutes. This resting period allows the fish to retain its juices and the potatoes to finish steaming slightly. Drizzle the 1 tbsp lemon juice evenly over the fish and potatoes, then gently toss everything together to distribute the sauce.
Serve immediately while the potatoes are still warm and the fish is at its peak tenderness. The crispy edges on the potatoes should contrast beautifully with their fluffy centers, and the fish should be perfectly cooked with a delicate, crispy exterior. Garnish with additional lemon zest if desired for extra brightness.
Pro Tips For Making Fish And Potato
- PARBOIL POTATOES FIRST: I learned this the hard way—skipping the parboil means your potatoes turn to mush when they hit the hot pan later. Cut them into even 1-inch chunks, boil in salted water for 5 minutes until just tender, then drain. This guarantees they’ll crisp up beautifully instead of falling apart when you sear them.
- SALT THE POTATOES BEFORE SEARING: More salt than you think—especially if using unsalted butter. Toss those parboiled potatoes in a dry skillet with a pinch of salt before adding oil. The salt draws out moisture, creating a better crust, and it seasons them from the start. (Yes, even if you’re impatient like me.)
- USE COLD BUTTER FOR FISH: After burning three batches, I finally figured out: cold butter is your friend here. Take that unsalted butter straight from the fridge, cut it into small cubes, and toss them into the pan with the fish after it’s seared. The cold butter melts slowly, basting the fish without turning it to rubber.
- GARLIC TIME MATTERS: Crush your garlic cloves just before they hit the pan—no pre-mincing. Add them to the potatoes when they’re halfway crisped, not at the start. This prevents them from burning before the fish is done, and the aroma hits at the perfect moment. (Your future self will thank you.)
Storing and reheating this dish
Refrigerator Storage
Store your fish and potatoes in an airtight container within 2 hours of cooking to preserve freshness. I recommend using glass containers with snap-on lids—they maintain moisture better than plastic.
Keep the dish refrigerated at 40°F or below for up to 4 days, though the potatoes will start drying out after 2 days. The fish stays moist longer, so I often separate it from the potatoes in the container to extend its shelf life. 🥬
Freezer-Friendly Tips
For longer storage, freeze the fish and potatoes separately in quart-sized freezer bags. Lay the fish flat in a single layer, then add potatoes in a separate bag—this prevents freezer burn and makes reheating easier.
Label each bag with the date and reheat within 3 months for best quality. I always leave 1 inch of headspace to account for expansion. 🧊
Oven Reheating Method
My preferred way to reheat this dish is in a 375°F oven for 15-18 minutes until heated through. Cover the pan loosely with aluminum foil to prevent drying, then remove the foil in the last 5 minutes to restore crispiness.
Add a splash of water or broth if the potatoes look dry. This method preserves the original texture better than microwave reheating. 🔥
Microwave Shortcut
For quick reheating, transfer portions to a microwave-safe dish and cover with a damp paper towel. Heat on 70% power for 2-3 minutes, stir, then continue in 30-second intervals until reaching 165°F internal temperature.
The fish reheats faster than the potatoes, so I recommend reheating them separately if possible. 💡
Reviving Dry Potatoes
If your reheated potatoes lose crispiness, place them in a 400°F oven for 5-7 minutes to restore texture. The residual fat in the pan will help recreate that golden crust.
For extra moisture, brush with a little olive oil before reheating. This trick works wonders for restoring the perfect contrast between crispy edges and fluffy centers. ✨
Meal Prep Strategy
Double the recipe and store half for later—this dish tastes even better the next day as flavors meld. I like to prep the potatoes separately, then sear and bake the fish fresh when ready to eat.
Store components in stackable glass containers to save fridge space. The fish reheats beautifully, while the potatoes can be par-cooked and finished later. 📅
Nutrition facts
Frequently asked questions
Can I use frozen fish instead of fresh?
Yes, but thaw it properly first! Place frozen fish in the refrigerator overnight or use the cold water method (sealed in a bag, submerged for 30 minutes). Never thaw at room temperature—this causes uneven cooking. Pat the fillets completely dry before searing to ensure crispy edges.
What if my potatoes turn out mushy?
Mushy potatoes usually mean they were overcooked or cut too small. For crispy edges, stick to 1-inch chunks and roast at 425°F until golden outside but still firm when pierced. If using waxy potatoes (like reds), they'll never get fluffy—stick to Russets or Yukon Golds.
How do I keep the fish from sticking to the pan?
Pat the fish completely dry with paper towels before seasoning—moisture prevents crispiness. Use an oven-safe skillet and heat it until smoking hot before adding butter. A light coating of oil on the pan before the butter also helps. Never move the fish until it releases easily (after 2-3 minutes).
Can I make this dish ahead of time?
The potatoes can be par-cooked and stored separately for up to 2 days. Sear the fish fresh when ready to eat and finish together in the oven. For maximum flavor, let the dish sit at room temperature for 10 minutes before serving to meld all the aromas.
What's the best way to serve this dish?
Pair with a simple green salad (arugula + lemon vinaigrette) or steamed asparagus. The crispy fish and potatoes stand alone as a complete meal, but adding a light vegetable balances the richness. For extra flair, garnish with fresh parsley or a sprinkle of smoked paprika.
