The rich, savory, and sweet flavors of French onion soup meet hearty mac & cheese in this comforting, elevated side dish. Featuring earthy, sweet caramelized onions, white wine, aromatic thyme, roasted garlic, nutty gruyere and sharp aged white cheddar in a creamy, buttery sauce, and toasty sourdough.
It doesn’t take much to explain why this French onion mac & cheese is a winner. Rich, sweet, earthy caramelized onions with a touch of wine, a rich, creamy and nutty gruyere and aged white cheddar, roasted garlic and thyme, plenty of sea salt and cracked black pepper, hearty pasta that holds pools of creamy sauce, and toasty sourdough to top it off.
This made our Christmas side dish lineup this year, and I can’t recommend it enough if you’re looking for elevated flavors, supreme comfort, beautiful aromas, a holiday-worthy presentation, and a guaranteed crowd-pleaser. For low-stress entertaining, I recommend making it in advance, assembling in a casserole dish, and storing in the fridge. Then it’s just 25 hands-free minutes in the oven and ready to serve.
Caramelized sweet onions
Cooking sweet onions slowly over low heat allows for caramelization of sugars and the Maillard reaction, creating a whole new realm of nutty, sweet, and roasted flavors. A little olive oil, salt, butter, white wine, and Worcestershire complement the onions and bring out their rich complexity. The aroma of French onion soup will quickly fill your house, and the flavor shines through in the mac & cheese.
Pasta
Any short pasta will work here. A wider hollow pasta like pipe rigate (pictured here) is perfect for catching lots of sauce. I also prefer shapes with a ridged surface (“rigate”) or bronze-cut pasta, which clings to sauce really well and retains a super satisfying chew when cooked. Boil until al dente in salted water, then reserve at least 1 cup of starchy, salty pasta water before draining the rest. This is super important to have later when adjusting the texture of the sauce.
Roasted garlic
This step is theoretically optional, but it’s so easy to enhance the flavor of garlic with a slow roast that I think it’s worthwhile. Take a few peeled garlic cloves, place them on a piece of foil with a drizzle of olive oil, wrap them up in the foil, then place the pouch in the oven or toaster oven at 400º for about 30 minutes. The roasting process completely removes the pungent raw garlic taste in place of a sweet, nutty, rich umami flavor. You just mash them with a fork like butter, and they blend beautifully into the sauce. (Plush they have more uses than you can count! Save extra roasted cloves for other pasta dishes, potatoes, veggies, compound butter, spreads and dips, etc.)
The sauce
Equal parts all-purpose flour and unsalted butter cook together first. Then you’ll gradually whisk in whole milk to form a sauce. Warming the milk first will help prevent the sauce from seizing when it hits the hot roux. If you don’t have whole milk, you can make the equivalent with 2/3 cup 1% milk plus 1/3 cup half & half, or about 14 Tbsp 1% milk and 2 Tbsp heavy cream. Season with sea salt, cracked black pepper, fresh thyme leaves, a pinch of nutmeg, Dijon, and mashed roasted garlic.
The cheeses
Nutty, melty gruyere brings out the classic flavor of French onion soup while making the sauce luscious and creamy. I combine it with aged white cheddar, which offers a little extra sharpness and complexity while also melting beautifully.
Sourdough
After it’s all assembled, I top it off with cubed crusty sourdough tossed in melted butter and thyme, which toasts up in the oven while it bakes. I initially thought of this as just a garnish, but the tangy sourdough flavor and crunchy texture really adds something special to the dish.
After caramelizing the onions, boiling the pasta, making the cheese sauce, and mixing it up, you can transfer it to a casserole dish (about 1.5 quart) and store in the refrigerator up to a few days, until ready to serve. Set the dish out at room temperature for about an hour before baking (because a cold ceramic or glass dish placed directly into a hot oven can crack or shatter). Top it off with cubed fresh sourdough tossed with some melted butter, and bake uncovered about 25 minutes until hot, bubbly, golden and crisp.
Of note, in the photos here, I made just half of the recipe posted below. For the full recipe, you can use a 10-inch oven-safe skillet (if baking immediately) or a medium saucepan/Dutch oven to prep, then a 1.5-quart casserole dish to store and bake. If making less than the full recipe, I would recommend using a smaller dish (like a deep 8-inch skillet, or small saucepan to prep then a small 1-quart casserole dish for baking) so the pasta doesn’t spread too thin and dry out.
Serve it up with a main dish like beef tenderloin or a rib roast for a show-stopping holiday meal, or crumble on some leftover bacon and pair it with a veggie or salad for a simple weeknight dinner.
French Onion Mac & Cheese
The rich, savory, and sweet flavors of French onion soup meet hearty mac & cheese in this comforting, elevated side dish. Featuring earthy, sweet caramelized onions, white wine, aromatic thyme, roasted garlic, nutty gruyere and sharp aged white cheddar in a creamy, buttery sauce, and toasty sourdough.
Notes
The recipe as written makes about 3 meal-sized servings or 4-6 side dish servings.
Â
*Any short pasta will work. Here I used pipe rigate, which is perfect for catching lots of sauce. Look for a ridged surface ("rigate") or bronze-cut pasta, which clings to sauce really well and retains a super satisfying chew when cooked.
Â
**If you don’t have whole milk, you can sub 1/3 cup half & half + 2/3 cup 1% milk OR 2 Tbsp heavy cream + 14 Tbsp 1% milk.
Â
***This can be baked right away OR prepared in advance, transferred to a casserole/baking dish, and stored in the refrigerator until ready to bake. If baking immediately, you can use the same 10-inch oven-safe skillet for the onions, sauce, and oven. Alternatively, if prepping in advance, use a medium saucepan or Dutch oven to prepare the onions and sauce, then transfer everything to a 1.5-quart baking dish to store and bake. If making less than the full recipe, I would recommend using a smaller dish (like a deep 8-inch skillet or small saucepan to prep then a small 1-quart baking dish for baking) so the pasta doesn't spread too thin and dry out.
Â
See post above for additional tips.
Â
Parts of this recipe are inspired by or loosely adapted from Food & Wine’s French Onion Mac and Cheese.Â
Ingredients
For the caramelized onions:
- 2 large sweet onions, thinly sliced
- 1/2 Tbsp olive oil
- pinch sea salt
- ground black pepper, to taste
- 1 tsp unsalted butter
- 1 Tbsp dry white wine
- 1 tsp Worcestershire sauce
For the pasta:
- 5.5 oz short pasta*
- about 1/2 Tbsp salt for the pasta water
For the sauce:
- 1.5 Tbsp unsalted butter
- 1.5 Tbsp all-purpose flour
- 1 cup whole milk, warmed**
- 1/16 tsp ground nutmeg
- 1/2 tsp Dijon
- 3-4 cloves garlic, roasted and smashed
- about 1/2 tsp fresh thyme leaves (from 3-4 sprigs)
- 1/2 tsp fine sea salt
- ground or cracked black pepper, to taste
- 3 oz gruyere, freshly shredded
- 2 oz aged white cheddar, freshly shredded
For the topping:
- 1/2 cup cubed crusty sourdough
- 1/2 Tbsp melted butter
- sprinkle fresh thyme
- 1 oz additional shredded gruyere
Instructions
Make the caramelized onions:
- Head a Dutch oven or medium skillet over medium heat. Add 1/2 Tbsp olive oil and the onions. Cook over medium heat about 10 minutes, stirring a few times, until browned.
- Reduce heat to low and cook, uncovered, about 50 minutes longer, stirring occasionally. Add a splash of water as needed throughout cooking if they start sticking to the bottom to prevent burning.
- When soft and nutty and caramelized, stir in pepper, butter, wine, and Worcestershire and cook another 1-2 minutes. Remove from heat and set aside
Roast the garlic:
- Meanwhile, to roast the garlic, preheat the oven or toaster oven to 400ºF.
- Place the garlic cloves on a piece of foil and drizzle lightly with olive oil.
- Wrap them up in the foil, make sure the foil is sealed on all sides, and place the pouch in the oven for about 30 minutes. They should be golden brown and soft. Mash with a fork to form a paste and set aside.
Make the pasta:
- Boil water in a saucepan and add a generous amount of salt (about about 1/2 Tbsp salt per 8 cups water). Add the pasta and cook until al dente, about 8-10 minutes. (Time will vary based on the pasta shape and cut.)
- Reserve at least 1 cup of cooking liquid before draining the pasta. Set aside.
Make the sauce:
- In a saucepan, Dutch oven, or skillet*** over low-medium heat, add 1.5 Tbsp unsalted butter and swirl to melt. Whisk in 1.5 Tbsp flour and cook 1-2 minutes, stirring constantly.
- Gradually whisk in 1 cup warm whole milk. Whisk constantly for 3-4 minutes over low-medium heat until the sauce begins to thicken. Whisk in a few Tbsp reserved pasta water and continue stirring until smooth.
- Stir in nutmeg, dijon, smashed roasted garlic cloves, fresh thyme, 1/2 tsp sea salt, and black pepper.
- Gently fold in gruyere and cheddar until melted. Taste and adjust salt and pepper.
- Fold in cooked pasta and about 3/4 of the caramelized onions.
- Stir in extra pasta water about 2 Tbsp at a time as needed to keep a smooth consistency. If prepping in advance, add extra pasta water to make it slightly on the runnier side. (It will thicken as it rests, chills, and reheats.)
- At this point, if making in advance, transfer the pasta to a 1.5-quart baking dish. Top with remaining caramelized onions. Allow it to cool, then cover and refrigerate up to 2-3 days.
- Preheat the oven to 375ºF. If chilled, set out baking dish at room temperature about an hour in advance.
- Toss the cube sourdough with melted butter and a sprinkle of fresh thyme. Top the pasta with sourdough and 1 oz extra shredded gruyere (or as much as you want).
- Bake uncovered about 25 minutes, until hot, bubbly, and toasty.





