If you're looking for a rich, creamy stovetop mac and cheese that delivers without the fuss, you've found it. This 3 cheese mac and cheese is everything I love in comfort food: gooey, indulgent, and ultra cheesy, with no flour needed. It comes together in about 20 minutes using sharp cheddar, gruyère, and parmesan melted into a simple whole milk sauce. It tastes like you spent all day on it, but you didn't. Whether you're making it for a cozy weeknight dinner or serving it as a side for guests, this cheesy mac and cheese never disappoints.

Jump to:
3 Cheese Mac and Cheese Recipe
Most stovetop mac and cheese recipes start with a roux, butter, and flour cooked together before you even get near the cheese. It works, but honestly? It's extra steps, extra technique, and one more thing to mess up. This recipe skips all of that, and the sauce is just as rich and creamy. No roux, no flour, no stress. That's the whole point of this one versus something like my baked macaroni and cheese.
The trick is low, steady heat. You melt butter with the seasonings, add whole milk, and bring it to a gentle simmer. The cheese does the thickening. Add it gradually, stir constantly, and the cheddar, gruyère, and parmesan melt into a sauce that's thick, creamy, and clings to every piece of pasta. Whole milk gives you something silky and rich without being too heavy. Heavy cream takes it closer to restaurant-style if that's the vibe you're going for.
What you end up with is a sauce that tastes way more complex than its ingredient list suggests. Sharp cheddar brings bold, tangy flavor. Gruyère adds a nutty depth. Parmesan ties it all together with a salty punch. Layered, interesting, and decidedly not one-note.
Key Ingredients

- Macaroni. Cavatappi is my personal favorite for this recipe because the spiral shape traps the cheese sauce inside each piece. Elbow macaroni is the classic choice and works perfectly. Shells, fusilli, or any short pasta with ridges or curves will also hold the sauce well. Avoid smooth pasta shapes like penne or rigatoni-they don't grab onto the sauce as effectively.
- Butter. Unsalted butter lets you control the salt level. Salted butter works too; just reduce the added salt slightly and taste as you go.
- Paprika. Paprika adds subtle warmth and gives the sauce a beautiful golden color. Smoked paprika is a great swap if you want a slightly deeper, more savory note.
- Whole milk. The base of the sauce. Whole milk creates a rich, silky sauce that's creamy without being too heavy. Sub with heavy cream for a thicker, richer result. 2% milk can work in a pinch, but the sauce will be noticeably thinner.
- Extra sharp cheddar. The backbone of the flavor. Extra sharp brings a bold, tangy bite that balances the richness of the sauce. You can use regular sharp cheddar, but the flavor will be milder.
- Gruyère. The secret weapon. Gruyère melts beautifully and adds a nutty, slightly sweet complexity that makes this feel more elevated than a basic cheddar-only mac. Fontina or smoked Gouda are excellent substitutes if you can't find gruyère.
- Parmesan. Finely grated parmesan melts into the sauce and adds a sharp, salty, umami depth. Don't skip this one. Pecorino Romano is a stronger, saltier substitute that works well, too.
See the recipe card below for the remaining ingredients and quantities.
Instructions

- Step 1: Bring a large pot of heavily salted water to a boil. Cook the pasta until just al dente, following the package directions. Drain well and set aside. You'll use the same pot for the sauce, so leave it on the stove. Melt the butter in the same pot over medium heat. Once it's fully melted, add the salt, black pepper, and paprika. Let the spices cook for about 30 seconds until they become fragrant. The butter will start to take on a golden color from the paprika. This quick step blooms the spices and adds depth to the finished sauce.

- Step 2: Reduce the heat to low and slowly pour in the whole milk, whisking constantly as you add it. Bring the mixture to a gentle simmer; small bubbles around the edge of the pot are exactly right. Let it simmer gently for 1-2 minutes. Do not let it boil. A full boil will cause the milk proteins to break down and the sauce to turn grainy or curdled.

- Step 3: Add the cheese a small handful at a time, stirring constantly after each addition until it's fully melted before adding the next. Work through all three cheeses this way. By the end, the sauce should be smooth, velvety, and thick enough to coat the back of a spoon. If it looks slightly loose, that's fine. It will tighten up when the pasta goes in.

