Side Dishes
This baked mac and cheese recipe with shells delivers the perfect balance of crispy edges and gooey centers that’ll have everyone asking for seconds. The secret lies in baking the shells until golden while keeping the cheese sauce rich and velvety—no soggy bottoms here.
I’ve perfected this technique over years of testing, and it’s become my go-to comfort food for gatherings or cozy weeknights.
The process starts with perfectly cooked pasta shells, which we then fill with a creamy cheese sauce made from sharp cheddar, Gruyère, and a touch of cream cheese for extra richness. Baking at the right temperature ensures the shells crisp up while the cheese stays luscious inside.
This isn’t just a side dish—it’s a restaurant-quality centerpiece that’s surprisingly simple to make at home.
What makes this recipe stand out is the texture contrast: the shells become crispy and slightly caramelized on the edges, while the cheese inside remains smooth and stretchy. The aroma alone will fill your kitchen with warmth, making it impossible to resist digging in.
Whether you’re serving it at a holiday dinner or as a hearty weeknight meal, this baked mac and cheese will be the star of the table.
Ready in just 45 minutes, this dish requires minimal effort but delivers maximum flavor. The shells hold the cheese perfectly, so every bite is a balance of crunch and creaminess. Here’s how to make it—no shortcuts, just foolproof technique for crispy shells and gooey centers every time.
Ingredients for baked mac and cheese recipe shells
Just 15 ingredients for restaurant-quality baked mac and cheese shells—crispy outside, gooey inside.
| Ingredient | Amount | Notes |
|---|---|---|
| Jumbo Pasta Shells 🍝 | 1 lb | Dry, uncooked, medium or large size |
| Sharp White Cheddar Cheese 🧀 | 8 oz | Aged 6+ months for tangy flavor |
| Gruyère Cheese 🧀 | 6 oz | Aged 12+ months for nutty depth |
| Cream Cheese 🧈 | 4 oz | Full-fat for ultra-creamy texture |
| Heavy Whipping Cream 🥛 | ½ cup | Whole milk fat for richness |
| Whole Milk 🥛 | ½ cup | Warmed to blend smoothly |
| Butter 🧈 | 4 tbsp | Unsalted, melted for sauce base |
| All-Purpose Flour 🌾 | 2 tbsp | For thickening the sauce |
| Garlic Cloves 🧄 | 3 cloves | Minced, for aromatic base |
| Yellow Onion 🧅 | ½ whole | Diced, for sweet depth |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly cracked for heat |
| Nutmeg 🌿 | ¼ tsp | Freshly grated for warmth |
| Breadcrumbs 🍞 | ¼ cup | Panko for extra crunch |
| Parmesan Cheese 🧀 | ¼ cup | Freshly grated for topping |
The shells make or break this dish. Barilla Jumbo Shells are my go-to—they hold the filling perfectly and crisp up beautifully. If you can't find jumbo, medium shells work, but they'll be slightly smaller. Look for the dry, uncooked kind in the pasta aisle (not the pre-cooked kind). The cheeses are the stars: sharp white cheddar for tang, Gruyère for nutty depth, and cream cheese for that ultra-creamy texture. I always grab the aged cheddar—the older, the better for that perfect balance of sharpness and creaminess. Skip the pre-shredded stuff; it gets gummy when baked.
No sharp cheddar? Extra-sharp cheddar or pepper jack works in a pinch, but Gruyère is non-negotiable for that restaurant-quality flavor. Out of cream cheese? Substitute more cheddar plus 2 tbsp sour cream—it won't be identical, but it'll work. The breadcrumbs? Panko is worth it—it stays crispy while regular breadcrumbs turn soggy. Fresh garlic and onion are ideal, but powdered garlic and onion at half the amount will do in a bind. The nutmeg needs to be freshly grated—pre-ground loses its punch fast. If you're short on time, 1/4 tsp ground nutmeg works, but it won't be as vibrant.
This keeps 3 days in the fridge, but honestly, it's better the next day when the flavors meld. For leftovers, reheat covered at 350°F for 15 minutes—just enough to warm through without drying out. I always make a double batch because it disappears fast. Store in an airtight container with parchment between layers to keep the shells crispy. Freezes beautifully for up to 2 months—thaw overnight in the fridge before reheating. The shells will lose some crunch after freezing, but it's still delicious.
Why You'll Love This Recipe
- One-Bowl Magic: I swear by this recipe—no boiling pasta separately, no messy transfers. Just dump the shells straight into the baking dish, pour the cheddar-gruyère-cream cheese sauce over them, and let the oven do the work. (Between us, I’ve burned mac before. This method forgives mistakes.)
- Creamy Crispy Perfection: That sharp white cheddar and Gruyère combo? Chef’s kiss. The shells get crispy edges while staying pillowy inside, and the heavy cream keeps everything lusciously rich—no dry bites here. Honestly, I’ve had people ask if I hired a chef after tasting this.
- Weeknight Wonder: Need dinner fast? This feeds four in 30 minutes flat. Double the batch and freeze half for lazy nights—just reheat, and it’s like you made it fresh. My college kids devour it straight from the oven, no plates needed.
- Budget-Friendly Luxe: Gruyère might sound fancy, but a little goes a long way, and the cream cheese stretches the flavor without breaking the bank. Leftovers? Even better. I’ve had this for breakfast, lunch, and dinner—it’s my secret weapon for stretching groceries without sacrificing taste.
Step-by-step instructions for baked mac and cheese shells
Here's how to nail that perfect balance of crispy edges and gooey centers every time.
Cook the Jumbo Pasta Shells Al Dente
Bring a large pot of water to a rolling boil and add 1 lb of jumbo pasta shells. Cook for 2 minutes less than the package instructions—this ensures they stay firm enough to hold their shape when baked. The shells should still have a slight bite in the center when you test one. Drain them well and give them a quick shake in the colander to remove any excess water.
I know it seems counterintuitive to undercook pasta for a baked dish, but this prevents the shells from turning mushy in the oven. The residual starch on the shells will help create that perfect crispy exterior later. Don't rinse them—the starch is what makes the sauce cling.
Build the Ultra-Creamy Cheese Sauce
In a large skillet, melt 4 tbsp butter over medium heat. Add the 0.5 whole yellow onion and 3 cloves garlic cloves (minced), cooking until the onion is translucent and garlic is fragrant—about 3-4 minutes. This forms the flavor base for your sauce.
Reduce heat to medium-low and sprinkle in 2 tbsp all-purpose flour, stirring constantly for 1-2 minutes until it forms a smooth paste. Slowly pour in 0.5 cup heavy whipping cream and 0.5 cup whole milk, whisking vigorously to prevent lumps. Let the mixture simmer for 3-4 minutes until it begins to thicken.
Incorporate the Cheeses for Maximum Flavor
Lower the heat to low and begin adding the cheeses in stages. First, add 8 oz sharp white cheddar cheese and 6 oz gruyère cheese, stirring until completely melted. Then add 4 oz cream cheese, letting it melt into the sauce rather than adding it all at once—this prevents clumping.
Season generously with 1.5 tsp salt, 0.5 tsp ground black pepper, and 0.25 tsp nutmeg. Taste the sauce and adjust seasoning if needed. The sauce should be thick enough to coat the back of a spoon but still be pourable. If it's too thick, whisk in 1-2 tablespoons of warm milk to reach your desired consistency.
Combine and Assemble the Baked Shells
Preheat your oven to 375°F. In a large bowl, gently toss the cooked jumbo pasta shells with the cheese sauce until every shell is fully coated. Transfer the mixture to a 9x13-inch baking dish, spreading it out evenly in a single layer. The shells should be nestled together but not overlapping too much.
For that signature crispy top, sprinkle the shells with 0.25 cup breadcrumbs and 0.25 cup parmesan cheese. Press down lightly so the crumbs adhere to the top. This topping is what creates those irresistible crispy edges while keeping the centers gloriously gooey.
Bake to Golden Perfection
Bake uncovered for 20-25 minutes until the top is deep golden brown and the edges are crispy. The cheese should be bubbling hot and the shells should be tender but still holding their shape. If the top isn't browning enough, broil for 1-2 minutes at the end, watching closely to avoid burning.
Let the mac and cheese rest for 5-10 minutes before serving. This resting time allows the cheese to set slightly and makes it easier to scoop up those perfectly crispy shells. Serve immediately while the edges are still crisp and the centers are molten—this is the moment you've been waiting for!
Pro Tips For Making Baked Mac And Cheese Recipe Shells
- BOIL SHELLS AL DENTE THEN CHILL: I used to overcook the shells thinking they’d soften more in the oven—wrong. Boil jumbo shells just 1 minute less than package instructions, then plunge them into ice water for 30 seconds. This stops cooking and keeps them from turning to mush when baked. (Yes, even if you’re impatient like me.)
- GRATE CHEESE FRESH, NOT BAGGED: Pre-shredded cheese has anti-caking agents that make the sauce grainy. Instead, grate sharp cheddar and Gruyère yourself—just before mixing—and let the cheese sit at room temp for 10 minutes. This melts it smoother and avoids clumps. (I learned this the hard way after scraping gummy bits off my teeth.)
- BAKE COVERED FIRST, THEN UNCOVER: Skip the temptation to broil immediately. Cover the dish with foil and bake at 375°F (190°C) for 20 minutes first—this lets the cream cheese and whipping cream set without burning. Then remove foil, crank heat to 400°F (200°C), and broil 3-5 minutes for that golden crust. (Your future self will thank you.)
- STIR IN CREAM CHEESE LAST: Add the cream cheese to the hot cheese sauce off the heat—it’s the only way to avoid lumps. Let the sauce cool slightly (just until you can touch the pot without hissing) before folding it in. If you add it too early, you’ll end up with a sad, gloppy mess. (I was skeptical until I tried it.)
Perfect pairings for this recipe
Classic Side Pairings
Serve these crispy mac and cheese shells with a simple arugula salad tossed in lemon vinaigrette—the peppery greens cut through the richness beautifully.
I use 4 cups baby arugula, 2 tbsp extra-virgin olive oil, and 1 tbsp fresh lemon juice, plus a pinch of flaky sea salt. For extra protein, add 4 oz grilled chicken breast sliced into strips. 🥗
Protein Additions
Turn this into a full meal by adding crispy bacon or sautéed mushrooms. For bacon, cook 6 oz thick-cut slices until crispy, then crumble over the top before baking.
For mushrooms, sauté 8 oz cremini mushrooms with 1 tbsp butter and 1 tsp thyme until golden, then sprinkle on top. Both add amazing texture contrast.
Beverage Pairings
A chilled glass of Chardonnay with buttery notes—like a California Sauvignon Blanc—complements the creamy cheese perfectly. For beer lovers, try a hoppy pale ale like Sierra Nevada Pale Ale, which balances the richness.
If you prefer something lighter, a sparkling apple cider adds a refreshing contrast to the hearty dish. 🍷
Garnish Upgrades
Before serving, top with toasted breadcrumbs (toasted in butter for extra flavor) or crispy prosciutto for a savory crunch. A drizzle of hot honey adds a sweet-spicy kick that pairs wonderfully with the cheesy goodness. For a pop of color, sprinkle with fresh parsley or chopped chives right before serving.
Holiday Feast Pairings
This dish shines as a Thanksgiving side alongside roasted turkey, mashed potatoes, and green bean casserole. For Christmas, pair it with herb-roasted beef, stuffing, and cranberry sauce. The crispy shells hold up perfectly when served family-style, making it a crowd-pleaser at any gathering. 🎄
Nutrition facts
Frequently asked questions
Can I use regular pasta shells instead of jumbo?
Yes, but the texture will differ. Jumbo shells create that perfect crispy-to-gooey contrast because they hold more filling and have thicker walls. Regular shells will work, but you may need 12 oz instead of 1 lb to fill the baking dish similarly. For best results, stick with jumbo shells—they're worth it for that restaurant-quality crunch!
Why did my shells turn soggy instead of crispy?
Soggy shells usually mean one of two things: overcooking the pasta or not baking long enough. Always cook shells 2 minutes less than package instructions, and bake at 375°F for 20-25 minutes until golden brown. For extra crispiness, broil for 1-2 minutes at the end—just watch closely to avoid burning!
Can I make this ahead of time?
Assemble the dish up to 24 hours ahead and refrigerate uncovered. Before baking, let it sit at room temperature for 30 minutes, then bake as directed. For leftovers, reheat covered at 350°F for 15 minutes—the shells will lose some crunch but still taste amazing. Freezes well for up to 2 months too!
What's the secret to the creamiest cheese sauce?
The key is melting cheeses slowly and in stages. Start with the sharp cheddar and Gruyère over low heat, then add cream cheese last to prevent clumping. Warm the milk and cream slightly before adding, and whisk constantly. For extra richness, stir in 2 tbsp sour cream at the end—it adds that velvety texture!
How do I adjust this for a casserole dish?
Use a 9x13-inch baking dish as directed, but if you have a smaller dish, reduce the recipe by 25%. For deeper dishes (like 8x8-inch), spread the shells in a single layer—they won't crisp as much, but the cheese will still be perfect. Always bake uncovered for even browning!
