Homemade Mac and Cheese

Boxed mac and cheese got you through college, but this homemade version is what the dish was always meant to be: tender elbow macaroni wrapped in a silky, deeply cheesy sauce that actually tastes like cheese — because it is cheese, melted properly into a classic béchamel base. It takes 35 minutes, uses one pot plus a baking dish (optional), and ruins the blue box forever.

The technique is the whole game here. A simple roux (butter + flour) thickens the milk into a smooth base, and the cheese goes in off the heat so it melts into silk instead of turning grainy. Learn this once and you can riff endlessly — different cheeses, add-ins, a crunchy baked topping when you’re feeling fancy.

Prep: 10 minutes | Cook: 25 minutes | Total: 35 minutes | Servings: 6

Homemade Mac and Cheese

Creamy homemade mac and cheese with a silky sharp-cheddar sauce over tender elbows — stovetop in 35 minutes, with an optional golden baked topping.

Prep Time10 mins
Cook Time25 mins
Total Time35 mins
Servings6 servings
Calories580 kcal

Ingredients

  • 1 lb (16 oz) elbow macaroni
  • 4 tablespoons unsalted butter
  • 1/4 cup all-purpose flour
  • 3 cups whole milk, warmed
  • 1 teaspoon kosher salt, plus more for pasta water
  • 1/2 teaspoon black pepper
  • 1/2 teaspoon dry mustard powder
  • 1/4 teaspoon paprika
  • 3 cups (12 oz) sharp cheddar cheese, freshly grated
  • 4 oz cream cheese, cubed
  • 1/2 cup panko breadcrumbs + 1 tablespoon melted butter (optional topping)

Instructions

  1. Cook the pasta: Boil the elbows in well-salted water until 1 minute shy of al dente. Drain and set aside.
  2. Make the roux: Melt the butter in a large saucepan over medium heat. Whisk in the flour and cook 1–2 minutes, whisking constantly, until nutty-smelling.
  3. Add the milk: Slowly whisk in the warm milk. Bring to a gentle simmer and cook 3–4 minutes, whisking, until thick enough to coat a spoon.
  4. Season the base: Whisk in the salt, pepper, mustard powder, and paprika.
  5. Melt the cheese: Off the heat, stir in the cream cheese until smooth, then add the grated cheddar in three handfuls, stirring until each melts.
  6. Combine: Fold in the drained pasta until fully coated. Taste and adjust salt.
  7. Serve or bake: Serve immediately, or transfer to a buttered 9x13 dish, top with buttered panko, and bake at 375°F (190°C) for 15–20 minutes until golden. Rest 5 minutes.

Recipe Notes

Keeps 4 days refrigerated; reheat gently with a splash of milk. Freezes up to 2 months. For doubling, melt cheese in smaller additions. Bake at 375°F (190°C) for the crunchy-topped version.

Why this recipe works

Most failed homemade mac and cheese comes down to the cheese sauce breaking — grainy, oily, separated. This recipe prevents that three ways: the roux stabilizes the sauce, whole milk (not low-fat) provides enough fat for a smooth emulsion, and the cheese is added off the heat in handfuls, so it melts gently instead of seizing.

Sharp cheddar is the star because aged cheese has more flavor per ounce — you taste “cheese” instead of just “creamy.” A little cream cheese or American cheese in the mix (the secret of many great mac and cheese recipes) adds meltability insurance. Cooking the pasta a minute shy of al dente means it finishes in the hot sauce without going mushy, and the optional breadcrumb topping adds the textural contrast that takes it from great to unforgettable.

Ingredients

  • 1 lb (16 oz) elbow macaroni — the classic shape; the tubes trap sauce in every bite.
  • 4 tablespoons unsalted butter — for the roux; it also adds rich flavor.
  • 1/4 cup all-purpose flour — thickens the milk into a smooth béchamel base.
  • 3 cups whole milk, warmed — warm milk incorporates into the roux without lumps; whole milk gives the richest sauce.
  • 1 teaspoon kosher salt, plus more for pasta water — cheese is salty, so season carefully and taste at the end.
  • 1/2 teaspoon black pepper — freshly cracked.
  • 1/2 teaspoon dry mustard powder — the classic secret ingredient; it amplifies cheese flavor without tasting mustardy.
  • 1/4 teaspoon paprika — subtle warmth and color.
  • 3 cups (12 oz) sharp cheddar cheese, freshly grated — the star; grate it yourself for the smoothest melt.
  • 4 oz cream cheese, cubed — meltability insurance; makes the sauce luxuriously smooth.
  • 1/2 cup panko breadcrumbs + 1 tablespoon melted butter (optional topping) — for the baked version’s golden crunch.

Substitutions

  • Different cheeses: Gruyère, fontina, Monterey Jack, Gouda, or white cheddar all melt beautifully. Use at least half sharp cheddar (or another flavorful aged cheese) so it still tastes cheesy.
  • Gluten-free: Use gluten-free elbows and a gluten-free flour blend for the roux; the technique is identical.
  • Lighter version: Use 2% milk and reduce the butter to 3 tablespoons — the sauce will be slightly less rich but still creamy. Don’t use skim milk; it breaks more easily.
  • Add-ins: Stir in cooked bacon, caramelized onions, roasted broccoli, diced ham, or buffalo chicken. Add 1 cup of your chosen mix-in with the pasta.
  • Spicy: Add diced jalapeños, a dash of hot sauce, or use pepper Jack for half the cheddar.
  • No cream cheese: Substitute 4 oz of American cheese (yes, really) or just use an extra 1/2 cup of cheddar — the sauce will be slightly less foolproof but still good.

