Scalloped Potatoes: Creamy, Cheesy, and Made from Scratch

Scalloped potatoes in a white ceramic baking dish with golden-brown Gruyère crust, garnished with fresh thyme on a marble surface, natural light — scalloped potatoes recipe

Scalloped potatoes done right hold their shape when you lift a portion. You can see the individual layers, the sauce has thickened into something almost custardy, and the top has a golden, slightly crispy crust from the Gruyère. This version builds the sauce from scratch using a butter-flour roux, whole milk, and heavy cream. It adds about 10 minutes to the process compared to pouring raw cream over raw potatoes, and the difference in texture is significant enough to notice from the first bite.

The approach here uses Russet potatoes for their high starch content, which helps the sauce absorb and thicken as the dish bakes. The cream sauce is cooked on the stove first so it goes into the dish already thick. No canned soup. No guesswork. You can also assemble this a full day ahead, which makes it genuinely useful for weeknight dinners and holiday meals alike.

Why You’ll Love This Scalloped Potatoes Recipe

  • The sauce is pre-thickened before it hits the potato layers, so there is no watery pooling at the bottom after baking
  • Gruyère on top melts into a deep golden crust with slightly crispy edges around the sides of the dish
  • The sliced onion layers cook down between the potatoes and dissolve into the sauce, adding sweetness without announcing themselves
  • You can assemble the entire dish 24 hours ahead and bake it fresh when needed
  • Leftovers come out of the fridge in clean slices and reheat well with just a splash of milk

Ingredients You’ll Need

For the Potato Layers

  • 1.2 kg (2.6 lbs) Russet potatoes, peeled — high starch content helps the sauce bind and thicken throughout the layers
  • 1 medium yellow onion, thinly sliced — adds a gentle sweetness and depth that builds as it cooks
  • 1 tsp fine salt
  • 1/2 tsp black pepper, freshly ground

For the Cream Sauce

  • 3 tbsp unsalted butter
  • 3 garlic cloves, minced — cooked in butter first so the raw sharpness is gone before the cream goes in
  • 3 tbsp all-purpose flour — the thickener; needs a full 2 minutes of cooking or the sauce will taste floury
  • 500 ml (2 cups) whole milk, at room temperature
  • 250 ml (1 cup) heavy cream, at room temperature
  • 1 tsp fine salt
  • 1/2 tsp black pepper, freshly ground
  • 1/4 tsp ground nutmeg — optional but noticeably rounds out dairy-heavy cream sauces
  • 120 g (1 generous cup) Gruyère cheese, freshly shredded, divided

Substitution note: Gruyère can be replaced with sharp Cheddar or a Gruyère-Cheddar blend. The flavor will be sharper and less nutty, but it melts cleanly and works well. Avoid pre-shredded cheese if possible — the anti-caking coating affects how evenly it melts.

Recipe Timing

Timing ElementDuration
Prep Time20 minutes
Cook Time1 hour 15 minutes
Rest Time15 minutes
Total Time1 hour 50 minutes

Servings: 6 | Difficulty: Medium | Cuisine: American/European | Course: Side Dish

All ingredients for scalloped potatoes laid out on white marble including Russet potatoes, Gruyère, cream, butter, garlic, and nutmeg — scalloped potatoes ingredients

How to Make Scalloped Potatoes: Step by Step

Step 1: Prep the Oven and Potatoes

Preheat the oven to 190°C (375°F). Butter a 9×13 inch (23×33 cm) baking dish generously on the bottom and up the sides. Peel the potatoes and slice them 3mm (1/8 inch) thin using a mandoline or a sharp knife. Aim for uniform thickness so every slice cooks at the same rate. Toss the slices in a large bowl with 1 tsp salt and set aside while you make the sauce.

Step 2: Start the Roux

Melt the butter in a medium saucepan over medium heat. Add the minced garlic and cook for 1 minute, stirring constantly, until fragrant but not browned. Add the flour and whisk continuously for 2 full minutes. The mixture will look like a pale, sandy paste.

Why this works: cooking the flour in the butter for a full 2 minutes removes the raw, chalky taste that ruins cream sauces. Under-cooking the roux is one of the most common reasons scalloped potatoes taste “floury” even after a long time in the oven.

