French Onion Stuffed Shells bring together the deep, caramelized flavors of classic French onion soup and the hearty comfort of stuffed pasta in one showstopping dish. Jumbo shells are filled with a creamy blend of ricotta, Gruyère, mozzarella, and Parmesan, then topped with jammy slow-cooked onions and golden, bubbling cheese. Perfect for cozy weeknight dinners or impressing guests, this make-ahead friendly recipe delivers rich, complex flavor in every bite.
Heavy-bottomed skillet or Dutch oven For caramelizing onions evenly
9x13-inch baking dish
Large mixing bowl
Wooden spoon
Colander
Measuring cups and spoons
Cheese grater For grating block Gruyère
Aluminum foil
Ingredients
Pasta
12ozjumbo pasta shells1 box; about 340g
Caramelized Onion Base
4large yellow onionsthinly sliced
3tbspbutterabout 42g
2tbspolive oil
2tspsugarhelps with caramelization
4cloves garlicminced
1/2cupdry white wine120ml
2cupsbeef broth480ml; use vegetable or mushroom broth to make vegetarian
2tspfresh thyme leaves
saltto taste
black pepperto taste
Cheese Filling
15ozricotta cheeseabout 425g
2cupsshredded Gruyère cheeseabout 200g, divided; grate from a block for best melt
1cupshredded mozzarella cheeseabout 115g
1/2cupgrated Parmesan cheeseabout 50g
1eggbeaten
Garnish
fresh parsleychopped, for serving
Instructions
Heat butter and olive oil in a heavy-bottomed skillet over medium heat, then add sliced onions and sugar. Cook, stirring every 5 minutes, for 35–45 minutes until deeply golden brown and jammy, adding garlic in the last 3 minutes.
Deglaze the pan with white wine, scraping up browned bits, then add beef broth and thyme and simmer for 10 minutes until the liquid reduces by half. Season with salt and pepper and set aside to cool slightly.
Boil jumbo shells in a large pot of salted water for 2 minutes less than package directions, then drain, rinse with cold water, and lay flat on a clean kitchen towel to dry.
In a large bowl, combine ricotta, 1 cup Gruyère, mozzarella, Parmesan, and beaten egg, then fold in half of the caramelized onion mixture and season with salt and pepper.
Preheat oven to 375°F (190°C), spread a thin layer of reserved onion mixture on the bottom of the baking dish, then fill each shell generously with the cheese mixture and arrange in a single layer open side up.
Spoon remaining caramelized onion mixture over the shells and sprinkle with the remaining 1 cup of Gruyère, then cover tightly with foil and bake for 25 minutes.
Remove foil and bake an additional 10–15 minutes until the cheese is golden and bubbling, then let rest 5 minutes before garnishing with fresh parsley and serving.
Notes
Don't rush the onions — true caramelization requires at least 35–45 minutes over medium to medium-low heat. High heat will burn them instead of developing sweetness.
Undercook the pasta shells by 2 minutes; they will finish cooking in the oven and won't turn mushy.
Always grate Gruyère from a block — pre-shredded cheese contains anti-caking agents that prevent proper melting.
Swiss cheese, fontina, or aged white cheddar can substitute for Gruyère if unavailable.
To make this vegetarian, replace beef broth with vegetable or mushroom broth for a similar umami depth.
Make ahead: assemble the dish up to 24 hours in advance, cover, and refrigerate. Let sit at room temperature for 30 minutes before baking and add 5–10 extra minutes to the bake time.
Freeze uncooked assembled shells in a freezer-safe dish for up to 3 months; thaw overnight in the fridge before baking.
Reheat leftovers covered with foil at 350°F for 15–20 minutes, or microwave individual portions for 2–3 minutes.
Add shredded rotisserie chicken or cooked Italian sausage to the cheese filling for extra protein.
Caramelize a double batch of onions and freeze the extra — they're great for future batches, burgers, or French onion soup.