Basic Macaroni and Cheese

Basic Macaroni and Cheese made from scratch is immeasurably better than anything you can buy in a store. Once you have the basic recipe down, you can add ingredients to the dish to customize it to the occasion or just to your own taste.

Jump to Recipe (or scroll for photos and riveting information...)
Advertisement - Continue Below
Macaroni, cooked and drained, in a stockpot. Macaroni and Cheese sauce being stirred together in a stock pot. Macaroni and cheese in a blue casserole dish, unbaked. Baked mac and cheese in a blue casserole with spoon and blue towel.

Featured Recipe Techniques

More about the skills used in this recipe.

Cooking School
How to Cook Pasta

Cooking pasta is something that pretty much everyone knows how to cook - boil water, add pasta. However, there are...View Technique

Advertisement - Continue Below

Watch The Recipe Video

Advertisement - Continue Below

Basic Macaroni and Cheese

  • Prep Time: 30 m
  • Cook Time: 30 m
  • Total Time: 1 h
  • Servings:


  • 1 pound dried pasta
Cheese Sauce
  • 4 tablespoons butter
  • 6 tablespoons flour
  • 2 teaspoons dried mustard powder
  • 4 cups milk room temperature
  • 3 cups grated Swiss cheese preferably Gruyère
  • 2 cups grated Cheddar cheese
  • 1 cup grated Parmesan cheese
  • 2 teaspoons salt
  • freshly ground black pepper
  • 2 cups breadcrumbs preferably coarse homemade crumbs
  • 2 teaspoons fresh thyme leaves rough chopped
  • 1 tablespoon chopped fresh parsley
  • ½ teaspoon salt


  1. Pre-heat the oven to 350˚ F.
  2. Heat a large pot of water to a boil. Add the pasta and cook according to the package directions. Drain the pasta and set aside.
  3. In the meantime, heat a 2- to 3-quart saucepan over medium heat. Melt the butter and add the flour and mustard powder. Stir, cooking for 2 minutes. Whisk in the room temperature (or warmed) milk, stirring constantly to avoid lumps. Stirring regularly, bring the sauce to a boil. Once it has boiled and thickened, remove the pan from the heat and stir in the grated cheeses, salt and pepper.
  4. In a large mixing bowl, combine the cooked pasta and cheese sauce. Transfer to a casserole or baking dish. Combine the topping ingredients and spread the mixture on top of the pasta. Cook in a 350˚ F oven for 30 minutes.
Advertisement - Continue Below
Advertisement - Continue Below
Advertisement - Continue Below

Comments (9)Post a Reply

  1. Hi Bluejean. I make my cheese sauce similar to yours but you have a lot of extra cheese and flavoring. I am definitely going to make yours next time. Love your recipes.

  2. 5 stars
    This is delicious! Just what I wanted. 😋 All I had was cheddar, and I used a couple cans of coconut milk I had on hand, but it tastes great anyway. The herb/bread crumb mix on top adds the perfect finishing touch. I might try freezing some portions for later. Thanks!

  3. 5 stars
    This Mac & Cheese recipe was delicious. I will definately try it again but I am going to try it with some grilled chicken, bacon and jalapeno peppers in it. My husband requested that combination. It also stays creamy when you reheat it whick I really liked.

  4. 4 stars
    Loved the Mac & Cheese! Came out great. Next time I’ll use half as much topping. Seemed to be quite a bit more than needed. Not a slight, just personal preference.

  5. Meredith – My baked Mac n Cheese always curdles while baking – any hints? I never had this problem when I could get government commodity cheese. My recipe calls for a white sauce. I love Mac n Cheese, especially with onions and will give your recipe a try. Thanks,

    1. You could be baking the mac and cheese too long. If the sauce is subjected to too high heat for too long, it will separate or curdle. You want the mac and cheese to bubble a little but remove it from the oven before the sauce starts to boil and separate.

  6. 4 stars
    I’m going to make this but cut recipe in half. Mine always breaks too so I appreciated your comment on that & keep an eye on it & not bake so long, but I do like the top browned.

Leave a Reply

Your email address will not be published. Required fields are marked *