Butter and flour roux being whisked in a saucepan on the stove, early step in making scalloped potatoes

Step 3: Build the Cream Sauce

Pour the milk and heavy cream into the roux in a slow, steady stream, whisking the entire time. Do not stop whisking until all the liquid is incorporated and the mixture is smooth. Raise the heat slightly to medium-high and continue cooking for 5-7 minutes, whisking frequently, until the sauce is thick enough to coat the back of a spoon and holds a clean line when you draw your finger across it.

Why this works: adding cold liquid all at once causes the roux to seize before it can be evenly distributed, which creates lumps. Adding it gradually while whisking keeps the sauce perfectly smooth throughout.

Step 4: Season and Add Cheese

Remove the pan from the heat. Add 1 tsp salt, 1/2 tsp black pepper, and the nutmeg. Stir in half the shredded Gruyère (about 60g) until fully melted and the sauce is smooth. Taste it. It should be well-seasoned on its own because it will be diluted slightly as it bakes into the potato layers.

Step 5: Layer the Potatoes

Lay half the potato slices in the buttered baking dish, overlapping each slice by about a third. Scatter half the sliced onion evenly over the potatoes. Pour half the cream sauce over the top, using a spatula to spread it all the way to the edges. Repeat with the remaining potatoes, onions, and sauce. Scatter the remaining Gruyère over the top.

Cream sauce being poured over layered potato slices in a ceramic baking dish, mid-step in making scalloped potatoes

Step 6: Bake Covered

Cover the dish tightly with aluminum foil. Bake on the center rack for 50 minutes. The potatoes should be mostly tender at this point. You can test by pressing the center through the foil with a fork — it should give with only slight resistance.

Why this works: the foil traps steam inside the dish and essentially steams the potato layers from within. Baking uncovered from the start concentrates all the heat on the surface, which browns the top before the center has a chance to cook through.

Step 7: Uncover and Brown

Remove the foil and return the dish to the oven. Bake uncovered for 20-25 minutes until the top is deep golden brown and a thin knife inserted straight down into the center slides through without any resistance. The sauce should be bubbling actively around the edges.

Why this works: the uncovered phase allows surface moisture to evaporate and the Gruyère to caramelize. This is what gives you a crust rather than just melted cheese.

Golden-brown scalloped potatoes fresh out of the oven, cheese crust bubbling, in a white ceramic baking dish

Step 8: Rest Before Serving

Pull the dish from the oven and let it sit uncovered for 15 minutes before slicing. The cream sauce continues to set during this rest, which means the layers hold together when you lift a portion instead of spreading across the plate. Serve with a wide spatula.

Common Mistakes to Avoid

Slicing potatoes unevenly

A mix of thick and thin slices in the same dish means some are overdone before others are cooked through. Use a mandoline set to 3mm if you have one. If you’re using a knife, take your time. Irregular slices are the most common reason a dish bakes unevenly.

Under-cooking the roux

Adding liquid to undercooked flour is what causes that raw, pasty aftertaste. Two full minutes at medium heat is the minimum. The paste should smell faintly nutty before you add anything to it.

Using cold milk and cream straight from the fridge

Cold dairy hit with a hot roux can seize or cause the sauce to turn grainy. Let the milk and cream sit at room temperature for 20-30 minutes before you start, or warm them for 45 seconds in the microwave.

Cutting the dish too soon

Scalloped potatoes sliced straight out of the oven spread everywhere. The 15-minute rest is not optional if you want clean portions. The sauce firms up considerably during that window.

Variations and Substitutions

Different cheese:

Sharp Cheddar works in place of Gruyère. The result is tangier and more familiar but still melts cleanly. A 50/50 Gruyère-Parmesan blend gives a more complex, slightly saltier crust.

Lighter version:

Replace the heavy cream with an equal amount of whole milk. The sauce will be thinner and less rich, but it still holds together through the full baking time. Low-fat or skim milk tends to separate, so avoid those.

Herb layer:

Lay fresh thyme sprigs between the potato layers for a subtle earthy note. Pull them out before serving or give guests a heads-up.

