If you’ve ever wished the boxed stuff came with a grown-up upgrade and a side of bragging rights, this is your moment. Tender shell macaroni swimming in a creamy cheese sauce made with three cheeses (yes, three!)—all ready in about 20 minutes. The best part? The whole family will think you worked way harder than you did.

My mac and cheese recipe uses a whole pound of pasta and a whole pound of cheese. It’s enough to feed a small army—or at least a hungry family with leftovers to spare. Can you imagine how many boxes of mac and cheese you’d have to tear open to get this much cheesy goodness?
Now, don’t get me wrong—I’m not knocking boxed mac and cheese. I’ve got a box (or three) in my pantry right now. It’s convenient, it’s easy, and the kids absolutely love it. Plus, they can make it all by themselves, and I can definitely get behind that. But sometimes, I want to make enough to feed a crowd and, let’s be honest, leftover mac and cheese never hurt anybody.
We eat this as a main dish with a salad and vegetable side dish for a complete and balanced easy meal.
Looking for a fancier pasta dish that's also easy and delicious? Check out my Tuscan Ravioli with Chicken.

Jump to:
Ingredient Photo
See recipe card for exact amounts.

Ingredient Notes, Substitutions & Additions
This easy recipe uses just seven simple ingredients, and while the section title says “substitutions”, the list is gonna be short—we’re making a classic version here.
- Pasta Shells: I use small shells, but hey, use whatever size makes you happy. Heck, you can even swap in macaroni if that’s what you’ve got on hand.
- Cheese: This is where I get a two-for-one deal. I use half a pound of sharp cheddar cheese and half a pound of colby jack. But feel free to use whatever combo of cheese you love. Monterey jack, white cheddar, pepper jack, or even a touch of parmesan cheese can work for some, or all, of the cheese in this recipe.
- Milk: I use whole milk because that’s what we keep in the fridge. You can absolutely use 2% or low-fat, just know your sauce will be a little thinner. Heavy cream is an option too, but your sauce might get too thick.
- Butter: I go with unsalted butter, but salted or even margarine will work in a pinch.
- Flour: This teams up with the butter to make a roux, which thickens the sauce.
- Salt: The only seasoning I always use. That said, feel free to sprinkle in garlic powder, onion powder, dry mustard powder, paprika, or seasoned salt if you’re feeling fancy.
Step-By-Step Instructions (with photos)
See recipe card below for complete directions with amounts.

Step 1: Melt butter over medium heat, add flour and cook, whisking constantly for a minute or two.

Step 2: Add the milk and cook, stirring constantly over medium-high heat until thick and bubbly, about 4-5 minutes.

Step 3: Take off the heat and add the cheese, return to low heat and stir until the cheese is melted.

Step 4: Add the cooked shells and stir until combined.

Frequently Asked Questions
While I’m totally a fan of the convenience, it just doesn’t work well in a dish like this. Pre-shredded cheese is coated to help preserve it, but that same coating keeps it from melting smoothly. For the creamy sauce we’re after, freshly grated cheese is the way to go.
Store any leftover mac and cheese in an airtight container in the fridge for up to 3 days.
We usually reheat it in the microwave in 30-second intervals, stirring each time until it’s heated through. You can also warm it on the stovetop in a saucepan—just add a splash of milk or water if it seems a little dry.
Did you love this recipe?
Please leave a review and 5-star rating below!

Homemade Shells Mac and Cheese Recipe
Ingredients
- 1 lb small pasta shells
- 2 tablespoon butter
- 2 tbsp flour
- ½ teaspoon salt
- 3 cups milk
- 8 oz sharp cheddar cheese
- 8 oz colby jack cheese
Instructions
- Cook the pasta al dente according to the package directions.1 lb small pasta shells
- Grate the cheeses while the pasta cooks.8 oz sharp cheddar cheese, 8 oz colby jack cheese
- Start the sauce when you drop the pasta: Melt the butter in a large pot or Dutch oven over medium heat. Add the flour and salt, and whisk constantly for 1–2 minutes to cook out the raw flour taste.2 tablespoon butter, 2 tablespoon flour, ½ teaspoon salt
- Slowly whisk in the milk, increase the heat to medium-high, and continue whisking until the sauce is thickened and bubbly—about 4–5 minutes.3 cups milk
- Remove the pot from the heat and stir in the cheeses until melted.
- Reduce the heat to low, return the pot to the burner, and stir in the cooked pasta until everything is well combined and creamy.
Leave a Reply