This is a from-scratch, stovetop mac and cheese built on a proper roux-based sauce rather than a shortcut version. Slightly undercooked pasta, a three-cheese blend, and a silky, seasoned cream sauce come together into something that’s glossy, smooth, and fully emulsified — with the option to finish it in the oven under a crunchy breadcrumb topping if you want that contrast of textures.
What sets this recipe apart from a quick, packet-style mac and cheese is the attention paid to technique at every stage: how the pasta is cooked, how the roux is built, how the milk is incorporated, and how the cheese is melted in. Each of these steps has a specific purpose, and skipping or rushing any of them shows up directly in the texture of the final dish.
Prep and Setup
Getting each component measured and organized by stage — pasta, cheese, sauce base, seasoning, and optional topping — keeps this multi-step recipe manageable:
Pasta:
- 400 g (14 oz) elbow macaroni or short pasta.
Cheese Blend:
- 1½ cups sharp cheddar, freshly grated — for bold flavor.
- 1 cup mozzarella or Monterey Jack, freshly grated — for smooth melt.
- ½ cup Parmesan, finely grated — for depth and umami.
Sauce Base (Roux + Liquid):
- 4 tablespoons unsalted butter.
- 4 tablespoons all-purpose flour.
- 3 cups whole milk, warmed.
- ½ cup heavy cream.
Seasoning:
- 1 teaspoon salt.
- ½ teaspoon black pepper.
- ¼ teaspoon white pepper.
- 1 teaspoon mustard powder.
- ½ teaspoon paprika.
- ¼ teaspoon garlic powder.
- Optional: pinch of nutmeg.
Optional Topping (Baked Version):
- ½ cup breadcrumbs.
- 2 tablespoons melted butter.
- ¼ cup grated Parmesan.
A note on the cheese: avoid pre-shredded cheese from a bag if possible. The anti-caking agents coating pre-shredded cheese prevent it from melting into a smooth sauce, which matters a great deal in a recipe this dependent on a fully emulsified result.
Workflow: How the Steps Actually Flow
Step 1: Cook the pasta properly. Bring a large pot of water to a rolling boil and add 1½ tablespoons of salt, which seasons the pasta itself as it cooks. Add the pasta and cook it 2 minutes less than the package instructions call for — this slightly undercooked, al dente texture matters because the pasta will continue absorbing sauce and softening further once it’s combined with the cheese sauce. Drain and reserve ½ cup of the pasta water, but don’t rinse the pasta — the starch left on the surface is what helps the sauce adhere. Overcooked pasta at this stage is one of the most common causes of mushy mac and cheese.
Step 2: Make the roux. Melt the butter over medium heat in a heavy-bottomed saucepan, then add the flour and whisk constantly for 2 minutes, keeping the mixture pale rather than letting it brown. A properly made roux removes the raw flour taste and sets up the base for a smooth, emulsified sauce once the milk is added.
Step 3: Add milk and cream slowly. Reduce the heat to medium-low, then add the warm milk gradually — about ½ cup at a time — whisking constantly. Once it’s fully incorporated, add the heavy cream, then cook for 3–5 minutes until the sauce thickens enough to coat the back of a spoon. Adding the liquid slowly, rather than all at once, is what prevents lumps and keeps the sauce smooth.
Step 4: Season the sauce. Stir in the salt, black pepper, white pepper, mustard powder, paprika, garlic powder, and optional nutmeg. Taste at this stage, but expect it to seem slightly under-seasoned — that’s correct, since the cheese added in the next step will bring additional saltiness.
Step 5: Add the cheese gradually. Turn off the heat completely before adding any cheese — this is important, since boiling the sauce after the cheese goes in can cause it to break or turn grainy. Add the cheese in order: cheddar, then mozzarella, then Parmesan, one handful at a time, stirring gently until each addition is fully melted before adding more. If the sauce becomes too thick at any point, add the reserved pasta water one tablespoon at a time to loosen it back up.
Step 6: Combine the pasta and cheese sauce. Add the drained pasta directly into the cheese sauce and fold gently until every piece is coated. Taste again and adjust the salt if needed. The finished sauce should look glossy, smooth, and fully emulsified — not oily or separated.
Step 7: Stovetop version. Let the finished mac and cheese rest for 2–3 minutes, which allows the sauce to stabilize slightly, then serve warm for the creamiest texture.
Step 8: Optional baked version. Preheat the oven to 180°C (350°F). Transfer the mac and cheese to a buttered baking dish, mix the breadcrumbs, melted butter, and Parmesan together, and sprinkle the mixture evenly over the top. Bake for 15–20 minutes, until golden and bubbling, being careful not to overbake, which can dry the dish out.
Component Organization: What Each Ingredient Is Doing
- The pasta: elbow macaroni or short pasta, cooked al dente and left unrinsed so its surface starch helps the sauce cling evenly.
- The cheese blend: sharp cheddar for bold flavor, mozzarella or Monterey Jack for smooth melting, and Parmesan for depth and umami — together they build a layered cheese flavor rather than relying on a single note.
- The sauce structure: butter and flour form the roux that thickens the sauce, while warmed milk and heavy cream provide the liquid base and richness.
- Flavor depth: salt, black pepper, white pepper, mustard powder, paprika, and garlic powder (with optional nutmeg), which build savory complexity into the sauce before the cheese is even added.
- The optional crunchy layer: breadcrumbs, melted butter, and Parmesan, which brown under the oven’s heat into a crisp, contrasting topping for the baked version.
Why the Pasta Cooking Step Matters So Much
Cooking the pasta two minutes short of the package instructions is a deliberate choice, not a shortcut. Because the pasta will sit in a hot, creamy sauce (and, in the baked version, go into the oven afterward), it continues to soften after it’s technically “done.” Starting from al dente rather than fully cooked pasta is what keeps the final texture from turning mushy by the time it’s served.
Why the Roux and Slow Milk Addition Matter
The roux — butter and flour cooked together briefly — does two things: it removes the raw, starchy taste flour has on its own, and it sets up the fat-and-starch structure that allows the milk to emulsify into a smooth sauce rather than a thin, separated liquid. Adding the milk gradually rather than all at once is what prevents lumps from forming, since a slow addition gives the roux time to absorb the liquid evenly at each stage.
Why Turning Off the Heat Before Adding Cheese Matters
Cheese sauces are prone to breaking — separating into a greasy, grainy mess — if they’re exposed to too much heat once the cheese goes in. Turning off the heat completely before adding the cheese, then working it in gradually while the residual heat of the sauce melts it, is what keeps the final sauce smooth and fully emulsified rather than oily or clumped.
Step-by-Step Assembly Strategy
- Boil salted water, cook the pasta 2 minutes short of package instructions, drain (reserving ½ cup pasta water), and don’t rinse.
- Melt butter in a saucepan, whisk in flour, and cook for 2 minutes without browning.
- Gradually whisk in warm milk, then heavy cream, cooking until the sauce coats the back of a spoon.
- Stir in salt, black pepper, white pepper, mustard powder, paprika, garlic powder, and optional nutmeg.
- Turn off the heat and stir in cheddar, then mozzarella, then Parmesan, one handful at a time, until melted.
- Fold the drained pasta into the cheese sauce until fully coated, adjusting with reserved pasta water if needed.
- Serve warm on the stovetop, or transfer to a baking dish, top with the breadcrumb mixture, and bake at 180°C (350°F) for 15–20 minutes until golden.
Cheese Macaroni
Description: A from-scratch, three-cheese macaroni and cheese built on a proper roux-based sauce, resulting in a glossy, smooth, fully emulsified dish. Can be served creamy straight from the stovetop, or finished in the oven under a crunchy breadcrumb topping.
Ingredients:
Pasta:
- 400 g (14 oz) elbow macaroni or short pasta
Cheese Blend:
- 1½ cups sharp cheddar, freshly grated
- 1 cup mozzarella or Monterey Jack, freshly grated
- ½ cup Parmesan, finely grated
Sauce Base (Roux + Liquid):
- 4 tablespoons unsalted butter
- 4 tablespoons all-purpose flour
- 3 cups whole milk, warmed
- ½ cup heavy cream
Seasoning:
- 1 teaspoon salt
- ½ teaspoon black pepper
- ¼ teaspoon white pepper
- 1 teaspoon mustard powder
- ½ teaspoon paprika
- ¼ teaspoon garlic powder
- Optional: pinch of nutmeg
Optional Topping (Baked Version):
- ½ cup breadcrumbs
- 2 tablespoons melted butter
- ¼ cup grated Parmesan
Instructions:
- Bring a large pot of water to a rolling boil. Add 1½ tablespoons salt. Add pasta and cook 2 minutes less than package instructions (al dente). Drain and reserve ½ cup pasta water. Do not rinse.
- Melt butter over medium heat in a heavy-bottomed saucepan. Add flour and whisk constantly for 2 minutes, keeping it pale (do not brown).
- Reduce heat to medium-low. Add warm milk gradually, about ½ cup at a time, whisking constantly. Once incorporated, add heavy cream. Cook 3–5 minutes until the sauce thickens enough to coat the back of a spoon.
- Add salt, black pepper, white pepper, mustard powder, paprika, garlic powder, and optional nutmeg. Stir well and taste — slightly under-seasoned is correct at this stage, since the cheese adds saltiness.
- Turn off heat completely. Add cheese in this order: cheddar, then mozzarella, then Parmesan, one handful at a time, stirring gently until fully melted. If too thick, add reserved pasta water 1 tablespoon at a time.
- Add drained pasta to the cheese sauce. Fold gently until every piece is coated. Taste and adjust salt if needed.
- For the stovetop version: let rest 2–3 minutes for the sauce to stabilize, then serve warm.
- For the optional baked version: preheat oven to 180°C (350°F). Transfer mac and cheese to a buttered baking dish. Mix breadcrumbs, melted butter, and Parmesan; sprinkle on top. Bake 15–20 minutes until golden and bubbling, without overbaking.
Notes:
- Avoid pre-shredded cheese; anti-caking agents prevent a smooth sauce.
- Never boil the sauce after adding cheese, to avoid it breaking or turning grainy.
- Do not overbake the baked version, to avoid dryness.
Medical Disclaimer: This recipe and the accompanying content are provided for general informational and culinary purposes only and are not intended as medical, nutritional, or dietary advice. Nutritional needs vary from person to person, and individuals with food allergies, intolerances, medical conditions, or specific dietary requirements should consult a qualified healthcare professional or registered dietitian before preparing or consuming this recipe. Cooking times and temperatures may vary depending on individual equipment; always ensure food is cooked to a safe internal temperature before serving. The creator of this content assumes no liability for any adverse reactions, allergic responses, or health outcomes resulting from the preparation or consumption of this recipe.




