The Food Lab's Ultra-Gooey Stovetop Mac and Cheese Recipe

Here's a homemade stovetop mac and cheese recipe that's only about 10 percent more cumbersome to make than the blue box and tastes far, far better.

Bowl of ultra-gooey stovetop macaroni and cheese
Just as fast as the blue box, but way, way better. J. Kenji López-Alt

Why It Works

  • Starting the pasta in cold water works just as well as adding it to already-boiling water but cooks faster and with less energy.
  • A combination of multiple thickeners and emulsifying agents—cornstarch, evaporated milk, eggs, and American cheese—ensures an extra-gooey texture with real cheese flavor.

No matter how much culinary training I've gone through, and no matter how many high-end ingredients I cook with or fancy restaurants I eat at, few things in the world can compete with the sheer deliciousness and childish pleasure of stovetop mac and cheese. Who doesn't love gooey, cheesy, creamy, salty pasta, even when (or especially when?) it comes out of that blue box? For me—and I presume for many of you—it's a built-in taste memory, and a powerful one at that.

It's the texture that does it for me. No other mac and cheese I've had has been quite so velvety smooth as the Kraft original. That said, in absolute terms, it does leave a bit to be desired in the flavor department. The ultimate goal? A cheese sauce with the creamy, gooey, oozy consistency of the blue box version but all the complex flavor of real cheese.

Gimme a Break: Keeping Your Cheese Emulsified

Cheese melts, right? So why not just throw some cheddar cheese into a pot with the pasta and heat it until it's at perfect sauce consistency? Anyone who's tried it can tell you: the cheese breaks, greasy slicks forming over a watery layer, with clumps of tough, rubbery cheese strands stuck together. It's not a pretty picture.

In order to understand why that happens, let's take a closer look at exactly what cheese is made of:

  • Water is present to varying degrees. Young cheeses like jack, young cheddars, and mozzarella have a relatively high water content—up to 80 percent. The longer a cheese is aged, the more moisture it loses, and the harder it becomes. Famous hard cheeses, like Parmigiano-Reggiano and Pecorino Romano, may contain as little as 30 percent water after several years of aging.
  • Milk fat in solid cheese is dispersed in the form of microscopic globules kept suspended in a tight matrix of protein micelles (more on those in a second). Under around 90°F, this fat is solid. Because of this, and because of their suspension, these tiny globules don't come into contact with each other to form larger globules: cheeses stay creamy or crumbly, instead of greasy.
  • Protein micelles are spherical bundles of milk proteins. Individual milk proteins (the main ones are four similar molecules called caseins) resemble little tadpoles with hydrophobic (water-avoiding) heads, and hydrophillic (water-seeking) tails. These proteins come together headfirst in bundles of several thousand, protecting their hydrophobic heads and exposing their hydrophillic tails to their watery surroundings. These micelles link together into long chains, forming a matrix that gives the cheese its structure.
  • Salt and other flavorings make up the rest of the cheese. Salt can have a profound effect on the texture—saltier cheeses have had more moisture drawn out of the curd before being pressed, so they tend to be drier and firmer. Other flavorful compounds present in cheese are mostly intentional by-products of bacteria and aging.

In a well-aged cheese, all of these elements are in careful, stable balance. But heat throws the whole thing off. Everything may seem to be going all right at first—the cheese gradually softens, turning more and more liquid. Then, suddenly, at around 90°F, the liquefied fat comes together into greasy pools and separates from the water and proteins. As you continue to stir the melted cheese, the proteins— which are suspended in whatever water hasn't yet evaporated—glue themselves together with the help of calcium into long, tangled strands, forming the stretchy curds that you find in string cheese or stretched mozzarella. What was once whole and well has now completely separated into fat, protein, and water, and unless you've got a $5,000 homogenizer on hand, it ain't coming back together.

Cheese products like American and Velveeta have stabilizers added to them, along with extra liquid and protein, to keep them stable. I microwaved a small chunk of American cheese on a plate next to a block of extra-sharp cheddar. The American stayed smooth, while the cheddar broke. Perhaps we can learn some lessons from the former.

Comparing the melting qualities of American and cheddar cheeses
American cheese (left) has chemical salts that help it melt smoothly. Cheddar (right) breaks as it melts.