- Step 4: Turn off the heat. Add the drained pasta to the pot and stir gently until every piece is fully coated in the cheese sauce. Taste and adjust salt and pepper as needed. Serve immediately. Stovetop mac and cheese is at its best right out of the pot.
Sarah's Top Tips
- Grate your own cheese. This is the single most important thing you can do for this recipe. Pre-shredded cheese is coated with anti-caking agents that prevent it from melting cleanly, and the difference is immediately obvious in the sauce. Freshly grated melts in smoothly and gives you that silky, velvety texture. It takes two extra minutes and it's worth it every time.
- Do not let the milk boil. Keep the heat low and steady throughout. Once the milk hits a full boil, the sauce can curdle or turn grainy, and there's no coming back from that. You're looking for small bubbles around the edge of the pot, not a rolling boil. If you're unsure, go lower and slower.
- Add the cheese gradually. A small handful at a time, stirring until each addition is fully melted before adding the next. Dumping it all in at once is the fastest way to end up with a clumpy sauce.
- Cook the pasta just to al dente. It continues softening in the hot cheese sauce, so pulling it a minute early keeps it from going mushy by the time it hits the table.
- If your sauce turns out too thick, add a small splash of warm milk and stir over low heat until it loosens. Add it a tablespoon at a time so you don't overcorrect.
- If your sauce turns out too thin, let it simmer gently for another minute or two before adding the pasta. It will continue to thicken as it sits.

Serving Suggestions
On its own, this mac and cheese needs nothing. Serve it in a big bowl with a crack of black pepper and an extra shower of parmesan on top. That's my favorite way.
As a side dish, it pairs beautifully with anything that has a smoky or charred element. It's a natural companion to pulled pork sliders because the richness of the cheese plays perfectly against the bold, smoky flavor of the pork. Air fryer rotisserie chicken is another easy pairing for a weeknight, and holiday ham makes this an automatic crowd-pleaser at any gathering.
If you want to balance the richness, a simple crisp salad or easy roasted broccoli cuts through the creaminess nicely and rounds out the plate.
Storage & Reheating
Fridge: Store cooled leftovers in an airtight container in the refrigerator for up to 4 days. The sauce will firm up as it chills, but that's completely normal.
Freezer: Stovetop mac and cheese can be frozen, but the texture of the sauce may change slightly after thawing and can become a little grainy or separated. For best results, freeze in individual portions in airtight freezer-safe containers for up to 2 months. Thaw overnight in the refrigerator before reheating.
Reheating: Stovetop is the best method. Add the mac and cheese to a pot over low heat with a splash of milk or cream and stir gently until creamy and heated through. Microwave also works; heat in 60-second intervals, stirring between each, and add a small splash of milk if the sauce needs loosening. The milk is the key to bringing the sauce back to life, so don't skip it.
Did you make this recipe? Leave a ⭐️⭐️⭐️⭐️⭐️ rating and a comment below-I'd love to hear how it turned out! THANK YOU!

3 Cheese Mac and Cheese
Save this Recipe!
See the full post for extra tips and photos
Ingredients
- 8 ounces macaroni
- 4 tablespoons butter
- ½ teaspoon salt
- ½ teaspoon black pepper
- ½ teaspoon paprika, or smoked paprika
- ¾ cup whole milk , or heavy cream
- 1 ½ cups extra sharp cheddar cheese, shredded
- ½ cup gruyere cheese, shredded
- ½ cup Parmesan cheese, grated
Instructions
- Cook pasta according to package instructions until al dente. Drain and set aside.8 ounces macaroni
- In the same pot, melt the butter over medium heat. Once melted, add the spices and let them cook for about 30 seconds until fragrant.4 tablespoons butter, ½ teaspoon salt, ½ teaspoon black pepper, ½ teaspoon paprika
- Turn the heat to low and add the milk, whisking to combine. Bring it to a gentle simmer, allowing it to heat up for 1-2 minutes. DO NOT LET IT BOIL.¾ cup whole milk
- Gradually add the shredded cheese to the sauce, stirring constantly until the cheese is fully melted and the sauce is smooth.1 ½ cups extra sharp cheddar cheese, ½ cup gruyere cheese, ½ cup Parmesan cheese
- Turn off the heat and add the pasta to the sauce, stirring until the pasta is fully coated.
- Taste and adjust seasoning if necessary.
Sarah's Tips
- Cool leftovers and store in an airtight container in the fridge for up to 4 days.
- Add a splash of milk or cream and reheat gently on the stovetop or in the microwave, stirring until creamy.
- Freeze in individual portions for up to 2 months. The sauce may turn slightly grainy after thawing. Stir well while reheating with a splash of milk to bring it back together.
- Cook the pasta up to a day ahead and toss with a little olive oil. Make the cheese sauce fresh right before serving.
- Grate cheese fresh from the block. Pre-shredded won't melt as smoothly.
- Don't let the milk boil. A gentle simmer is all you need. A full boil will cause the sauce to turn grainy.
- Cavatappi, elbow, shells, or fusilli all work well. Use any short pasta with ridges or curves that can hold onto the sauce.
- Fontina or smoked gouda work in place of gruyère. Pecorino romano works in place of parmesan.



Maria says
Great and easy to follow — I’ll make it again!