
Homemade mac and cheese from scratch transforms a simple dish into something extraordinary. I developed this method after years of testing, learning that the secret lies in a proper roux and careful cheese selection.
This recipe delivers on its creamy promise by combining three cheeses for depth of flavor, while a precise cooking technique ensures a velvety sauce that coats every noodle perfectly. The pasta is cooked al dente to maintain texture against the rich sauce.
The result is a dish that’s rich without being heavy, with a sauce so smooth it clings to the elbow macaroni. Each bite offers the comfort of melted cheese and the satisfaction of a meal made with care.
Perfect for family dinners or when you need a taste of home. Here’s how to make it right.
Ingredients for Macaroni and Cheese Recipe from Scratch
A proper roux and three cheeses create that ultra creamy texture you crave.
| Ingredient | Amount | Notes |
|---|---|---|
| Elbow Macaroni 🍝 | 12 oz | Al dente for texture contrast |
| Unsalted Butter 🧈 | ½ cup | For rich, creamy roux |
| All-Purpose Flour 🌾 | ⅓ cup | Thickens the cheese sauce |
| Whole Milk 🥛 | 3 cups | Full-fat for creaminess |
| Sharp Cheddar Cheese 🧀 | 2 cups | Shredded from block |
| Gruyère Cheese 🧀 | 1 cup | Shredded, nutty flavor |
| Parmesan Cheese 🧀 | ½ cup | Freshly grated preferred |
| Dijon Mustard 🟡 | 1 tbsp | Adds tangy depth |
| Garlic Powder 🧄 | ½ tsp | Enhances savory notes |
| Onion Powder 🧅 | ½ tsp | Balances cheese richness |
| Salt 🧂 | 1 tsp | Adjust to taste |
| Ground Black Pepper 🌶️ | ¼ tsp | Freshly ground preferred |
| Ground Nutmeg 🌰 | 0.125 tsp | Pinch for warmth |
[recipe_ingredient_scaler]
The cheese quality is non-negotiable here. Sharp cheddar from a block melts smoothly—pre-shredded contains anti-caking agents that make the sauce grainy. Gruyère adds depth, while Parmesan brings umami. Most grocery stores carry all three; Whole Foods has excellent selections if you want to splurge. Freshly grate the Parm yourself for the best melt and flavor.
No Gruyère? Fontina or Monterey Jack work well as substitutes. For a stronger flavor, try aged Gouda. The milk needs to be whole fat—low-fat versions won’t give you that velvety consistency. If you’re out of Dijon, yellow mustard at half the amount can work in a pinch, but the flavor won’t be as complex. The nutmeg is subtle but worth it.
This reheats best with a splash of milk to loosen the sauce. Keeps 4-5 days in the fridge, freezes for 3 months. Store cheese in the coldest part of your fridge, wrapped tightly in parchment paper to prevent drying.
Why You’ll Love This Recipe
- One Pot Wonder: I love that this comes together in a single saucepan—no colander, no extra bowls, just melt, whisk, and stir.
- Sharp Cheddar Magic: That tangy bite from the sharp cheddar makes every forkful taste like it came from a gourmet kitchen.
- Feeds the Crowd: Honestly, it’s my go-to for potlucks, lazy Sundays, or when the kids have friends over for dinner.
- Budget Stretch: A pound of pasta and a block of cheese feed my family for two nights without breaking the bank.
Step-by-Step Instructions for Macaroni and Cheese From Scratch
Master the technique for silky sauce and perfect texture with this proven approach.
Step 1: Cook the Elbow Macaroni Al Dente
Bring a large pot of salted water to a rolling boil over high heat. Add the 12 oz Elbow Macaroni and cook for 7-8 minutes, stirring occasionally, until the pasta is just slightly firm to the bite.
Drain immediately in a colander and rinse briefly with cool water to stop the cooking process. This prevents the pasta from becoming mushy when combined with the cheese sauce later. Shake off excess water but don’t dry completely—the slight moisture helps the sauce cling.
Step 2: Create a Smooth Roux Base
In a large saucepan, melt the 0.5 cup Unsalted Butter over medium heat until it begins to foam but doesn’t brown. Add the 0.33 cup All-Purpose Flour all at once and whisk constantly for 2-3 minutes until the mixture turns a light golden color and has a nutty aroma.
This roux is the foundation of your cheese sauce. Cooking it properly removes the raw flour taste and develops depth of flavor. The mixture should be smooth and bubbly, thick enough to coat the back of a spoon. Don’t let it darken beyond pale gold or it will overpower the cheese flavors.
Step 3: Build the Creamy Cheese Sauce
Gradually whisk in the 3 cups Whole Milk, 1 cup at a time, ensuring each addition is fully incorporated before adding more. Bring to a gentle simmer, then reduce heat to medium-low. Cook for 3-4 minutes until the sauce thickens enough to coat the back of a spoon.
Remove from heat and stir in the 1 tbsp Dijon Mustard, 0.5 tsp Garlic Powder, 0.5 tsp Onion Powder, 1 tsp Salt, 0.25 tsp Ground Black Pepper, and 0.125 tsp Ground Nutmeg. Then add the 2 cups Sharp Cheddar Cheese, 1 cup Gruyère Cheese, and 0.5 cup Parmesan Cheese in batches, stirring until each addition is completely melted and smooth before adding more.
Step 4: Combine and Finish for Optimal Creaminess
Add the cooked elbow macaroni to the cheese sauce and stir gently to combine. If the sauce seems too thick, add a splash of warm milk to reach your desired consistency. The pasta should be fully coated with a velvety, glossy sauce that clings to each piece.
Let the mixture sit for 2-3 minutes off heat to allow the pasta to absorb some of the sauce. This final rest ensures the flavors meld completely. Serve immediately while hot and creamy, or transfer to a baking dish for a crispy top under the broiler if desired.
Pro Tips For Making Macaroni And Cheese Recipe From Scratch
- Cook Pasta Al Dente: Boil the elbow macaroni for 1-2 minutes less than the package says—I learned this the hard way after ending up with mushy noodles in my first few batches.
- Grate Your Own: Skip pre-shredded cheese; it’s coated in anti-caking agents that make your sauce grainy. Sharp cheddar grated fresh melts smoothly every time.
- Temper the Milk: Warm the whole milk before adding it to the roux—cold milk can cause the sauce to seize up. About 30 seconds in the microwave does the trick.
- Add Cheese Off Heat: Remove the pot from the burner before stirring in the cheddar. High heat can make the cheese stringy or oily, and nobody wants that.
Flavor Customization for These Flavors
Spice It Up
Add ½ tsp cayenne pepper or 1 tsp smoked paprika to the roux for a subtle kick. I love how the warmth cuts through the richness without overpowering the cheese flavors. A pinch goes a long way with sharp cheddar. 🌶️
Herb Infusion
Stir in 1 tbsp fresh thyme leaves or 1 tsp dried mustard with the seasonings. Thyme adds an earthy note that pairs beautifully with Gruyère. My grandmother always used a sprig of fresh rosemary for special occasions.
Protein Boost
Fold in 1 cup cooked bacon crumbles or 1 cup diced ham at the end. The salty crunch contrasts perfectly with the creamy pasta. I often use leftover rotisserie chicken from the neighborhood grocery store for a quick addition.
Veggie Addition
Mix in 1 cup steamed broccoli florets or ½ cup sautéed mushrooms for texture and color. The broccoli stays vibrant if blanched first. I always keep frozen peas on hand for a fast, kid-friendly version.
Crunchy Topping
Transfer to a baking dish, top with ½ cup panko breadcrumbs mixed with 2 tbsp melted butter, and broil for 2-3 minutes. The golden crust adds delightful contrast. My family fights over the crispy edges.
Luxury Upgrade
Swap 1 cup of cheddar for Gouda or add ¼ cup cream cheese for extra tang. Aged cheeses develop more complex flavors. I splurge on Whole Foods cheeses for special dinners.
Nutrition Facts
Frequently Asked Questions
Can I use pre-shredded cheese?
I don’t recommend it. Pre-shredded contains anti-caking agents that prevent smooth melting. For the creamiest texture, always shred block cheese yourself just before using.
How do I prevent a grainy sauce?
Keep heat at medium-low when melting cheese and stir constantly. Adding cheese gradually in small batches also helps maintain that silky consistency.
What if my sauce is too thick?
Stir in warm milk, 1 tablespoon at a time, until it reaches your desired consistency. The pasta will absorb some sauce as it sits.
Can I make this ahead?
Yes! Store in an airtight container for up to 4-5 days. Reheat gently with a splash of milk to restore creaminess.
- Recipe for Boneless Pork Chops in Cast Iron Skillet: Sear and Baste to Juicy Perfection - October 3, 2026
- Recipe for Boneless Cross Rib Roast: Slow-Roasted Beef with Herb Crust - October 3, 2026
- Hamburgers in Sauce Recipe Crock Pot: Slow-Cooked Savory Delight - October 3, 2026