To get a cheesy sauce that's shiny and smooth, not greasy or stringy, requires three things:

  • Keeping the fat globules from separating out and pooling
  • Adding moisture to thin the texture
  • Figuring out a way to keep the proteins from breaking apart and rejoining into long strands

Well, how the heck do you do all that? Luckily for us, all of this has happened before, and it will all happen again. In this case, I didn't want cheese that would go rapidly from solid to liquid. I wanted cheese that softened linearly over time, which meant that a starch should be my thickener and stabilizer of choice.

Some cheese sauce recipes call for béchamel— a flour-thickened milk-based sauce—as the base. I don't like how it works out both in terms of texture (a cheesy béchamel is smooth and creamy but not gooey) and flavor (you can taste hints of the flour in the finished product). A purer starch like cornstarch is a definite step in the right direction, while replacing the regular milk (or heavy cream) with evaporated milk seals the deal.

Check out the difference between a béchamel-based sauce and one made with pure starch and evaporated milk:

Comparing a béchamel-based sauce and one made with pure starch and evaporated milk

See, as the evaporated milk and starch mixture cooks, the starch molecules swell up, thickening the sauce, while the evaporated milk adds a concentrated source of milk proteins. This helps the entire mixture stay smooth and emulsified, resulting in a creamy sauce. The easiest way to incorporate the cornstarch is to toss it in with the grated cheese. That way, when you add the cheese to the pot, the cornstarch is already dispersed enough that the cheese can't form annoying clumps. Want to get your sauce even shinier? Cutting your flavorful cheese with just a bit of American will introduce some full-strength emulsifying agents that'll get the sauce shiny enough to see your reflection in.

The sauce was great on its own, but when added to pasta, it didn't quite cling to the noodles the way I wanted it to. To fix this, I added a couple of eggs. Now, as the sauce cooks, the long, twisted proteins from the egg white begin to denature, unraveling and interconnecting with each other, thickening the sauce into what is essentially a very loose custard. The difference the eggs make in the sauce's coating ability is quite astonishing.

The best part? You don't even have to make a separate cheese sauce. Once the pasta is cooked, you can add all of your other ingredients directly to the pot and just stir over the burner until the sauce comes together on its own. What we've got here is a stovetop mac and cheese recipe that's only about 10 percent more cumbersome to make than the blue box (the only extra step is measuring a few ingredients) but tastes far, far better.

A pot of stovetop macaroni and cheese

Why Won't My Mac and Cheese Reheat?

Mac and cheese is notoriously bad for reheating. Rather than a smooth, creamy sauce, you end up with a grainy, curdled, broken, unappetizing mess. It's all the pasta's fault. As we know, creating a stable cheese sauce requires the careful balance of fat to moisture, along with some emulsifying agents to help keep that fat and water getting along nicely together. Even though the pasta is completely cooked when it goes into the sauce, it has such a loose, sponge-like structure that it can continue to absorb water as it sits overnight in the refrigerator. This throws off the balance of the sauce, and the result is a sauce with too much fat that breaks out when you reheat it.

So is there a solution? Yes: just add back the water, duh. I've found that the best thing to do is add a few tablespoons of milk, which is essentially water with a bit of fat and a few proteins and sugars mixed in. The water content of the milk fixes the ratio, while the proteins help ensure that the sauce gets re-emulsified, as long as you stir while you reheat. Your pasta will always be mushier than it was in the first place, but sometimes mushy pasta can be a good thing.

The Meltability Factor

The meltability of various cheeses can be affected by a number of factors, including their manufacture and their chemical makeup, but the most important thing is age. Young, moist cheeses tend to melt a whole lot better than older, drier ones. But what exactly happens when cheese melts? Most cheeses are made by adding bacteria and rennet* to milk. The bacteria consume sugars, producing acidic by-products. Aside from lending tang and flavor, these acids, along with the rennet, cause the proteins in the milk (mainly casein) to denature. Imagine each protein as a tiny spool of wire that gets slowly unwound. The more it unwinds, the easier it is for it to get itself tangled up with other bits of wire. This is exactly what happens in cheese. The kinked wire-like proteins tangle up with each other, forming a stable matrix and giving the cheese structure. Trapped within this matrix are microscopic bits of solid fat and water.