Equipment

A large pot for the pasta and a large saucepan or Dutch oven for the sauce — or do it all in one Dutch oven to save washing up. A whisk is essential for a lump-free roux. If you’re doing the baked version, a 9×13-inch baking dish. A box grater for the cheese (non-negotiable — pre-shredded cheese makes grainy sauce). For measuring the flour and cheese accurately, a digital kitchen scale beats cups every time; our essential baking tools guide covers the rest of the kit.

Instructions

  1. Cook the pasta. Boil the elbows in well-salted water until 1 minute shy of al dente. Drain and set aside. (It will finish cooking in the hot sauce.)
  2. Make the roux. In a large saucepan or Dutch oven, melt the butter over medium heat. Whisk in the flour and cook, whisking constantly, for 1–2 minutes until it smells nutty and looks like wet sand. Don’t let it brown.
  3. Add the milk. Slowly pour in the warm milk, whisking constantly to prevent lumps. Bring to a gentle simmer, whisking, and cook 3–4 minutes until thickened enough to coat the back of a spoon.
  4. Season the base. Whisk in the salt, pepper, mustard powder, and paprika.
  5. Melt the cheese — off the heat. Remove the pan from the heat. Add the cream cheese and stir until melted and smooth. Add the grated cheddar in three handfuls, stirring until each melts before adding the next. The sauce should be velvety and smooth.
  6. Combine. Fold the drained pasta into the sauce until every piece is coated. Taste and adjust salt.
  7. Serve stovetop-style, or bake. For stovetop: serve immediately. For baked: transfer to a buttered 9×13 dish, top with buttered panko, and bake at 375°F (190°C) for 15–20 minutes until golden and bubbling. Let rest 5 minutes before serving.

Recipe scaling notes

The sauce scales linearly — double everything for a party-sized batch in a big Dutch oven. The one caution: melt the cheese in more, smaller additions when doubling, since a larger volume of hot sauce can seize cheese faster. Our Recipe Scaler handles the quantities, and How to Scale Recipes Without Ruining Them has the full guidance on scaling dairy-based sauces.

Storage and reheating

Refrigerate in an airtight container for up to 4 days. Reheat gently on the stovetop over low heat with a splash of milk, stirring until creamy again — this restores the sauce far better than the microwave. Microwaving works in short bursts with stirring, but the sauce can turn a bit grainy if overheated.

Freezing

Mac and cheese freezes reasonably well for up to 2 months, though the sauce may be slightly less silky after thawing. Freeze in portion-sized containers, thaw overnight in the fridge, and reheat low and slow with a splash of milk, whisking to bring the sauce back together. The baked version with the breadcrumb topping freezes best before baking.

Common mistakes and troubleshooting

  • Grainy sauce: The number-one issue — caused by pre-shredded cheese (anti-caking starches), cheese added over direct heat, or the sauce boiling after the cheese went in. Always grate fresh, always melt off the heat.
  • Lumpy roux: Milk added too fast or not whisked enough. Add warm milk gradually and whisk constantly; a few lumps can be whisked out as it simmers.
  • Bland: Needs salt and possibly more mustard powder. Cheese sauces need more salt than you expect — taste at the end.
  • Too thick: Thin with warm milk a splash at a time. The sauce thickens as it sits, so err on the side of slightly loose.
  • Oily or separated: The sauce got too hot after the cheese was added. Keep it below a simmer once cheese is in, and reheat gently.

Frequently asked questions

Why is my homemade mac and cheese grainy? Almost always pre-shredded cheese or too much heat. Bagged shreds are coated in starch that prevents smooth melting. Grate a block yourself and melt it off the heat — problem solved.

Can I make mac and cheese ahead of time? Yes. Assemble the baked version (without the topping), refrigerate up to 2 days, then add fresh buttered panko and bake, adding 10 minutes to the time. The stovetop version is best fresh but reheats well with milk.

What cheese is best for mac and cheese? Sharp cheddar for flavor plus a great melter (Gruyère, fontina, Monterey Jack, or cream cheese) for texture. Avoid aged hard cheeses like Parmesan as the main cheese — they don’t melt smoothly.

Can I make it without flour? You can melt cheese into warm evaporated milk for a flourless version (the proteins in evaporated milk stabilize it), but the classic roux method is more reliable and gives better body.

How do I keep it creamy when reheating? Low heat and a splash of milk, stirred patiently. High heat is what turns reheated cheese sauce grainy.

Is baked or stovetop better? Stovetop is faster and creamier; baked gives you the beloved crunchy topping and a firmer set. This recipe lets you choose — both start from the same pot of saucy pasta.

Nutrition

One serving (about 1 cup) contains an estimated 580 calories, 24g protein, 58g carbohydrates, and 28g fat. These are estimates only, based on standard ingredient data — actual values vary with your cheese blend, milk, and portion size. This is a general guide, not medical advice.

The box can’t compete

This homemade mac and cheese takes barely longer than the boxed kind and delivers something in a completely different league: real cheese flavor, a silky sauce, and endless ways to make it your own. For another creamy comfort classic, our Creamy Tomato Pasta from Scratch uses the same sauce-building confidence.

Leave a Comment