This Homemade Mac and Cheese Sauce is ultra creamy, cheesy, and made completely from scratch—no Velveeta or powdered mix in sight. The secret? A rich roux-based sauce made with evaporated milk, two types of cheddar, Swiss, and nutty Gruyère. It’s cozy, customizable, and way better than anything from a box. Just toss it with your favorite cooked pasta and dinner is served!

Mac and cheese can be a side dish (or main dish) – it’s a personal favorite for me! If you also enjoy different mac and cheese recipes, you might want to try my Dutch Oven Mac and Cheese or my Baked White Cheddar Mac and Cheese! Both are rich and creamy with their unique twists.
Looking for something more? Try my French Onion Mac & Cheese! This dish has all of the flavors of a classic French onion soup!
Table of Contents
- Why You’ll Love This Recipe
- What is a Roux?
- Ingredients & Substitutions
- How to Make Homemade Mac and Cheese Sauce
- How to Make the Cheese Sauce Ahead
- Recipe Serving Suggestions
- Expert Tips & Variations
- Most Common Mistakes
- Additions & Variations
- Recipe FAQs
- More Sauce Recipes
- Homemade Mac and Cheese Sauce Recipe
Why You’ll Love This Recipe
- No Processed Cheese: Only real blocks of cheese for maximum flavor and melt.
- Ultra Creamy: Evaporated milk helps create an extra silky sauce.
- Customizable: Swap in different cheeses or use your favorite pasta shapes.
- Family Favorite: A classic comfort food the whole crew will love.
What is a Roux?
A roux is a mixture typically made with equal parts fat and flour. For the fat portion, butter, oil, lard, etc. can be used.
This mixture is whisked together and cooked until a paste forms. This paste is used to thicken sauces.
In this case, milk is added to create a bechamel sauce, which is the base for this easy cheese sauce recipe.
Ingredients & Substitutions

- Unsalted Butter: Forms the base of the roux. If using salted butter, reduce added salt slightly.
- All-Purpose Flour: Thickens the sauce. Be sure to cook it for 1–2 minutes to eliminate the raw taste.
- Evaporated Milk: Evaporated milk has a richer flavor and less water than regular milk. I have not tested this recipe without it, but you should be able to replace it with half and half.
- Milk: Any type of milk will work. I have tried this recipe with both skim and 2% milk. I do not recommend non-dairy milk.
- Hot Pepper Sauce: This does not make the sauce spicy, it just adds a tangy flavor. I highly recommend it, but it can be omitted.
- Granulated Garlic, Onion Powder, & Ground Mustard: Build savory flavor. You can sub fresh garlic or Dijon for a slightly different flavor twist.
- Kosher Salt: All of my recipes are tested with Morton kosher salt unless noted otherwise. It is the best salt for everyday cooking because of its size and flavor. If using table salt, the amount should be reduced. I highly recommend picking up some kosher next time you are at the store!
- Black Pepper: Season to taste. Don’t skip the black pepper!
- Cheese: You need 20 ounces (5 cups) of cheese for this recipe. Use your favorites. I prefer the combination of swiss, cheddar, and gruyere. You can also try parmesan cheese, colby jack, American, smoked gouda, sharp white cheddar, or pepper jack.
- Pasta: Depending on how cheesy you like your mac and cheese, you can adjust the amount of pasta. For baked mac and cheese with bread crumbs, I recommend 16 ounces, because it dries out in the oven. For stovetop, you can use up to 16-20 ounces. Save some pasta water to thin the sauce if needed.
Complete list of ingredients and amounts is located on the recipe card below.
How to Make Homemade Mac and Cheese Sauce
Quick Overview
- Make the roux.
- Add the milk.
- Season the base.
- Thicken the sauce.
- Melt the cheese.
- Add the pasta.
Step by Step Instructions

Cook the roux for 1-2 minutes to remove the raw flour taste.
- Melt Butter: Over medium heat, in a large pan, melt the butter.
- Add Flour: Whisk in the flour and cook for 1-2 minutes.
- Add Dairy: Add in evaporated milk and regular milk.
- Dissolve Flour: Whisk until the flour dissolves.

The sauce should just be thick enough to coat the back of a spoon.
- Add Spices & Hot Sauce: Add hot sauce, garlic, onion, mustard powder, salt, and pepper.
- Combine Spices: Whisk until spices are combined.
- Simmer Sauce: Continue stirring and simmering the sauce (not boiling) until it thickens enough to coat the back of a spoon (about 4 minutes). It will continue to thicken when you add the cheese.
- Add Swiss Cheese: Stir in the swiss cheese until melted.