*Rennet is an enzyme derived from the lining of calves' stomachs or, increasingly common these days, from vegetarian sources (yes, most cheese is not vegetarian).

As cheese is heated, the first part to go is the fat, which begins melting at around 90°F. Ever notice how a piece of cheese left out in the heat for too long forms tiny beads on its surface? Those are beads of milk fat. Continue to heat the cheese, and eventually enough of its protein bonds will break that it'll flow and spread like a liquid. Depending on the type of cheese, this takes place at anywhere from around 120°F, for super-melty high-moisture process cheeses like Velveeta, all the way up to 180°F and higher, for super-dry cheeses like well-aged Parmigiano-Reggiano. Once the protein structure breaks down too much, individual micro-droplets of fat and water coalesce, breaking out of the protein matrix and causing the cheese to completely break. Some cheeses, like feta or halloumi, have a protein structure so tight that no amount of heating will cause them to break or melt. Others have emulsifiers added to them to ensure that they melt smoothly at low temperatures without breaking. (Here's looking at you, American!) Still others need a bit of assistance from a recipe to remain stable.

Cheese Chart

Here's a chart of some of the more commonly available cheeses, along with their melting properties and best uses.

Editor's note: The chart in the actual book is much longer and more comprehensive, listing country of origin, animal type, flavor, and a few other characteristics. It was compressed to make it fit on a web screen.

 Cheese Name Slicing/Eating Plain Grilling Crumbling Grating Melting
American         X
Brie X    X   X
Cheddar (young) X    X   X
Cheddar (aged 1 year or more) X    X   X
Gruyère   X X
Feta    X    
Gorgonzola  X   X X X
Halloumi  X      
Monterey Jack     X X
Mozzarella      X X
Parmigiano-Reggiano      X  
Roquefort   X   X

This article and recipe are excerpted from The Food Lab: Better Cooking Through Science and are reprinted here with permission from W.W. Norton & Co.

October 2015

Recipe Facts



Cook: 25 mins
Active: 5 mins
Total: 25 mins
Serves: 4 to 6 servings

Rate & Comment


  • 1 pound elbow macaroni

  • Kosher salt

  • One 12-ounce can evaporated milk

  • 2 large eggs

  • 1 teaspoon Frank’s RedHot or other hot sauce

  • 1 teaspoon ground mustard

  • 1 pound extra-sharp cheddar, grated (see notes)

  • 8 ounces American cheese, cut into 1/2-inch cubes (see notes)

  • 1 tablespoon cornstarch

  • 8 tablespoons (1 stick) unsalted butter, cut into 4 chunks


  1. Place the macaroni in a large saucepan and cover it with salted water by 2 inches. Bring to a boil over high heat, stirring occasionally to keep the pasta from sticking. Cover the pan, remove from the heat, and let stand until the pasta is barely al dente, about 8 minutes.

  2. Meanwhile, whisk together the evaporated milk, eggs, hot sauce, and mustard in a bowl until homogeneous. Toss the cheeses with the cornstarch in a large bowl until thoroughly combined.

  3. When the pasta is cooked, drain it and return it to the saucepan. Place over low heat, add the butter, and stir until melted. Add the milk mixture and cheese mixture and cook, stirring constantly, until the cheese is completely melted and the mixture is hot and creamy. Season to taste with salt and more hot sauce. Serve immediately, topping with toasted bread crumbs if desired.


Use a good melting cheese or combination thereof, like American, cheddar, Jack, Fontina, young Swiss, Gruyere, Muenster, young provolone, and/or young Gouda. To reheat the pasta, add a few tablespoons of milk to the pan and cook, stirring gently, over medium-low heat until hot.

Nutrition Facts (per serving)
813 Calories
58g Fat
37g Carbs
36g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 813
% Daily Value*
Total Fat 58g 74%
Saturated Fat 33g 167%
Cholesterol 230mg 77%
Sodium 1269mg 55%
Total Carbohydrate 37g 13%
Dietary Fiber 1g 5%
Total Sugars 10g
Protein 36g
Vitamin C 1mg 7%
Calcium 1269mg 98%
Iron 2mg 10%
Potassium 427mg 9%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)