Baked Three-Cheese Mac and Cheese
A proper béchamel-based mac and cheese built on a butter-and-flour roux, enriched with whole milk and heavy cream until thick and coating, then taken off the heat before the cheese goes in — sharp cheddar for flavour, Gruyère for the specific nutty depth that cheddar alone cannot produce, and low-moisture mozzarella for the stretchy melt that makes the finished dish pull apart in the way baked mac and cheese should. The pasta goes in slightly underdone, the whole thing is layered with cheese in the middle and across the top, and baked until bubbling before a brief broil develops the golden, lightly crisped crust. Serves twelve — the recipe that earns its place at any table it appears on.

Prep Time : 15 min
Cook Time : 35 min
Servings : 12
15 min
35 min
12
Ingredients
Mac and Cheese Base
• 600 g large elbow macaroni — this one on Amazon
• 360 g medium-aged cheddar cheese, freshly grated — this one on Amazon
• 250 g Gruyère cheese, freshly grated
• 115 g low-moisture mozzarella, freshly grated
• 170 g unsalted butter
• 110 g all-purpose flour
• 950 ml whole milk
• 400 ml heavy cream
• 5 g smoked paprika
• 5 g garlic powder
• 5 g onion powder
• 10g kosher salt, plus more to taste
This post may contain affiliate links. As an Amazon Associate I earn from qualifying purchases, at no additional cost to you.
Directions
- Preheat and Prepare the Baking Dish
Preheat the oven to 165°C. Lightly grease a 2.8-litre baking dish with butter or neutral oil on all interior surfaces — including the sides, not just the base. The cheese sauce and pasta mixture that bake directly against ungreased surfaces will adhere and tear when portioned. - Cook the Pasta
Bring a large pot of well-salted water to a full rolling boil. Add the 600g of elbow macaroni and cook for 1–2 minutes less than the package’s stated cooking time — the pasta should be clearly underdone, with a firm, chalky centre when bitten. The pasta will finish cooking during the 15–20 minutes of oven baking, and if it arrives in the dish at full al dente it will be overcooked and soft by the time the mac and cheese is served. The 1–2 minute under-cooking allowance also means the pasta absorbs less water during cooking, leaving it with a slightly more porous surface that subsequently absorbs the cheese sauce more effectively during baking. Drain thoroughly — any residual pasta water remaining in the pot or on the pasta dilutes the cheese sauce. - Prepare the Three-Cheese Blend
In a large bowl, combine the 360g of freshly grated cheddar, 250g of freshly grated Gruyère, and 115g of freshly grated low-moisture mozzarella. Toss to distribute the three cheeses evenly — this ensures each forkful from the finished dish contains all three rather than encountering concentrated pockets of any single cheese. Reserve approximately half of the combined mixture — this half goes into the sauce and between the layers; the remaining half tops the assembled dish for the broiled crust. The three-cheese combination is specifically calibrated: cheddar provides the bold, slightly acidic, distinctively sharp flavour that everyone expects from mac and cheese; Gruyère provides a specifically nutty, slightly sweet, more complex depth that cheddar alone cannot produce and that elevates the dish beyond its simple reputation; low-moisture mozzarella provides the melting quality and the stretchy, pulling texture at serving that neither cheddar nor Gruyère produces on their own. Freshly grated from whole blocks — not purchased pre-shredded — is essential for all three. Pre-shredded cheese contains anti-caking agents, typically cellulose or potato starch, that coat every shred and prevent smooth melting, producing a sauce that is grainy or stringy rather than velvety. - Make the Roux
In a large saucepan over medium heat, melt the 170g of butter until completely liquid and beginning to foam slightly. Add the 110g of all-purpose flour all at once and whisk continuously for 30–45 seconds. The roux should become smooth, slightly foamy, and homogenous — the flour’s starch granules fully coated and dispersed in the butter’s fat without clumping. The 30–45 second cooking time is the window for cooking out the flour’s raw, slightly gummy flavour without allowing the roux to colour — pale or blonde roux is the correct stage for a cheese sauce where the roux’s function is thickening rather than flavour contribution. Any brown colour means the roux has been cooked past its correct stage and will produce a slightly nutty, less neutral flavour in the finished sauce. - Build the Béchamel Sauce
Add approximately half the 950ml of whole milk to the roux in a slow, steady stream while whisking constantly — the vigorous whisking while the first addition of liquid disperses the roux into the liquid evenly, preventing lumps from forming. Once the first addition is fully smooth, add the remaining milk and the 400ml of heavy cream. Continue whisking and cook over medium heat for 3–5 minutes, stirring continuously, until the sauce has thickened enough to coat the back of a spoon clearly — a finger drawn through the sauce on the back of a spoon should leave a clean line that holds its edges rather than flowing back immediately. The combination of whole milk and heavy cream rather than either alone is the calibration for the correct richness and coating quality in the finished mac and cheese: whole milk alone produces a lighter sauce with slightly less coating richness; heavy cream alone produces an oppressively rich, very thick sauce. Together they produce the sauce body that coats every piece of pasta without feeling heavy. - Season the Sauce
Add the 5g of smoked paprika, 5g of garlic powder, 5g of onion powder, and 10g of kosher salt. Stir to distribute evenly. Taste the sauce at this stage and adjust — the sauce should taste slightly more assertively seasoned than the desired end result, because the pasta will absorb and dilute the sauce’s seasoning intensity during baking. The smoked paprika contributes both the characteristic warm colour that mac and cheese should show and the mild smoky depth that amplifies the cheese’s flavour. - Add Cheese Off the Heat
Turn off the heat completely. Add half of the prepared three-cheese blend — the half reserved for the sauce — to the hot béchamel and stir continuously until every piece of cheese has melted and the sauce is completely smooth and glossy. The off-heat addition is the critical technique decision that prevents the sauce from separating or becoming grainy. At direct boiling heat, casein proteins in the cheese denature rapidly and unevenly — the fat separates from the protein structure and the sauce breaks into a greasy, lumpy mass. Off the heat, the béchamel’s residual temperature is high enough to melt the cheese smoothly while the controlled temperature prevents the proteins from seizing. The correctly made cheese sauce should be glossy, velvety, and uniformly coloured at this stage. - Combine Pasta and Sauce
Add the drained macaroni to the cheese sauce and fold gently until every piece is evenly and completely coated — the sauce should cling to every pasta surface and pool slightly between pieces. The sauce will appear slightly looser than the desired end result at this stage, which is correct — it thickens significantly during baking as the pasta absorbs liquid and the cheese proteins continue to set in the oven heat. - Layer and Assemble
Transfer half of the pasta and sauce mixture into the greased baking dish, spreading to an even layer. Scatter half of the reserved cheese mixture — the half not used in the sauce — evenly over the first pasta layer. Add the remaining pasta mixture on top, spreading to an even surface. Scatter the remaining reserved cheese evenly across the entire top surface. The mid-dish cheese layer melts into the centre during baking, creating a distinct interior cheese concentration that the top layer’s broiled crust cannot produce — the result is two cheese experiences in the finished dish: the bubbly, concentrated top crust and the creamier, softer internal cheese layer. - Bake and Broil
Place the assembled dish in the preheated 165°C oven. Bake for 15–20 minutes until the sauce is visibly bubbling around the dish edges and the cheese on the surface has melted completely. Switch to the broiler setting and broil for 1–2 minutes — watching continuously and without leaving the oven unattended. The broiler develops the golden spots and light crispness on the top cheese layer in under 2 minutes and can progress from correctly golden to burnt in under 30 additional seconds. Pull from the broiler when golden patches are visible across the surface and the top has developed slight texture variation between melted areas and crisped ones. - Rest and Serve
Allow the mac and cheese to rest for 5 minutes before portioning. The brief rest allows the sauce to thicken slightly from its fully liquid baking temperature to the correct serving consistency — portioned immediately from the oven, the sauce flows off each serving; after 5 minutes it has set enough to plate with definition.
*Notes :
- The three-cheese formula — cheddar, Gruyère, and mozzarella — is balanced for complementary rather than competing contributions. Medium-aged cheddar is specified rather than sharp or extra-sharp because very sharp aged cheddar contains higher levels of free fatty acids that can make it prone to separation when melted into a béchamel, occasionally producing a greasy sauce despite the off-heat technique. Medium-aged cheddar melts more reliably while still providing clear, distinct cheddar flavour. Gruyère’s specific nutty, slightly caramelised flavour comes from its extended cave-aging — it provides a background complexity that makes people describe the mac and cheese as tasting more sophisticated without being able to identify exactly why. Mozzarella’s role is purely textural: its protein structure melts into long, stretchy strands rather than breaking down into the sauce, producing the specific pull and stretch at serving.
- The 165°C baking temperature is lower than many mac and cheese recipes specify, and deliberately so. Higher temperatures bake the outer layer of the dish faster than the interior — producing a set, potentially dried crust before the centre has fully heated through and the sauce has reached the correct bubbling consistency. 165°C heats the dish evenly throughout, producing a uniformly creamy interior by the time the edges begin to bubble, with the brief broil at the end providing the surface colour and crispness rather than the ambient baking heat.
Why This Recipe Works
This recipe works because the béchamel base provides the sauce’s structure and starch-thickening before any cheese is added — meaning the cheese’s only role is flavour and richness, not thickening. The off-heat cheese addition prevents the separation that high-temperature cheese melting produces.
The three-cheese combination is balanced for flavour, depth, and melt quality rather than relying on a single cheese for all three. The underdone pasta absorbs sauce during baking rather than going mushy. And the two-stage baking and broiling produces the correct combination of bubbling interior and golden crust.
Ingredient Breakdown
Medium-Aged Cheddar (360g)
The primary flavour — sharp, slightly acidic, distinctively cheddar throughout every bite of the finished dish.
Gruyère (250g)
The depth element — specifically nutty, slightly sweet, cave-aged complexity that elevates the overall flavour beyond cheddar alone.
Low-Moisture Mozzarella (115g)
The texture element — stretchy, pulling melt that neither cheddar nor Gruyère can produce.
Roux (Butter and Flour)
The sauce structure — starch cooked in fat provides the béchamel’s body and prevents the cheese sauce from breaking.
Whole Milk and Heavy Cream (Combined)
The sauce medium — milk for lightness, cream for richness; together producing the correct coating, flowing consistency.
Smoked Paprika, Garlic Powder, Onion Powder
The seasoning trinity — warmth, colour, and savoury aromatics that give the sauce depth beyond cheese and dairy alone.
Off-Heat Cheese Melting
The technique decision that prevents separation — residual béchamel heat melts cheese smoothly without the protein seizing that direct heat produces.
Flavor Structure Explained
This mac and cheese follows a layered balance model:
- Sharp cheesy core (cheddar)
- Nutty savory depth (Gruyère)
- Creamy coating base (cream, roux)
- Warm smoky background (smoked paprika)
- Crisp-soft texture contrast (broiled crust, creamy interior)
Cheddar defines the dominant character with sharp, familiar intensity that anchors the dish. Gruyère builds a secondary layer of nutty complexity that deepens the flavor beyond standard mac and cheese. Cream and roux form the smooth, rich body that carries the cheeses evenly across every bite. Smoked paprika adds subtle warmth and smokiness, reinforcing the savory profile without overpowering. The broiled crust introduces concentrated flavor and crisp texture, contrasting the flowing, creamy interior and completing the structure with physical as well as flavor balance.
Common Mistakes to Avoid
- Using Pre-Shredded Cheese – Anti-caking agents prevent smooth melting. Always grate from whole blocks immediately before use.
- Adding Cheese to a Boiling Sauce – Boiling temperature seizes the casein proteins and produces a greasy, separated sauce. Always turn off the heat before the cheese goes in.
- Not Undercooking the Pasta – Pasta cooked to full al dente before baking overcooks in the oven. Always pull 1–2 minutes early.
- Making the Sauce Too Thick Before Baking – The sauce tightens significantly in the oven. It should appear slightly looser than desired at the assembly stage — the correct baked consistency develops during the 15–20 minutes in the oven.
- Skipping the Rest – Sauce portioned immediately from the oven flows off each serving. The 5-minute rest sets it to the correct serving consistency.
- Not Watching the Broiler – 1–2 minutes is the entire window between correctly golden and burnt under a direct broiler. Never leave the oven unattended during this step.
Variations
With Dijon Mustard
Stir 15ml of Dijon mustard into the béchamel alongside the spices — its acid and slight sharpness amplifies the cheddar’s character and adds complexity that is specifically complementary to aged cheese without tasting of mustard in the finished dish.
With Hot Sauce
Add 10–15ml of your preferred hot sauce to the sauce alongside the seasoning for a background warmth that makes the richness feel more vibrant without producing a spicy dish.
Mac And Cheese With Crispy Breadcrumb Topping
Instead of the broiled plain cheese crust, combine 80g of coarse breadcrumbs with 30g of melted butter and scatter over the cheese topping before baking. The breadcrumbs toast to a deeply crunchy, golden layer during the bake rather than the brief broil, providing a more substantial textural contrast.
Four-Cheese Version
Add 100g of finely grated Pecorino Romano to the cheese blend — its sharper, saltier character than Parmigiano amplifies the cheddar’s acidity and adds an Italian aged-cheese dimension to the overall flavour.
Storage & Make-Ahead
Baked and cooled mac and cheese can be refrigerated for up to 4 days. To reheat it, warm portions in a 165°C oven covered with foil for 15 minutes, then uncover for another 5 minutes to bring back some of the surface texture. Individual portions can also be microwaved, but stir in a splash of milk first to help restore the creaminess.
Mac and cheese can also be assembled in advance and refrigerated unbaked for up to 24 hours before baking. If you bake it straight from the refrigerator, add about 10 extra minutes to the covered baking time. This is the most practical make-ahead option when you want to serve it at a specific time.
The cheese sauce on its own, made from béchamel, can be refrigerated for up to 3 days. Reheat it gently over low heat while whisking, then cook the pasta fresh and combine everything just before serving.
Frequently Asked Questions
Why three cheeses rather than one?
Each cheese provides a function the others cannot: cheddar for distinctive sharp flavour, Gruyère for nutty complexity, mozzarella for stretchy melt. A single-cheese version is simpler but one-dimensional — the three-cheese combination produces a more complete flavour and texture experience in every bite.
Why béchamel rather than simply melting cheese into cream?
The béchamel’s roux provides the sauce’s structure and prevents separation — the starch molecules surround and stabilise the cheese’s fat and protein during melting, producing a consistently smooth sauce. Cheese melted directly into cream without a starch base is more prone to separation and produces a less coating, less stable sauce.
Why medium-aged rather than sharp cheddar?
Very sharp aged cheddar has higher free fatty acid content from extended aging that makes it slightly more prone to separation when melted into a hot sauce. Medium-aged cheddar melts more reliably while still providing clear, assertive cheddar flavour.
Can I make this without Gruyère?
Yes — Comté is the closest substitute with a comparable nutty, sweet, cave-aged character. Fontina works well for the melt quality. Swiss or Emmental provide the mild nuttiness without the same depth. All-cheddar and mozzarella produces a simpler but still good result.
Why 165°C rather than higher?
Lower baking temperature heats the entire dish evenly before the edges begin to set — producing uniform creaminess throughout. Higher temperatures over-cook the outer portions before the interior reaches the correct temperature. The broil provides the surface colour that the lower ambient temperature does not.
Nutrition Facts
( per serving )
Calories
~715 kcal
Protein
26 g
Fat
45 g
Carbs
50 g
Calories
~715 kcal
Protein
26 g
Fat
45 g
Carbs
50 g
Related Recipes
Related Recipes
You might also like
You might also like

