Ingredients
Method
Step 1: Prepare Your Baking Dish and Preheat
- Heat your oven to 350°F and lightly grease a 3-quart or 4-quart baking dish with butter or cooking spray. This prevents sticking and makes cleanup easier. Set it aside while you work through the remaining steps. Pro tip: a glass dish conducts heat more evenly than ceramic, so you'll get more consistent browning on the sides.

Step 2: Cook Your Pasta Perfectly
- Bring a large pot of salted water to a rolling boil, then add your pasta. Cook it according to the package directions, but drain it one full minute before the package says it's done. This matters tremendously because the pasta will continue cooking in the oven. You want it tender but still slightly firm in the center—what Italians call "al dente." Drain well in a colander, but don't rinse it.

Step 3: Coat the Pasta with Oil
- Transfer your warm pasta to a large mixing bowl and drizzle it with the tablespoon of olive oil, then stir gently until every piece is coated. This prevents the pasta from clumping together while you prepare the cheese sauce. Let it cool while you move to the next step. The cooling also ensures the hot pasta won't break down your cheese sauce when they combine.

Step 4: Create Your Roux Base
- Melt 6 tablespoons of butter in a large saucepan or Dutch oven over medium heat. Once it's foaming and golden (this takes about 2 minutes), whisk in your ¼ cup flour continuously for about 60 seconds until the mixture becomes bubbly and light golden. This roux is your thickening agent—it's the secret to a sauce that coats pasta instead of running off it.

Step 5: Build Your Cheese Sauce
- Gradually whisk in your 3 cups of whole milk and 1 cup of heavy cream, stirring constantly to prevent lumps from forming. Keep whisking for about 3-4 minutes until you see small bubbles breaking on the surface and the sauce thickens enough to coat the back of a spoon. Season with salt and pepper to taste. I typically use ¾ teaspoon salt and ½ teaspoon black pepper, but taste as you go.

Step 6: Add Your Cheeses
- Remove the pan from heat and add 2 cups of your shredded cheddar cheese, whisking until completely smooth. Then add your 2 cups of Gruyère cheese and whisk until creamy and lump-free. Finally, add the remaining 2 cups of sharp cheddar and whisk one final time. The sauce should be thick, glossy, and coat a spoon heavily. This three-step cheese addition prevents clumping and ensures even distribution.

Step 7: Combine Pasta and Sauce
- Pour the cooled pasta into your cheese sauce and stir gently but thoroughly until every piece is coated. This is easier than I'm about to describe, but I want you to understand what happens: spread half of this mixture into your prepared baking dish, then sprinkle the remaining 2 cups of shredded cheddar cheese over the top, then layer in the remaining pasta mixture. This creates pockets of extra-cheesy goodness throughout.

Step 8: Add Your Topping and Bake
- Combine your 1½ cups panko breadcrumbs with 4 tablespoons melted butter, ½ cup Parmesan cheese, and ¼ teaspoon smoked paprika in a small bowl, stirring until the breadcrumbs are evenly moistened. Sprinkle this mixture generously over the top of your mac and cheese. Bake for exactly 30 minutes until the top is golden brown and the filling bubbles around the edges. Let it rest for 5 minutes before serving—this helps it set and makes scooping cleaner.

Notes
- Assemble the night before - prepare the entire casserole through Step 7, cover tightly with plastic wrap, and refrigerate overnight, then bake the next day adding 5-10 minutes to the bake time since it'll be cold starting
- Freeze fully baked portions - cool the entire casserole completely, cut into individual portions, wrap each piece in foil, and freeze for up to three months; reheat in a 325°F oven for 25-30 minutes until warmed through
- Make your sauce ahead - prepare the cheese sauce up to two days in advance, store in an airtight container in the refrigerator, then warm gently before combining with pasta and baking
- Batch the breadcrumb topping - combine your panko, butter, Parmesan, and paprika mixture in a jar and store at room temperature for up to two weeks, making assembly on baking day faster
