Here is my favorite mashed potato casserole recipe, with creamy russet potatoes, cream cheese, sour cream, and garlic, all baked together with butter on top for a rich and comforting side dish.
This mashed potato casserole is what I bring to every potluck and holiday dinner. It’s always the first dish to disappear, and I love that I can make it ahead of time and just pop it in the oven when I’m ready. Plus, it’s basically fancy mashed potatoes that nobody can resist.

Why You’ll Love This Mashed Potato Casserole
- Make-ahead friendly – You can prepare this casserole in advance and just pop it in the oven when you’re ready to eat, making it perfect for holiday gatherings or busy weeknights.
- Extra creamy texture – The combination of cream cheese, butter, and sour cream creates the richest, most luxurious mashed potatoes you’ve ever tasted.
- Infused with flavor – Cooking the potatoes with garlic, bay leaf, and thyme adds depth and aroma that takes this dish beyond ordinary mashed potatoes.
- Crowd-pleasing side dish – This casserole feeds a group and pairs well with everything from roasted chicken to holiday turkey, making it a reliable go-to for any occasion.
What Kind of Potatoes Should I Use?
Russet potatoes are really your best bet for this casserole because they’re starchy and fluffy, which means they’ll soak up all that cream cheese and butter beautifully. You could use Yukon Golds if that’s what you have on hand, and they’ll give you a slightly creamier, more buttery flavor, but the texture won’t be quite as light and fluffy. Whatever you do, skip the red or waxy potatoes for this recipe – they have too much moisture and will end up gummy instead of smooth. Make sure your potatoes are roughly the same size when you cut them so they cook evenly, and don’t be tempted to use pre-peeled or pre-cut potatoes from the store since they tend to be waterlogged.

Options for Substitutions
This casserole is pretty forgiving when it comes to swapping ingredients:
- Russet potatoes: Yukon golds work great here too and give you a naturally buttery flavor. Just keep the russets if you want that classic fluffy texture – they’re really the best choice for mashed potatoes.
- Cream cheese: You can use an equal amount of additional sour cream if you don’t have cream cheese on hand. The texture will be slightly less rich but still creamy and tasty.
- Sour cream: Greek yogurt (full-fat) makes a good substitute in equal amounts. You can also use crème fraîche for a fancier version.
- Whole milk: Half-and-half or heavy cream will make it richer, while 2% milk works if that’s what you have. Start with less and add more as needed to reach your preferred consistency.
- Fresh thyme: Use 1 teaspoon of dried thyme if you don’t have fresh sprigs. Add it directly to the boiling water with the potatoes.
- Fresh garlic cloves: In a pinch, use 1 teaspoon of garlic powder mixed into the mashed potatoes, though the roasted garlic flavor from whole cloves is really nice here.
Watch Out for These Mistakes While Cooking
The biggest mistake people make with mashed potato casserole is adding cold dairy ingredients, which can make your potatoes gluey and dense – always bring your cream cheese, butter, sour cream, and milk to room temperature or warm them slightly before mixing.
Overworking the potatoes is another common error that leads to a sticky, paste-like texture, so mix just until combined and consider using a potato ricer or food mill instead of an electric mixer for the fluffiest results.
Don’t skip cutting your potatoes into similar-sized chunks, as uneven pieces will cook at different rates and leave you with some undercooked bits and some falling apart.
Finally, resist the urge to bake the casserole at too high a temperature – keeping it around 350°F ensures it heats through evenly without drying out the edges or forming a tough crust on top.