What to Serve With Scalloped Potatoes

Scalloped potatoes are a side dish, so they work best alongside proteins with clear, contrasting flavors rather than other cream-based dishes.

Roast chicken — the richness of the cream sauce balances well against simply herb-seasoned chicken skin.

Grilled lamb chops — the cream sauce complements lamb without competing with the flavor.

A sharp green salad with lemon vinaigrette — the acidity cuts through the cream and prevents the meal from feeling heavy.

Steamed green beans or roasted asparagus — simple vegetables keep the plate from being all starch and fat.

Braised beef short ribs — a slow-cooked main alongside scalloped potatoes makes the meal feel genuinely occasion-worthy.

Scalloped potatoes plated with roast chicken and green salad on a marble table, ready to serve — scalloped potatoes

Storage, Reheating, and Make-Ahead

Fridge:

Cool the dish completely, then cover the baking dish tightly with plastic wrap or transfer portions to an airtight container. Keeps for up to 4 days. The flavors actually deepen on day two.

Freezer:

Portion into individual servings and freeze in airtight containers for up to 2 months. Thaw overnight in the fridge before reheating. The sauce texture changes slightly after freezing (it may look grainy when thawing), but it smooths out once reheated gently.

Reheat:

Place portions in an oven-safe dish. Spoon 2-3 tablespoons of whole milk or cream over the top. Cover with foil and bake at 175°C (350°F) for 20-25 minutes until heated through. The added liquid prevents the sauce from drying out or developing a skin.

Make-ahead:

Assemble the entire dish without baking, cover tightly with foil, and refrigerate for up to 24 hours. When ready to bake, keep it covered and add 10-15 extra minutes to the initial covered bake time to account for the cold dish going into a hot oven.

Allergen and Dietary Information

Contains dairy (butter, whole milk, heavy cream, Gruyère). To make this dairy-free, substitute the butter with a plant-based alternative, use full-fat oat milk or coconut cream in place of the milk and cream, and choose a dairy-free cheese that is specifically designed to melt. The texture of the sauce will differ but the structure holds.

Contains gluten (all-purpose flour in the roux). To make this gluten-free, use a 1:1 gluten-free flour blend in the same quantity, or use 2 tbsp cornstarch instead (whisk the cornstarch into the cold milk before adding it to the butter, skipping the roux step entirely).

Critical: never claim a recipe is “safe” for someone with a serious allergy without confirming every ingredient and brand label. Cross-contamination from shared equipment is a separate concern.

Nutrition Information

Per serving (based on 6 servings):

NutrientPer Serving
Calories385 kcal
Protein12 g
Total Carbohydrates38 g
Dietary Fiber3 g
Total Sugars5 g
Total Fat22 g
Saturated Fat13 g
Sodium520 mg
Cholesterol65 mg
Potassium780 mg
Calcium220 mg
Iron2 mg

Nutritional values are estimates only and may vary based on specific ingredients, brands, and portion sizes used. For precise dietary needs, consult a registered dietitian.

Frequently Asked Questions

What is the difference between scalloped potatoes and au gratin potatoes?

Traditional scalloped potatoes are baked in a plain cream sauce with no cheese. Au gratin potatoes include cheese layered between the potatoes as well as on top. In most modern recipes, including this one, the line has blurred — this version adds cheese only to the sauce and the top layer, which puts it somewhere between the two. The terms are now used interchangeably in most kitchens.

Why are my scalloped potatoes still hard after baking?

The two most common causes are slices cut too thick (anything over 4mm will not cook through in the standard baking time) and a cream sauce that was too thick before layering, which insulates the potato slices from the oven heat. Slice at 3mm and make sure the sauce pours easily before you layer it. If the dish is still firm after the full baking time, cover it with foil and add another 15-20 minutes.

Can I make scalloped potatoes the day before?

Yes. Assemble the entire dish, cover it tightly with foil, and refrigerate for up to 24 hours. Add 10-15 extra minutes to the covered baking phase to account for the cold dish. Everything else stays the same.

Can I use milk instead of heavy cream?

