
Nothing says comfort like this over-the-top Bacon Mac and Cheese when you need serious cozy vibes. Each forkful has smoky bacon, sweet slow-cooked onions, and a dreamy blend of cheddar, Gruyere, and Parmesan that covers every bit of pasta. It's guaranteed to wow at a potluck or make a regular weeknight dinner feel extra fancy, and you won't break a sweat while making it.
I made this first on a cold Sunday and my family was hooked halfway through their bowls. It’s been my not-so-secret winner for holidays and any night I want to treat guests.
Tasty Ingredients
- Parmesan cheese: gives a salty kick and helps thicken everything up
- Cheddar cheese: brings that classic sharp flavor every cheesy dish needs
- Gruyere cheese: melts perfectly, adding nutty, creamy goodness (buy it in a block and shred it fresh)
- Hot sauce: just a dash, perks up the flavors without making it spicy
- Garlic powder: rounds out the sauce, make sure it’s fresh and aromatic
- Dried thyme: keeps things tasting herby and adds savory notes
- Mustard powder: brightens up the cheese and cuts through the richness
- Milk: smooths out the cream—stick to whole milk for extra creaminess
- Heavy cream: for that thick, velvety, stick-to-your-pasta sauce (full fat works best!)
- Flour: thickens the cheese sauce, go for unbleached all-purpose if you can
- Medium pasta shells: their shape scoops up loads of sauce, but any ridged pasta will do
- Thick-cut hickory smoked bacon: adds the ultimate smoky, savory flavor with a meaty bite
- Olive oil: helps butter caramelize onions without burning
- Butter: makes the onions rich and helps them brown perfectly (unsalted is your friend)
- Yellow onions: cook down sweet and give the cheese sauce a flavorful bump
- Hand-grate your cheese for the smoothest, dreamiest melted cheese—pre-shredded just doesn't do it
Easy Step-by-Step Directions
- Chop and Crisp the Bacon
- Slice bacon into three short pieces per strip so it cooks evenly and crisps up fast. Lay the chunks in a cold skillet, turn the heat on low, and let them crisp up nice and slow. Flip them occasionally. Scoop them onto a paper towel to drain and hold onto about four tablespoons of bacon fat for the next move.
- Pasta & Sauce Next
- While the bacon’s working, get a pot of salted water ready for your shells. Boil till they’re just firm to the bite, then drain them well. Pour bacon fat into a saucepan and crank to medium heat. Whisk in flour so it bubbles gently and loses that floury smell (just two minutes!). Slowly stream in heavy cream while whisking so it stays smooth, then add the milk the same way. Sprinkle in dried thyme, garlic powder, mustard powder, and a couple drops of hot sauce. Keep stirring and let bubble gently.
- Perfect Those Onions
- Cut onions into even slices about a quarter-inch thick. Toss them with butter and olive oil in a pan over medium, mixing so they all get shiny. Turn the heat to low and stir every five minutes or so. It could take up to 50 minutes; you’re looking for soft, deep-brown, and sweet. If they start charring, just lower the heat and keep stirring. Set them aside once you’ve hit that rich caramel color.
- Finish and Fold Together
- When the sauce is steamy (not boiling), drop the heat and add all your shredded cheeses a bit at a time. Stir frequently to melt it into the smoothest sauce. Add in those caramelized onions, fold in your drained pasta, and gently toss until every shell gets coated. Crumble the crispy bacon, tossing most in for smoky bites everywhere and saving a little for the top. Throw chopped parsley over everything if you’ve got it handy and want a pop of green.

I always go for extra Gruyere. That rich, melty flavor is what makes this so addictive—and when my mom comes over, we raid the pan for the cheesiest bits, just like I did as a kid. We both love that nutty bite that takes everything up a notch.
Storing Leftovers
Let everything cool, scoop into a container that seals up tight, and tuck it in the fridge for up to three days. When you’re ready for more, microwave it gently and it’ll come back creamy. Want to freeze ahead Put it in single servings—the sauce might split a little but it’s still totally worth having on hand.
Swapping Ingredients
No Gruyere Grab some extra cheddar, or add Monterey Jack for more melt and a milder vibe. Ran out of pasta shells Elbow macaroni or cavatappi scoop up sauce just as well. Want it pork-free Smoked ham or turkey fit perfectly too.
How To Serve
Honestly, it’s great solo—but try it with broccoli or a crisp salad for balance. Want something heartier Serve with grilled sausage or a bit of roast chicken on the side. It works as a main or nails it as a side (it’s awesome with barbecue or baked beans).

Background and Traditions
This dish is pure American comfort, whether in diners or fancy restaurants. The pull-apart onions and Gruyere bring in a bit of French flair, and at my house, making a big batch means people come hungry and nobody leaves without seconds.
Frequently Asked Questions
- → How do I get bacon extra crispy?
Start bacon in a cold pan, cook slow on low, and flip till both sides get evenly crisp. Don’t rush—let the fat melt out for best drippings.
- → Can I swap the pasta type?
For sure. Shells work great, but elbows, corkscrews, or even rotini soak up sauce just as nicely.
- → What’s good about caramelizing onions?
Letting onions turn golden sweet brings tons of yummy flavor, mixing perfectly with bacon and cheese.
- → How do I get a smooth cheese sauce?
Take your pot off the stove, then stir in cheese slowly after it cools a bit. Keep mixing so it melts without getting lumpy.
- → Do I really need all those cheeses?
Nope, just use what you’ve got. Add more cheddar or swap in Monterey Jack if you don’t have gruyere or parmesan.
- → What’s the best way to keep leftovers?
Once cool, pop it in an airtight box and stick it in the fridge up to three days. Heat gently so it stays creamy.