What to Serve With Mashed Potato Casserole?
This creamy mashed potato casserole is the perfect side dish for just about any protein you’re serving for dinner. I love pairing it with roasted chicken, grilled steak, or even a simple meatloaf – the rich, buttery potatoes complement hearty mains really well. If you’re going for a full holiday spread, serve it alongside green beans, roasted carrots, or a crisp salad to balance out all that creaminess. For a cozy weeknight meal, this casserole pairs great with pork chops or baked salmon, and don’t forget to drizzle some gravy over the top if you have it!
Storage Instructions
Store: This casserole keeps really well in the fridge for up to 4 days. Just cover it tightly with plastic wrap or aluminum foil, or transfer it to an airtight container. The flavors actually get even better after a day or two!
Freeze: You can freeze this mashed potato casserole for up to 2 months. Let it cool completely first, then wrap it tightly in plastic wrap and a layer of foil. When you’re ready to use it, thaw it overnight in the fridge before reheating.
Reheat: Pop the casserole in a 350°F oven covered with foil for about 20-30 minutes until heated through. You can also reheat individual portions in the microwave for 2-3 minutes, stirring halfway through. Add a splash of milk if it seems dry, and it’ll come back to life perfectly.
| Preparation Time | 30-40 minutes |
| Cooking Time | 60-70 minutes |
| Total Time | 90-110 minutes |
| Level of Difficulty | Medium |
| Servings | 6 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 2600-2900
- Protein: 38-44 g
- Fat: 145-165 g
- Carbohydrates: 305-335 g
We'll Pay You $5 to Try This Recipe!
Cook our recipe, snap some photos, and earn a $5 Amazon Gift Card. It's that simple!
Here's how:
- Make the recipe
- Take nice pictures of your final dish
- Fill out our quick form (2 minutes max!)
- Your $5 reward is on the way!
Ingredients
For cooking the potatoes:
- 3 lb russet potatoes (waxy variety works best for creaminess)
- 1 tbsp kosher salt
- 4 thyme sprigs (fresh preferred for better aroma)
- 1 bay leaf
- 6 garlic cloves (unpeeled, for subtle flavor)
For the casserole:
- 2 tbsp unsalted butter (for topping)
- kosher salt to taste
- 8 oz cream cheese (softened to room temperature)
- 3/4 cup whole milk (warm, helps incorporate smoothly)
- black pepper to taste (freshly ground preferred)
- 1 cup sour cream (full-fat for creamier texture)
- 6 tbsp unsalted butter (I use Kerrygold for richness)
Step 1: Prepare the Potatoes and Aromatics
- 3 lb russet potatoes
- 1 tbsp kosher salt
- 4 thyme sprigs
- 1 bay leaf
- 6 garlic cloves
Peel and cut the russet potatoes into evenly-sized chunks (about 2 inches) so they cook uniformly.
Place the potatoes in a large pot and cover with cold water by about 2 inches.
Add 1 tablespoon of kosher salt, the unpeeled garlic cloves, bay leaf, and thyme sprigs.
Bringing potatoes to a boil in salted water from the start helps them cook evenly and absorb seasoning throughout.
Bring to a boil over high heat, then reduce to a simmer and cook for about 20 minutes until the potatoes are completely fork-tender.
Step 2: Drain and Prepare for Mashing
- drained potatoes and garlic from Step 1
Drain the potatoes in a colander and let them sit for 3 minutes—this allows excess moisture to evaporate, which is crucial for a creamy rather than gluey casserole.
Remove and discard the bay leaf and thyme sprigs.
The garlic cloves will be soft enough to slip easily from their skins; peel them now and set aside.
I find that letting the potatoes rest slightly also makes them easier to mash smoothly without overworking the starches.
Step 3: Create the Creamy Potato Base
- mashed potatoes and garlic from Step 2
- 8 oz cream cheese
- 3/4 cup whole milk
- 6 tbsp unsalted butter
- 1 cup sour cream
- kosher salt to taste
- black pepper to taste
Transfer the warm potatoes and peeled garlic cloves to a large bowl and begin mashing with a potato ricer or masher until you reach your desired texture (I prefer leaving it slightly chunky rather than completely smooth).
In a separate small bowl or measuring cup, warm the 3/4 cup of milk slightly to help it incorporate smoothly into the warm potatoes.
Add the softened cream cheese, 6 tablespoons of unsalted butter, and sour cream to the mashed potatoes, then gradually pour in the warm milk while stirring gently until the mixture is creamy and well-combined.
Season with kosher salt and freshly ground black pepper to taste.
Step 4: Assemble the Casserole for Chilling
- creamy potato mixture from Step 3
- 2 tbsp unsalted butter
Butter a baking dish (9×13 inch works well) and transfer the creamy potato mixture into it, smoothing the top with a spatula for an even surface.
Dot the top with 2 tablespoons of unsalted butter cut into small pieces—these will melt during baking and create a golden, rich top.
Allow the casserole to cool to room temperature, then cover tightly with plastic wrap or foil and refrigerate overnight or up to 2 days.
Make-ahead casseroles like this actually develop deeper flavor as they sit, and chilling allows the potatoes to set properly for baking.
Step 5: Bake and Serve
- prepared casserole from Step 4
Preheat your oven to 350°F about 15 minutes before baking.
Remove the casserole from the refrigerator and uncover it.
Bake for approximately 1 hour until the top is golden brown and the edges are bubbling slightly.
The casserole will heat through completely during this time.
Let it rest for 5 minutes before serving—this helps the potatoes set slightly so they hold their shape on the plate.