Be sure to not overheat the cheese homemade mac and cheese sauce.
- Add Cheddar & Gruyere Cheese: Add the cheddar and gruyere.
- Stir: Stir until melted. The sauce should be smooth.
- Add Pasta: Add the cooked pasta to the sauce.
- Combine: Fold until combined. The sauce will continue to thicken as it cools.
How to Make the Cheese Sauce Ahead
This cheese sauce can easily be made in advance to save time on busy weeknights. Follow these simple steps to prep it ahead and store it properly:
- Cook the Sauce: Prepare the mac and cheese sauce as directed in the recipe—melting the butter, whisking in the flour, adding the milk and spices, and stirring in the cheeses until smooth and creamy.
- Cool Completely: Once the sauce is finished, remove it from the heat and let it cool to room temperature. Stir occasionally to prevent a skin from forming on top.
- Transfer to a Container: Pour the cooled sauce into an airtight container. A glass or BPA-free plastic container with a tight-fitting lid works best.
- Refrigerate: Store the sauce in the fridge for up to 2 days. Make sure it’s completely sealed to prevent it from absorbing any odors.
- Reheat Gently: When ready to use, pour the sauce into a saucepan and reheat over low heat, stirring frequently. Add a splash of warm milk to loosen the sauce as it heats—this helps bring back that ultra-creamy texture.
- Add Freshly Cooked Pasta: Once the sauce is warm and smooth, stir in freshly boiled pasta. Toss until fully coated and enjoy!
Recipe Serving Suggestions
You don’t have to be limited to serving this cheese sauce with just pasta. Think outside the box and serve this cheese sauce with bread and raw vegetables as a cheese fondue. If you do stick to serving it with pasta, here are some of my favorite main dish recipes:
- Crispy Chicken Tenders: A weeknight must. Juicy, flavorful, and perfectly golden without the deep fryer, they’re a total crowd-pleaser!
- Oven Baked Boneless Pork Chops: Finished with a rich and tangy mustard cream sauce, these pork chops make an elegant yet easy weeknight meal with simple ingredients.
- Dutch Oven BBQ Chicken: This chicken is sweet, sticky, and super tender. The best part? It only takes about 30 minutes to make!
- Cast Iron Skillet Lamb Chops: These lamb chops are juicy and finished with a tangy herb garlic sauce. You only need a few simple ingredients to make these.
Expert Tips & Variations
- Grate Your Own Cheese: Pre-shredded cheese contains anti-caking agents that prevent smooth melting. You can also use pre-sliced cheese. It does not usually have ant-caking agents.
- Whisk Vigorously: This will ensure the roux is combined with the milk.
- Add Liquid Slowly: To prevent your sauce from becoming lumpy, add liquids slowly.
- Simmer, Don’t Boil: Boiling can cause the sauce to separate or get grainy. Keep it at a gentle simmer.
- Thin If Needed: If your sauce gets too thick, add a splash of warm milk to loosen it.
Most Common Mistakes
- Skipping the Roux Cook Time: Not cooking the flour long enough can lead to a grainy or floury-tasting sauce.
- Boiling the Sauce: High heat can cause the dairy to separate and curdle. Always keep the sauce at a gentle simmer.
- Using Pre-Shredded Cheese: It doesn’t melt as well due to added starches. Always shred cheese fresh from the block.
- Overcooking the Cheese: Add cheese off the heat or over low heat to avoid clumping or breaking.
Additions & Variations
- Add Protein: Stir in cooked bacon, diced ham, or shredded rotisserie chicken for a heartier dish.
- Make it Spicy: Use pepper jack cheese or add a pinch of cayenne or red pepper flakes.
- Veggie Boost: Fold in steamed broccoli, sautéed spinach, or peas.
- Baked Version: Pour the mac and cheese into a baking dish, top with buttered breadcrumbs, and bake at 375°F for 20–25 minutes until golden and bubbly.
- Adjust the Amount of Pasta: Pictured is 16 ounces of elbow macaroni folded with all of the sauce. This results in a super saucy macaroni and cheese, which is ideal for baked macaroni or if you plan to keep it warm in a slow cooker. Use more pasta and a splash of pasta water for a lighter coat (best for stovetop).

Recipe FAQs
Typically the base of a sauce for mac and cheese is bechamel which is made from a roux and milk. A roux is a combination of fat and flour, in this case butter. The cheese is melted into this sauce.
Aside from cheese, butter, cream, and milk make it creamy. If your macaroni and cheese is dry, you may have too thick of a sauce or not enough sauce. Add some pasta water, chicken broth, or milk to moisten it.
I like to use a combination of swiss, cheddar, and gruyere. Gruyere adds nice flavor and swiss adds some creaminess. Cheddar adds a bit of both.
More Sauce Recipes
If you try this recipe, please leave a star rating in the recipe card below and/or comment! I always appreciate your feedback. Follow me on Pinterest, Facebook & Instagram.