Baked Three-Cheese Mac and Cheese
Ingredients
Method
- Preheat the oven to 165°C. Lightly grease a 2.8-litre baking dish with butter or neutral oil on all interior surfaces — including the sides, not just the base. The cheese sauce and pasta mixture that bake directly against ungreased surfaces will adhere and tear when portioned.
- Bring a large pot of well-salted water to a full rolling boil. Add the 600g of elbow macaroni and cook for 1–2 minutes less than the package’s stated cooking time — the pasta should be clearly underdone, with a firm, chalky centre when bitten. The pasta will finish cooking during the 15–20 minutes of oven baking, and if it arrives in the dish at full al dente it will be overcooked and soft by the time the mac and cheese is served. The 1–2 minute under-cooking allowance also means the pasta absorbs less water during cooking, leaving it with a slightly more porous surface that subsequently absorbs the cheese sauce more effectively during baking. Drain thoroughly — any residual pasta water remaining in the pot or on the pasta dilutes the cheese sauce.
- In a large bowl, combine the 360g of freshly grated cheddar, 250g of freshly grated Gruyère, and 115g of freshly grated low-moisture mozzarella. Toss to distribute the three cheeses evenly — this ensures each forkful from the finished dish contains all three rather than encountering concentrated pockets of any single cheese. Reserve approximately half of the combined mixture — this half goes into the sauce and between the layers; the remaining half tops the assembled dish for the broiled crust. The three-cheese combination is specifically calibrated: cheddar provides the bold, slightly acidic, distinctively sharp flavour that everyone expects from mac and cheese; Gruyère provides a specifically nutty, slightly sweet, more complex depth that cheddar alone cannot produce and that elevates the dish beyond its simple reputation; low-moisture mozzarella provides the melting quality and the stretchy, pulling texture at serving that neither cheddar nor Gruyère produces on their own. Freshly grated from whole blocks — not purchased pre-shredded — is essential for all three. Pre-shredded cheese contains anti-caking agents, typically cellulose or potato starch, that coat every shred and prevent smooth melting, producing a sauce that is grainy or stringy rather than velvety.
- In a large saucepan over medium heat, melt the 170g of butter until completely liquid and beginning to foam slightly. Add the 110g of all-purpose flour all at once and whisk continuously for 30–45 seconds. The roux should become smooth, slightly foamy, and homogenous — the flour’s starch granules fully coated and dispersed in the butter’s fat without clumping. The 30–45 second cooking time is the window for cooking out the flour’s raw, slightly gummy flavour without allowing the roux to colour — pale or blonde roux is the correct stage for a cheese sauce where the roux’s function is thickening rather than flavour contribution. Any brown colour means the roux has been cooked past its correct stage and will produce a slightly nutty, less neutral flavour in the finished sauce.
- Add approximately half the 950ml of whole milk to the roux in a slow, steady stream while whisking constantly — the vigorous whisking while the first addition of liquid disperses the roux into the liquid evenly, preventing lumps from forming. Once the first addition is fully smooth, add the remaining milk and the 400ml of heavy cream. Continue whisking and cook over medium heat for 3–5 minutes, stirring continuously, until the sauce has thickened enough to coat the back of a spoon clearly — a finger drawn through the sauce on the back of a spoon should leave a clean line that holds its edges rather than flowing back immediately. The combination of whole milk and heavy cream rather than either alone is the calibration for the correct richness and coating quality in the finished mac and cheese: whole milk alone produces a lighter sauce with slightly less coating richness; heavy cream alone produces an oppressively rich, very thick sauce. Together they produce the sauce body that coats every piece of pasta without feeling heavy.
- Add the 5g of smoked paprika, 5g of garlic powder, 5g of onion powder, and 10g of kosher salt. Stir to distribute evenly. Taste the sauce at this stage and adjust — the sauce should taste slightly more assertively seasoned than the desired end result, because the pasta will absorb and dilute the sauce’s seasoning intensity during baking. The smoked paprika contributes both the characteristic warm colour that mac and cheese should show and the mild smoky depth that amplifies the cheese’s flavour.
- Turn off the heat completely. Add half of the prepared three-cheese blend — the half reserved for the sauce — to the hot béchamel and stir continuously until every piece of cheese has melted and the sauce is completely smooth and glossy. The off-heat addition is the critical technique decision that prevents the sauce from separating or becoming grainy. At direct boiling heat, casein proteins in the cheese denature rapidly and unevenly — the fat separates from the protein structure and the sauce breaks into a greasy, lumpy mass. Off the heat, the béchamel’s residual temperature is high enough to melt the cheese smoothly while the controlled temperature prevents the proteins from seizing. The correctly made cheese sauce should be glossy, velvety, and uniformly coloured at this stage.
- Add the drained macaroni to the cheese sauce and fold gently until every piece is evenly and completely coated — the sauce should cling to every pasta surface and pool slightly between pieces. The sauce will appear slightly looser than the desired end result at this stage, which is correct — it thickens significantly during baking as the pasta absorbs liquid and the cheese proteins continue to set in the oven heat.
- Transfer half of the pasta and sauce mixture into the greased baking dish, spreading to an even layer. Scatter half of the reserved cheese mixture — the half not used in the sauce — evenly over the first pasta layer. Add the remaining pasta mixture on top, spreading to an even surface. Scatter the remaining reserved cheese evenly across the entire top surface. The mid-dish cheese layer melts into the centre during baking, creating a distinct interior cheese concentration that the top layer’s broiled crust cannot produce — the result is two cheese experiences in the finished dish: the bubbly, concentrated top crust and the creamier, softer internal cheese layer.
- Place the assembled dish in the preheated 165°C oven. Bake for 15–20 minutes until the sauce is visibly bubbling around the dish edges and the cheese on the surface has melted completely. Switch to the broiler setting and broil for 1–2 minutes — watching continuously and without leaving the oven unattended. The broiler develops the golden spots and light crispness on the top cheese layer in under 2 minutes and can progress from correctly golden to burnt in under 30 additional seconds. Pull from the broiler when golden patches are visible across the surface and the top has developed slight texture variation between melted areas and crisped ones.
- Allow the mac and cheese to rest for 5 minutes before portioning. The brief rest allows the sauce to thicken slightly from its fully liquid baking temperature to the correct serving consistency — portioned immediately from the oven, the sauce flows off each serving; after 5 minutes it has set enough to plate with definition.






