A little friendly competition never hurt anyone 😏

Every year, our Friendsgiving somehow turns into a full-blown culinary showdown. Our friend group is full of incredible cooks—like, people who casually show up with homemade sourdough and brown butter mashed potatoes kind of cooks.
So this year, I pulled out all the stops. My mission?
- Bring the most classic dish of the night.
- Give it an unexpected twist.
- Make it so dang good everyone couldn’t help but go back for seconds.
And that’s exactly what this French Onion Mac and Cheese delivered.
It’s creamy, rich, and loaded with caramelized onions, melty Gruyère, and golden breadcrumbs. I actually built this recipe off my reader-favorite French Onion Chicken, testing (and retesting!) until I nailed that perfect balance of sweet onions, sharp cheese, and ultra-silky sauce.
Let’s just say… the second the first spoonful hit the table, I knew I had my crown 👑.


Ingredients and Substitutions
For the exact measurements and detailed instructions, please see the recipe card below.


- Pasta: Choose a noodle with plenty of curves and ridges to trap that creamy cheese sauce. Classic elbows and shells, or even cavatappi are perfect since every bite catches the caramelized onion goodness. Avoid long noodles, though, since they won’t hold the sauce as well.
- Sweet Onions: You’ll need about 3 large (or 4 medium) onions, that are thinly sliced. (This comes out to about 2 ½ pounds!) Sweet onions caramelize beautifully and give that signature French onion flavor. Yellow onions will work, but steer clear of red or white–they’re way too pungent.
- Butter + Olive Oil: A mix of both adds richness and helps the onions caramelize without burning. You’ll use butter again later for the roux and topping, so it’s worth it to use a good quality European kind if you have it available!
- Garlic: Four cloves, finely minced, bring just the right punch without overpowering the caramelized flavor.
- Beef Broth, Worcestershire, and Balsamic Vinegar: These three are my secret ingredients that give it that classic French onion flair.
- Brown sugar: You’re gonna have to trust me on this one. Just a little bit balances out all that sharp, salty flavor of the cheeses and gives an extra depth to those caramelized onions.
- Flour + Milk: Together, they form the base of the creamy cheese sauce. Whole milk gives the best texture, but you can swap in 2% if that’s what you have on hand.
- Cheese: Freshly shredded Gruyère and Parmesan are the stars here. Gruyère melts into silky perfection with that nutty, slightly sweet flavor, while Parmesan adds sharpness and depth.
- Herbs: Dried thyme and rosemary are essential in a classic French onion soup.
- Panko Breadcrumbs: They’re lighter and crispier than regular breadcrumbs, giving you that buttery crunch that contrasts the creamy sauce underneath. I like to mix mine with a bit of butter to give them that gorgeous golden finish when baked!
Pro Tip: Skip the bags of pre-shredded cheese (it won’t melt as smoothly!) and spend a few extra minutes to freshly grate blocks of cheese. It will TOTALLY be worth it!
Step-by-step Instructions
Please see the recipe card below for the full instructions, ingredient amounts, and a printable recipe.
Caramelize the onions.
Add the onions to a large oven-safe skillet (I love my 12-inch cast iron!) with the butter and oil. Cook 25-30 minutes, stirring occasionally, until golden and caramelized.
Pro Tip: Try to slice the onions as thinly and uniformly as possible so they cook up quickly and at a similar rate!


Give it that classic French Onion flavor.
Stir in garlic, broth, Worcestershire, balsamic, brown sugar, and salt, then simmer until thickened and jammy. Set aside ¾ cup for topping.


Make the cheese sauce.
Melt butter in a Dutch oven or a separate pot, whisk in the flour, and cook briefly. Slowly add the milk until thickened, then stir in salt, pepper, thyme, rosemary, Gruyère, and Parmesan until smooth and creamy.


Combine everything together.
Stir the cooked pasta and caramelized onions (except the reserved portion) into the cheese sauce. Spread into the skillet, top with the reserved onions, and finish with that buttery panko topping.

Bake in the oven until bubbly.
Bake at 400°F for 12-15 minutes, or until the breadcrumbs are golden and the cheese is bubbly.
Pro Tip: If you like your topping extra crunchy, pop it under the broiler for a minute or two at the end!

Make Ahead and Storage Tips
This French Onion Mac and Cheese is made for prepping ahead—especially during the holidays when oven space (and sanity!) are limited.
To make ahead:
Caramelize the onions and cook the pasta up to a day in advance. Store them separately in airtight containers in the fridge. You can also make the cheese sauce, let it cool, and refrigerate it. On the day of, just warm the sauce gently over low heat, combine everything, assemble with the topping, and bake until bubbly.
To store leftovers:
Let the mac cool completely, then cover tightly and refrigerate for up to 3–4 days. Reheat in a 350°F oven until warmed through, or microwave individual portions with a splash of milk to keep things creamy.
Pro Tip: Keep the Panko topping separate until you’re ready to bake so it stays crisp instead of soggy.
FAQs
Gruyère is a must. It’s what gives French onion soup its signature nutty, slightly sweet flavor. I love pairing it with Parmesan for extra richness and a little salty bite. You can also mix in mozzarella or Swiss if you want a stretchier, meltier texture.
Definitely! Just transfer everything to a 9×13-inch baking dish after combining the pasta and sauce, then add the onions and panko topping before baking.
Yes! The secret to that deep, sweet, savory flavor is slow caramelization. It takes around 20–25 minutes, but it’s SO worth it. If you rush, the onions will just sauté, not caramelize.
Tap stars to rate!
French Onion Mac and Cheese

