Creamy Homemade Mac and Cheese That Actually Stays Creamy
The secret to homemade mac and cheese that stays creamy instead of clumping into a gluey brick is a proper béchamel base. Start with butter, flour, and warm milk before you ever add cheese, and the sauce will be smooth, pourable, and clingy in the best way. This stovetop version comes together in about 30 minutes and tastes nothing like the powdered stuff.
What You Need
For four generous servings, you will need:
12 oz elbow macaroni or cavatappi 3 tablespoons unsalted butter 3 tablespoons all-purpose flour 2 cups whole milk, warmed 1 cup heavy cream 2 cups sharp cheddar, freshly shredded 1 cup gruyère, freshly shredded 1 teaspoon dry mustard powder 1/2 teaspoon garlic powder Salt and white pepper to taste
A quick note on the cheese: buy a block and shred it yourself. Pre-shredded cheese is coated in potato starch or cellulose to prevent clumping in the bag, which also prevents it from melting smoothly into a sauce. Freshly shredded cheese melts in seconds and makes a noticeably silkier result.
The gruyère is not just a fancy add-on. It has a nutty depth that rounds out the sharpness of the cheddar without overpowering anything. If gruyère is not in the budget, a mild white cheddar or fontina works well in its place.
How to Make the Cheese Sauce
Cook your pasta in well-salted water until just shy of al dente, since it will finish cooking in the sauce. Drain it and set it aside.
In a large, heavy-bottomed saucepan over medium heat, melt the butter. Add the flour and whisk constantly for about two minutes. You are cooking out the raw flour taste, and the mixture should look pale golden and smell faintly nutty. This step takes patience but it matters.
Pour in the warm milk slowly, whisking the whole time. Warming the milk first keeps the sauce from seizing up or getting lumpy. Add the heavy cream next, then keep whisking over medium heat until the sauce thickens enough to coat the back of a spoon, about five to six minutes.
Pull the pan off the heat entirely before adding the cheese. This is the most important part of the whole recipe. If the sauce is boiling when the cheese hits it, the proteins will tighten and turn grainy. Off the heat, add the cheddar and gruyère in two or three handfuls, stirring after each addition until fully melted. Stir in the mustard powder and garlic powder, then taste for salt and pepper.
Add the drained pasta and stir to coat. The sauce should look loose at this point, almost too saucy. It will thicken as it sits and as the pasta absorbs some of the liquid. Serve it immediately while it is at its creamiest.
Ways to Make It Your Own
Once you have the base recipe down, it is easy to riff on. A pinch of smoked paprika in the sauce adds a subtle warmth that works especially well if you are adding bacon or pulled pork on top. A splash of hot sauce, maybe half a teaspoon of Frank's, gives it a gentle heat without tasting spicy.
For a baked version, pour the sauced pasta into a buttered 9x13 dish. Mix half a cup of panko breadcrumbs with a tablespoon of melted butter and scatter it over the top. Bake at 375°F for about 20 minutes until the top is golden and the edges are bubbling. The inside stays creamy while the top gets that satisfying crunch.
If you are making this for kids, stick with all mild cheddar and skip the mustard powder. The sauce is still rich and flavorful, just a little more crowd-friendly.
Storing and Reheating Without Ruining It
Leftover mac and cheese can be good the next day, but it needs a little attention to come back to life. The pasta absorbs the sauce as it sits in the fridge, so it will look dry and thick when you pull it out.
To reheat on the stovetop, add a splash of milk, maybe two or three tablespoons, and warm it over low heat while stirring. It loosens back up quickly. Avoid high heat, which will break the sauce and make it oily.
For microwave reheating, add that same splash of milk, cover loosely, and heat in 45-second intervals, stirring between each one. It takes a little longer but keeps the texture much closer to fresh.
Stored in an airtight container, it keeps well in the fridge for up to three days. I would not recommend freezing it since the sauce tends to separate and turn grainy after thawing.
Frequently Asked Questions
Affiliate link
Affiliate link
Frequently Asked Questions
Grainy sauce almost always means the cheese was added to sauce that was too hot. Remove the pan from heat completely before stirring in the cheese, and add it in small handfuls rather than all at once. Pre-shredded cheese can also cause this problem because of the anti-caking coatings it contains.
Absolutely. Cavatappi, shells, and rotini all work great because their curves and ridges hold the sauce well. Avoid very large pasta shapes or long noodles since the sauce-to-pasta ratio gets awkward. Small to medium tube or spiral shapes are the sweet spot.
Yes, with a small adjustment. Make the cheese sauce and cook the pasta separately, then combine them right before serving. If you mix them too far in advance, the pasta absorbs the sauce and it loses its creaminess. For a baked version, you can assemble the whole dish up to a day ahead, refrigerate it covered, and bake it straight from the fridge, adding about 10 extra minutes to the bake time.
Whole milk alone works fine and just produces a slightly lighter sauce. Half-and-half is a good middle ground. Avoid skim or low-fat milk if you can, since the lower fat content makes it harder to get that rich, coating texture without the sauce feeling thin.