Russet Mashed Potato Casserole
Ingredients
For cooking the potatoes:
- 3 lb russet potatoes (waxy variety works best for creaminess)
- 1 tbsp kosher salt
- 4 thyme sprigs (fresh preferred for better aroma)
- 1 bay leaf
- 6 garlic cloves (unpeeled, for subtle flavor)
For the casserole:
- 2 tbsp unsalted butter (for topping)
- kosher salt to taste
- 8 oz cream cheese (softened to room temperature)
- 3/4 cup whole milk (warm, helps incorporate smoothly)
- black pepper to taste (freshly ground preferred)
- 1 cup sour cream (full-fat for creamier texture)
- 6 tbsp unsalted butter (I use Kerrygold for richness)
Instructions
- Peel and cut the russet potatoes into evenly-sized chunks (about 2 inches) so they cook uniformly. Place the potatoes in a large pot and cover with cold water by about 2 inches. Add 1 tablespoon of kosher salt, the unpeeled garlic cloves, bay leaf, and thyme sprigs. Bringing potatoes to a boil in salted water from the start helps them cook evenly and absorb seasoning throughout. Bring to a boil over high heat, then reduce to a simmer and cook for about 20 minutes until the potatoes are completely fork-tender.
- Drain the potatoes in a colander and let them sit for 3 minutes—this allows excess moisture to evaporate, which is crucial for a creamy rather than gluey casserole. Remove and discard the bay leaf and thyme sprigs. The garlic cloves will be soft enough to slip easily from their skins; peel them now and set aside. I find that letting the potatoes rest slightly also makes them easier to mash smoothly without overworking the starches.
- Transfer the warm potatoes and peeled garlic cloves to a large bowl and begin mashing with a potato ricer or masher until you reach your desired texture (I prefer leaving it slightly chunky rather than completely smooth). In a separate small bowl or measuring cup, warm the 3/4 cup of milk slightly to help it incorporate smoothly into the warm potatoes. Add the softened cream cheese, 6 tablespoons of unsalted butter, and sour cream to the mashed potatoes, then gradually pour in the warm milk while stirring gently until the mixture is creamy and well-combined. Season with kosher salt and freshly ground black pepper to taste.
- Butter a baking dish (9x13 inch works well) and transfer the creamy potato mixture into it, smoothing the top with a spatula for an even surface. Dot the top with 2 tablespoons of unsalted butter cut into small pieces—these will melt during baking and create a golden, rich top. Allow the casserole to cool to room temperature, then cover tightly with plastic wrap or foil and refrigerate overnight or up to 2 days. Make-ahead casseroles like this actually develop deeper flavor as they sit, and chilling allows the potatoes to set properly for baking.
- Preheat your oven to 350°F about 15 minutes before baking. Remove the casserole from the refrigerator and uncover it. Bake for approximately 1 hour until the top is golden brown and the edges are bubbling slightly. The casserole will heat through completely during this time. Let it rest for 5 minutes before serving—this helps the potatoes set slightly so they hold their shape on the plate.