Whole milk works well as a straight substitution. The sauce will be slightly thinner and the finished dish a little less rich, but the layers hold and the flavor is still good. Avoid low-fat or skim milk, which tend to separate at sustained oven temperatures and produce a grainy sauce.

What is the best cheese for scalloped potatoes?

Gruyère is the standard choice because it melts smoothly, develops a deep golden crust, and has a nutty flavor that doesn’t overpower the potato. Sharp Cheddar and a half-Gruyère, half-Parmesan blend are both solid alternatives. Avoid pre-shredded cheese — the anti-caking starch coating prevents it from melting evenly and can make the top grainy.

How thin should I slice the potatoes?

3mm (1/8 inch) is the target. At that thickness, the slices cook through evenly during the 50-minute covered phase. Thicker than 4mm and the centers stay firm; thinner than 2mm and the slices can dissolve into the sauce and lose their structure.

How do I stop scalloped potatoes from curdling?

Curdling happens when the sauce gets too hot too fast or when cold dairy is added to a very hot pan. Use room-temperature milk and cream, keep the heat at medium when building the sauce, and bake at a steady 190°C (375°F) rather than higher. Avoid boiling the dish aggressively. The roux also acts as a stabilizer, which is one reason a from-scratch sauce is more reliable than poured raw cream.

Conclusion

These scalloped potatoes take about 20 minutes of active prep, and then the oven handles the rest. The sauce is the part worth paying attention to: get the roux cooked through, add the liquid gradually, and season it well before it goes into the dish. If you do those three things, the bake is straightforward. The 15-minute rest at the end matters more than it sounds. That is what determines whether you get clean, layered portions or a spreading pool of cream when the spatula goes in.

Scalloped Potatoes: Recipe Card

Abdul Rehman

Scalloped Potatoes: Creamy, Cheesy, and Made from Scratch

Thinly sliced Russet potatoes layered with a from-scratch garlic cream sauce and topped with melted Gruyère. The sauce is built on the stove first, which gives it the body to hold the layers together through a long, slow bake.
Prep Time 20 minutes
Cook Time 1 hour 15 minutes
Rest Time 15 minutes
Total Time 1 hour 50 minutes
Servings: 6
Course: Side Dish
Cuisine: American/European

Ingredients
  

For the Potato Layers
For the Potato Layers
  • 1.2 kg (2.6 lbs) Russet potatoes, peeled ​
  • 1 medium yellow onion, thinly sliced ​
  • 1 tsp fine salt ​
  • 1/2 tsp black pepper, freshly ground ​
For the Cream Sauce
  • 3 tbsp unsalted butter ​
  • 3 cloves garlic, minced ​
  • 3 tbsp all-purpose flour ​
  • 500 ml (2 cups) whole milk, room temperature ​
  • 250 ml (1 cup) heavy cream, room temperature ​
  • 1 tsp fine salt ​
  • 1/2 tsp black pepper, freshly ground ​
  • 1/4 tsp ground nutmeg ​
  • 120 g (1 generous cup) Gruyère, freshly shredded, divided ​

Method
 

  1. Preheat oven to 190°C (375°F). Butter a 9×13 inch baking dish. Peel potatoes and slice 3mm (1/8 inch) thin. Toss with 1 tsp salt and set aside.
  2. Melt butter in a saucepan over medium heat. Add garlic and cook 1 minute, stirring. Add flour and whisk for 2 full minutes until the paste smells faintly nutty.
  3. Add milk and cream in a slow stream, whisking constantly. Cook 5-7 minutes over medium-high heat until the sauce thickens enough to coat the back of a spoon.
  4. Remove from heat. Add 1 tsp salt, 1/2 tsp pepper, and nutmeg. Stir in half the Gruyère until melted. Taste and adjust seasoning.
  5. Layer half the potato slices in the dish, overlapping by a third. Scatter half the onion over. Pour half the sauce over and spread to the edges. Repeat with remaining potatoes, onions, and sauce. Top with remaining Gruyère.
  6. Cover tightly with foil. Bake 50 minutes.
  7. Remove foil. Bake uncovered 20-25 minutes until top is deep golden brown and a knife slides through the center without resistance.
  8. Rest uncovered for 15 minutes before slicing. Serve with a wide spatula.

Similar Posts