Homemade Mac and Cheese Sauce
Ingredients
- 1 stick (1/2 cup) unsalted butter
- 1/2 cup + 1 Tablespoon all purpose flour
- 12 ounces (1 1/2 cups) evaporated milk*
- 3 1/2 cups milk*
- 1 Tablespoon hot pepper sauce*
- 2 teaspoons granulated garlic
- 1 teaspoon onion powder
- 1 teaspoon ground mustard
- 1 teaspoon salt, more to taste
- fresh cracked black pepper
- 8 ounces swiss cheese*
- 8 ounces mild or sharp cheddar cheese, shredded
- 4 ounces gruyere, shredded
- 16 – 20 ounces pasta for serving*
Instructions
- Melt Butter: Over medium heat, in a large pan, melt the butter.1 stick (1/2 cup) unsalted butter
- Add Flour: Whisk in the flour and cook for 1-2 minutes.1/2 cup + 1 Tablespoon all purpose flour
- Add Dairy: Add in evaporated milk and regular milk.12 ounces (1 1/2 cups) evaporated milk*, 3 1/2 cups milk*
- Dissolve Flour: Whisk until the flour dissolves.
- Add Spices & Hot Sauce: Add hot sauce, garlic, onion, mustard powder, salt, and pepper.1 Tablespoon hot pepper sauce*, 2 teaspoons granulated garlic, 1 teaspoon onion powder, 1 teaspoon ground mustard, 1 teaspoon salt,, fresh cracked black pepper
- Combine Spices: Whisk until spices are combined.
- Simmer Sauce: Continue stirring and simmering the sauce (not boiling) until it thickens enough to coat the back of a spoon (about 4 minutes). It will continue to thicken when you add the cheese.8 ounces swiss cheese*, 8 ounces mild or sharp cheddar cheese,, 4 ounces gruyere,, 16 – 20 ounces pasta
Notes
- Evaporated Milk: Evaporated milk has a richer flavor and less water than regular milk. I have not tested this recipe without it, but you should be able to replace it with half and half.
- Milk: Any type of milk will work. I have tried this recipe with both skim and 2% milk. I do not recommend non-dairy milk.
- Hot Pepper Sauce: This does not make the sauce spicy, it just adds flavor. I highly recommend it but it can be omitted.
- Cheese: You need 20 ounces (5 cups) of cheese for this recipe. Use your favorites. I prefer the combination of swiss, cheddar, and gruyere. You can also try parmesan cheese, colby jack, American, smoked gouda, sharp white cheddar, or pepper jack.
- Pasta: Depending on how cheesy you like your mac and cheese, you can adjust the amount of pasta. For baked mac and cheese with bread crumbs, I recommend 16 ounces, because it dries out in the oven. For stovetop, you can use up to 16-20 ounces. Save some pasta water to thin the sauce if needed.
- Grate Your Own Cheese: Pre-shredded cheese contains anti-caking agents that prevent smooth melting.
- Whisk Vigorously: This will ensure the roux is combined with the milk.
- Simmer, Don’t Boil: Boiling can cause the sauce to separate or get grainy. Keep it at a gentle simmer.
- Thin If Needed: If your sauce gets too thick, add a splash of warm milk to loosen it.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.














Can you make quantities of this sauce ahead of time and then reheat and add to pasta as needed?
Or could I make the roux and only add the milk and later reheat it in a crock pot or roaster and then add the cheese and pasta?
Planning for a party. 🙂
Hands down the best Mac and Cheese recipe! I changed up the cheeses, used white American and smoked Gouda, along with the Swiss cheese. Added grilled shrimp, but next time will add lobster!
Does this freeze well? Thank you!
Made this today and had to make it twice because boy did it thicken and burn quick! Totally my error. I used Smoked Gouda, Gruyere and White Cheddar. It is absolutely divine! I mistakenly used a 1/2 tblsp for the spices but it turned out great. It’s so creamy! We paired this with cellentani noodles and sautéed shrimp. This is now a staple recipe!
Awesome! Thank you. 🙂
Good work
I used bacon fat for the roux, used the extra cheese sauce with broccoli and cauliflower….veggies…healthy right.
Thanks for posting. Good work on picture of roux and step adding milk….easier to see what looking for then read.
thanks again
Sounds incredible! I am so glad you enjoyed.
My daughter is obsessed with mac and cheese. I’m making this for lunch tomorrow. Hope she likes it.
We absolutely enjoyed this. Thank you so much
Thank you!
So glad I happened upon your page. Thank you for this quick and easy bechamel sauce mac and cheese recipe. My previous go to recipe required a more time consuming method of first layering the ingredients and then baking. Your method is just as yummy in half the time.
This was so good, love how creamy the evaporated milk made everything!