There is comfort food, and then there is this macaroni and cheese. If you have ever been disappointed by a homemade mac and cheese that turned out grainy, dry, or lacking flavor, this recipe is your redemption. Built on a foundation of sharp, tangy white cheddar and smooth, rich cream, this dish strikes the perfect balance between silky indulgence and deep, savory flavor.
Unlike recipes that rely on processed cheeses for meltability, this version uses a classic roux and a careful blend of freshly grated cheeses to achieve an ultra-glossy, stringy, melt-in-your-mouth sauce. A touch of Dijon mustard and garlic powder elevates the sharpness of the white cheddar without overpowering it, while freshly cracked black pepper cuts through the richness for a balanced bite. Whether you are serving it as the star of a weeknight dinner or bringing it to a holiday gathering, this is the ultimate, non-negotiable mac and cheese recipe you will keep coming back to.
Prep Time & Yield
Prep time: 15 minutes
Cook time: 20 minutes
Total time: 35 minutes
Servings: 6 to 8 servings
Ingredients
For the Pasta
1 lb (450g) elbow macaroni (or cavatappi / pipe rigate)
2 tbsp kosher salt (for the pasta water)
For the Creamy Cheese Sauce
4 tbsp (1/2 stick) unsalted butter
1/4 cup all-purpose flour
2 cups whole milk, room temperature
1 cup heavy cream, room temperature
8 oz sharp white cheddar cheese, freshly grated
4 oz Gruyère or Monterey Jack cheese, freshly grated (for extra meltability)
1 tsp Dijon mustard
1/2 tsp garlic powder
1/2 tsp onion powder
1/4 tsp cayenne pepper (optional, for subtle warm depth)
1 tsp freshly cracked black pepper (plus more for garnish)
Salt to taste
Step-by-Step Instructions
Step 1: Cook the Pasta
Bring a large pot of water to a rolling boil. Add the kosher salt.
Add the elbow macaroni and cook for 1 to 2 minutes less than the package instructions for al dente. The pasta will continue to cook slightly when tossed in the hot cheese sauce.
Drain the pasta and set it aside. Tip: Toss with a tiny drizzle of olive oil to prevent the noodles from sticking together while you make the sauce.
Step 2: Build the Roux
In a large, heavy-bottomed Dutch oven or deep skillet over medium heat, melt the unsalted butter.
Whisk in the all-purpose flour. Cook, whisking constantly, for about 1 to 2 minutes until the mixture bubbles, loses its raw flour smell, and turns a light golden color.
Step 3: Create the Cream Base
Slowly pour in the room-temperature whole milk and heavy cream in a steady stream, whisking constantly to prevent lumps from forming.
Bring the mixture to a gentle simmer over medium-high heat, whisking frequently.
Once it begins to simmer, reduce the heat to medium-low and let it cook for 3 to 5 minutes until the sauce thickens enough to coat the back of a spoon.
Step 4: Season and Melt the Cheese
Remove the pan completely from the heat source. (This step is crucial—direct heat will cause the cheese sauce to break or turn grainy).
Whisk in the Dijon mustard, garlic powder, onion powder, cayenne pepper, and freshly cracked black pepper.
Add the freshly grated cheeses in three separate batches, stirring gently after each addition until completely melted, smooth, and velvety. Taste and adjust with salt if needed.
Step 5: Combine and Serve
Fold the cooked macaroni into the rich cheese sauce until every noodle is completely coated in gooey goodness.
Let it sit for 2 minutes off the heat so the pasta absorbs a bit of the sauce.
Spoon into bowls and finish with a generous sprinkle of freshly cracked black pepper and chopped fresh chives if desired. Serve immediately while piping hot!
Chef’s Secrets for Success
Grate Your Own Cheese: Pre-shredded bagged cheese contains anti-caking agents (cellulose) that prevent it from melting smoothly. Grating your block cheese by hand guarantees a smooth, glossy sauce every time.
Temperature Control: Always take your pan off the heat before adding the cheese. High heat breaks down the fat molecules in dairy, resulting in an oily, separated sauce.
