French onion meatballs are what happens when you take the soul-warming flavors of French onion soup - deeply caramelized onions, rich beef broth, and melted Gruyere cheese - and spoon them over tender, juicy beef meatballs. It is comfort food at its finest, and it comes together in one skillet in under an hour.
Every bite delivers that signature French onion experience: sweet, silky onions against savory beef, with a blanket of nutty, bubbly cheese pulling apart as you dig in. Serve these over egg noodles, alongside crusty bread, or with mashed potatoes for a dinner that feels special but is surprisingly simple to pull off on a weeknight.
Prep time: 15 minutes Cook time: 40 minutes Total time: 55 minutes Servings: 4 (about 20 meatballs)
Ingredients
For the Onion Sauce
- 1 tbsp butter
- 2 large yellow onions, thinly sliced
- 1 tsp kosher salt, divided
- 1/2 tsp black pepper, divided
- 1 tsp fresh thyme leaves (or 1/2 tsp dried)
- 2 tbsp dry sherry or dry white wine
- 1 tbsp all-purpose flour
- 1 1/2 cups beef broth
For the Meatballs
- 1 lb (450 g) ground beef, 80/20
- 1/3 cup panko breadcrumbs
- 1/4 cup whole milk
- 1 large egg
- 2 cloves garlic, minced
- 1/2 tsp dried oregano
For the Topping
- 1 cup shredded Gruyere cheese
- Fresh parsley, chopped (for garnish)
- Baguette slices, toasted (optional)
Instructions
-
Caramelize the onions. Melt the butter in a large oven-safe skillet over medium heat. Add the sliced onions, 1/2 tsp salt, and 1/4 tsp pepper. Cook, stirring occasionally, until the onions are deep golden brown and very soft - 20 to 25 minutes. Stir in the thyme and sherry; cook 1 minute more.
-
Make the sauce. Sprinkle the flour over the caramelized onions and stir for 1 minute. Slowly pour in the beef broth while stirring constantly. Let it simmer until the sauce thickens slightly, 2 to 3 minutes. Remove from heat and set aside.
-
Make the meatballs. In a large bowl, stir the panko and milk together. Let it sit for 5 minutes until the milk is absorbed - this is the panade that keeps meatballs tender. Add the ground beef, egg, garlic, oregano, remaining 1/2 tsp salt, and remaining 1/4 tsp pepper. Mix gently with your hands until just combined. Over-mixing makes meatballs dense.
-
Shape. Roll the mixture into 20 meatballs, about 1.5 inches across. Place them on a parchment-lined baking sheet. (See our Classic Beef Meatballs in Marinara for more on the panade technique.)
-
Bake. Bake at 400F (200C) for 14 to 16 minutes, until the centers reach 160F (71C).
-
Assemble and broil. Transfer the baked meatballs into the skillet with the onion sauce. Sprinkle the shredded Gruyere evenly over the top. Broil 3 to 4 inches from the heat until the cheese is melted and bubbly, 2 to 3 minutes.
-
Garnish and serve. Top with fresh parsley. Serve with toasted baguette slices to scoop up the sauce, or spoon over egg noodles or mashed potatoes.
Why This Recipe Works
Caramelized onions are the flavor backbone. Taking 20 to 25 minutes to cook the onions low and slow develops deep sweetness that balances the savory beef broth and salty Gruyere. Rushing this step gives you pale, crunchy onions instead of the jammy, silky foundation that makes French onion anything so good.
Baking the meatballs separately matters. If you drop raw meatballs into the sauce, they release fat and cloud the caramelized onion flavor. Baking them first on a sheet pan sets their shape and lets you drain any excess grease. Then they finish in the sauce absorbing all that oniony goodness without making it greasy.
Gruyere is not optional here. Its nutty, slightly sweet flavor is what defines French onion cuisine. Substitute provolone or mozzarella in a pinch, but the result will be melty and mild rather than complex and authentic.
Tips for the Best French Onion Meatballs
Use a yellow onion. Yellow onions have the best balance of sugar and sulfur for deep caramelization. Sweet onions like Vidalia work too but take longer to brown. Red onions lack the structure for this long a cook.
Deglaze with sherry or wine. That splash of dry sherry lifts the caramelized onions into something richer. If you do not keep alcohol in the kitchen, substitute a splash of balsamic vinegar or Worcestershire sauce.
Make the panade. Milk-soaked breadcrumbs (panade) keep lean-ish ground beef tender during baking. Skip this and the meatballs turn dense.
Use an oven-safe skillet. Cast iron or stainless steel works best. You need one pan that goes from stovetop (caramelizing) to oven (broiling) so the cheese melts over everything.
Variations
| Variation | What to change |
|---|---|
| French onion chicken meatballs | Swap ground beef for ground chicken. Bake 12 to 14 minutes instead. |
| French onion turkey meatballs | Use ground turkey (93/7). Add 1 tbsp olive oil to the meatball mix for moisture. |
| Crockpot French onion meatballs | Make the sauce in a skillet, transfer to a slow cooker with pre-baked meatballs. Cook on low 2 to 3 hours. Top with cheese and broil before serving. See our Crockpot Party Meatballs for the slow-cooker technique. |
| French onion meatball pasta bake | Toss the meatballs and sauce with cooked penne or rigatoni before broiling the cheese. Try our Cheesy Meatball Pasta Bake for inspiration. |
| Make it a sub | Spoon meatballs and sauce into hoagie rolls, top with Gruyere, and broil until bubbly. Check our Meatball Sub Recipe for the full sandwich build. |
What to Serve With French Onion Meatballs
These meatballs are saucy and rich, so they pair well with something to soak up every drop:
- Egg noodles - the classic bed for saucy meatballs
- Mashed potatoes - creamy potatoes against caramelized onions and beef broth is unbeatable
- Toasted baguette slices - exactly how French onion soup is served
- Steamed green beans or roasted asparagus - a bright, crisp side to balance the richness
- Simple green salad - a light vinaigrette cuts through the cheese
Storage and Reheating
- Fridge: Store in an airtight container up to 4 days. The flavors get even better overnight.
- Reheat: Warm in a skillet over medium-low heat or microwave individual portions for 1 to 2 minutes.
- Freezer: Freeze the meatballs and sauce (without the cheese topping) for up to 3 months. Thaw overnight in the fridge, reheat in a skillet, then add cheese and broil.
Frequently Asked Questions
What is the best cheese for French onion meatballs?
Gruyere is the traditional choice. It melts smoothly and has a nutty, slightly sweet flavor that complements caramelized onions perfectly. Comte or Emmental are excellent substitutes. Mozzarella works in a pinch but lacks the distinctive French onion character.
Can I make French onion meatballs ahead of time?
Yes. Caramelize the onions and make the sauce up to 2 days ahead. Keep covered in the fridge. Bake the meatballs fresh or reheat pre-baked meatballs in the sauce before adding cheese and broiling.
Do I have to use alcohol in the sauce?
No. The sherry or wine adds depth but you can skip it. Substitute 1 tbsp balsamic vinegar plus 1 tbsp extra beef broth, or just 1 tsp Worcestershire sauce. The caramelized onions and Gruyere carry enough flavor on their own.
Can I use frozen meatballs?
Yes. Use fully-cooked frozen beef meatballs. Bake them according to package directions (typically 15 to 18 minutes at 400F) before adding to the sauce. Do not use raw frozen meatballs - they release too much liquid.
How do I caramelize onions faster?
You cannot rush good caramelized onions. The 20 to 25 minutes at medium heat is the minimum for deep golden color. High heat burns the outside before the inside softens. If you are short on time, aim for light golden (12 to 15 minutes) - the flavor will be milder but still good.
What if I do not have an oven-safe skillet?
Transfer the finished onion sauce to a baking dish, arrange the meatballs on top, add cheese, and broil. Any 9x13 or 8x8 baking dish works.