email this recipe!
Ingredients
- 1 pound pasta elbows, cavatappi, or shells
- 1 ½ pounds sweet onions thinly sliced (about 2-3 large, or 4 medium)
- 6 tablespoons salted butter divided
- 1 tablespoon olive oil
- 4 garlic cloves finely minced
- ½ cup beef broth
- 1 tablespoon Worcestershire sauce
- 1 tablespoon balsamic vinegar
- 1 tablespoon brown sugar
- 2 ½ teaspoon salt divided
- 3 tablespoons all-purpose flour
- 2 ½ cups whole milk
- 3 cups freshly shredded Gruyère cheese
- 1 cup freshly grated Parmesan cheese
- 1 teaspoon dried rosemary
- 1 teaspoon dried thyme
- ½ teaspoon black pepper
- ½ cup panko breadcrumbs
- Fresh thyme optional
Instructions
- Preheat the oven to 400℉.
- Caramelize the onions: Add 2 tablespoons of the butter and the olive oil to a large oven-safe skillet over medium heat. Once the butter has melted, add the onions and cook for 25-30 minutes, stirring occasionally, or until the onions are golden brown and caramelized.1 ½ pounds sweet onions, 1 tablespoon olive oil
- Stir in the garlic and cook for 30 seconds, or until fragrant. Add beef broth, ¾ teaspoon salt, Worcestershire, balsamic vinegar, and brown sugar. Simmer for 5-10 minutes, or until reduced and most of the liquid has evaporated. Reserve ¾ cup of the onions for the topping.4 garlic cloves, ½ cup beef broth, 1 tablespoon balsamic vinegar, 1 tablespoon brown sugar, 1 tablespoon Worcestershire sauce
- Cook the pasta: While the onions are cooking, bring a large pot of salted water (2 teaspoons salt in water) to a boil. Add pasta and cook 1-2 minutes shy of al dente. Drain and set aside.1 pound pasta
- Make the cheese sauce: Melt 3 tablespoons of the butter in a separate skillet or a Dutch oven over medium heat. Whisk in the flour and cook for 1-2 minutes. Slowly pour in the milk ½ cup at a time, whisking continuously, until thickened. Reduce heat to low and stir in 1 ½ teaspoons salt, pepper, thyme, rosemary, Gruyère and Parmesan until smooth.3 tablespoons all-purpose flour, 2 ½ cups whole milk, 3 cups freshly shredded Gruyère cheese, 1 cup freshly grated Parmesan cheese, 1 teaspoon dried rosemary, 1 teaspoon dried thyme, ½ teaspoon black pepper
- Make the topping: In a small bowl, melt the remaining 1 tablespoon of butter and then mix in the Panko breadcrumbs with ¼ teaspoon salt.½ cup panko breadcrumbs
- Combine it all together: Add the cooked pasta and the cheese sauce into the oven-proof skillet with the onions. Stir until the pasta is well coated. Spread the reserved onions on top and then sprinkle evenly with the breadcrumb topping.
- Bake for 12-15 minutes, or until golden and bubbly. To get those extra crispy bits, pop under the broiler for another few minutes before serving with fresh rosemary and thyme, if desired.
Tap stars to rate!
Notes
- Onions: Sweet onions are the way to go! They caramelize beautifully and bring that classic French onion flavor. Yellow works, but skip white or red — they’re way too sharp.
- Pasta: Choose something with lots of curves, ridges, or hollows. Elbows, shells, or cavatappi are perfect since they catch all that creamy cheese sauce.
- Caramelizing: Keep an eye on those onions and give them a stir every few minutes. Slow and steady wins here. They’ll turn golden and jammy without burning.
- Cheese: Freshly grated all the way! Pre-shredded has anti-caking agents that mess with the melt (and nobody wants clumpy mac and cheese).
- Breadcrumbs: Panko makes all the difference. They bake up light, golden, and super crunchy.
- Skillet: If you’ve got a cast-iron or enameled skillet, use it! It holds heat beautifully and gives those onions their signature caramelized flavor.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.
More Show Stopping Holiday Sides
Wow friends and family all season long with these delicious side dishes.











Five stars yum so good!
Yay! So happy to hear you enjoyed the recipe, Gena! Thanks so much for taking the time to leave a comment and rating!
This was really good. I will definitely make it again.
Yay! So happy to hear you enjoyed the recipe, Teresa! Thanks so much for taking the time to leave a comment!