Go Back
French Onion Meatballs

French Onion Meatballs

French Onion Meatballs are a savory, comforting twist on classic meatballs, layered with sweet caramelized onions, rich beef broth, and bubbling Gruyere cheese. This easy weeknight dinner delivers tender, juicy meatballs with a deep onion sauce and crisp toasted baguette for scooping, making it perfect for cozy meals and casual gatherings. Try it for a crowd pleasing, flavorful dinner.
Prep Time 12 minutes
Cook Time 30 minutes
Total Time 42 minutes
Course Dinner
Cuisine French
Servings 5 servings
Calories 450 kcal

Equipment

  • Oven
  • Rimmed Baking Sheet
  • Aluminum Foil
  • Cast-Iron Skillet
  • Broiler

Ingredients
  

  • 2 tablespoons butter Melted to provide a rich, silky base for sautéing onions and building the sauce; contributes a buttery flavor that helps brown the onions evenly without burning. Adds mouthfeel and helps carry fat-soluble flavors into the meatball mixture and gravy. Balances the olive oil for a rounded onion caramelization.
  • 2 tablespoons olive oil Heated to help soften and caramelize onions while preventing sticking; imparts a fruity, savory backbone to the pan. Combines with butter to raise the smoke point and create a well-rounded sauté medium. Enhances overall depth of flavor in both meatballs and gravy.
  • 2 large onions, sliced 1/4-inch thick Sliced to release natural sugars that caramelize into a sweet, savory base for the dish; provides texture and an essential French onion flavor profile. Cooked slowly until golden to form the hallmark sweet-savory component that coats the meatballs and flavors the broth. Also contributes moisture and aromatic complexity to the final dish.
  • 1 1/2 pounds lean ground beef Combined as the primary protein to form tender, flavorful meatballs; binds with egg and breadcrumbs to create cohesive texture. Provides savory richness and structure while absorbing surrounding flavors like onion, thyme, and broth. Choosing lean ground beef keeps meatballs moist without excessive fat.
  • 1 large egg, lightly beaten Beaten and added to the meatball mix to bind ingredients together and promote a tender interior; helps set the meatballs during cooking. Contributes slight richness and improves cohesion so the meatballs hold shape in the broth. Also assists with even browning during searing.
  • 1/3 cup dry bread crumbs Mixed with milk and egg to add bulk and tenderize the meatball mixture by soaking up moisture; provides structure and a light crumbly texture. Helps retain juices during cooking and prevents dense, dry meatballs. Also lightly absorbs flavors from seasonings and broth.
  • 1/3 cup milk Combined with breadcrumbs to moisten and soften the meatball interior; relays dairy richness throughout the mixture when soaked. Adds tenderness and helps bind the breadcrumbs and meat together for a uniform texture. Also contributes to gentle steam during cooking for juiciness.
  • 1/2 teaspoons salt Sprinkled into the meatball mixture and sauce to season and enhance savory flavors; balances sweetness from the caramelized onions. Applied sparingly to control overall saltiness while bringing out umami in the beef and broth. Helps season both interior and exterior of meatballs.
  • 1/2 teaspoon pepper Ground to add a subtle spicy warmth and depth to the meatballs and gravy; enhances other savory components without overpowering. Balances salt and herbs while sharpening the overall flavor profile. Provides a clean, peppery finish on the palate.
  • 1/2 teaspoon herbs de Provence Included to introduce aromatic Provençal flavors—lavender, thyme, rosemary, and more—that complement caramelized onions and beef. Small amounts add complexity and a hint of floral-herbal character to the meatballs and sauce. Helps evoke classic French onion taste.
  • 1 tablespoon flour Used to thicken the broth into a glossy gravy that clings to meatballs and bread; creates body and a pleasant mouthfeel. Coated on meatballs before simmering or whisked into pan drippings to eliminate lumps and achieve smooth consistency. Helps suspend cheese and herbs for even distribution.
  • 2 cups beef broth Poured as the savory liquid base that bathes the meatballs and melds flavors into a cohesive sauce; provides umami and depth. Reduced and thickened into a rich gravy that carries caramelized onion and herb notes. Acts as the cooking medium to infuse meatballs with sustained moisture.
  • 2 teaspoons chopped fresh thyme Chopped and added to impart bright, woody-herbal notes that complement thyme-forward aromatics like herbs de Provence. Sprinkled into the meatball mixture and sauce to lift the savory profile with fresh complexity. Works well with caramelized onions and beef for a balanced herbaceous finish.
  • 14 thin slices fresh baguette Sliced thin to create crisp-toasted rounds for topping or serving with meatballs; acts as a vehicle for melted cheese and onion-topped bites. Toasting or broiling enhances texture and provides a crunchy contrast to tender meatballs and gravy. Absorbs flavorful juices from the sauce without becoming soggy too quickly.
  • 1 cup shredded Gruyere cheese Shredded and melted to form gooey, nutty-tasting topping over bread or meatballs; adds rich, creamy character and a gratin-like finish. Browns under heat to create savory, slightly caramelized edges that echo the dish's French onion roots. Bridges beef, bread, and broth with a luxurious layer of cheese.
  • chopped fresh parsley Chopped and sprinkled to finish the dish with fresh color and a mild herbaceous brightness that contrasts rich flavors. Used as a final garnish to enhance visual appeal and add a hint of green freshness on each serving. Provides subtle texture and aromatic lift.
  • mashed potatoes for serving Prepared as an optional hearty accompaniment to serve beneath or alongside meatballs, offering a creamy, comforting base that soaks up gravy. Mashed potatoes add starch and richness, balancing the savory, onion-forward main components. Helps turn the dish into a filling, complete meal.

Instructions
 

  • Preheat oven to 425 degrees and line a rimmed baking sheet with aluminum foil. Spray foil with cooking spray.: You will feel the kitchen shift from prep to action as the oven warms, and that hot air is what gives the meatballs a quick, even bake. The foil makes cleanup trivial and reflects heat slightly, helping the underside of the meatballs firm without overbrowning. A common mistake is skipping the preheat, which lengthens bake time and can dry the meatballs. Make sure the oven reaches temperature before you put the tray in, and use an oven thermometer if yours runs cool or hot.
  • In a large cast iron skillet, heat butter and olive oil over medium-low heat. When butter is melted, add the onions. Cook stirring occasionally until light brown, about 25 minutes.: At first the pan will hiss gently, then the onions will soften and start to release sugars, filling your kitchen with a sweet, toasty aroma. As they slowly brown, you will notice strands separating and turning translucent before acquiring deep golden edges. Stirring occasionally encourages even caramelization and prevents scorching, which can turn the pleasant nutty notes bitter. If you rush with high heat, the outsides will darken too fast while the centers remain raw, so patience is the key here.
  • Meanwhile combine all meatball ingredients, mixing together gently. Shape into 14 to 16 meatballs. Place meatballs on prepared baking sheet and bake for 15 to 18 minutes.: The texture of your mixture should feel cohesive but not compacted, and when you form the balls they should hold shape without being dense. As they bake, you will hear a faint sizzle and see the exterior set and develop a light crust, signaling juices sealing inside. Overworking the mix makes meatballs tough, so use a light touch when combining and shaping. If some meatballs are uneven in size, adjust baking time slightly so they all finish evenly.
  • Once onions are caramelized, sprinkle flour over them. Stir and cook for 2 minutes.: The aroma will shift as the small amount of flour toasts, creating a foundation for a glossy sauce. Cook it briefly so the raw flour taste disappears and it blends seamlessly with the browned onions . Stir continuously to coat the onions evenly; if you skip this step, the sauce may taste floury or have lumps once you add the broth. The pan should look slightly dusted and fragrant after a couple of minutes.
  • Gradually whisk in beef broth. Bring to a boil. Add thyme and salt and pepper to taste. Once thickened a little, reduce heat to low to keep warm. When meatballs are done in the oven, add them to the cast iron skillet.: Slowly adding the beef broth while whisking releases the flavorful browned bits from the pan, and you will see the sauce become glossy and cohesive. As it reaches a boil, steam and savory perfume will rise, and the thyme will lift the flavors with a green, aromatic note. Thickening is subtle here, you want a saucy consistency that clings to the meatballs . Reduce to low to maintain warmth without breaking down the sauce, and when you nestle the baked meatballs into the skillet they will soak up those flavors while the sauce clings to their crusts. A mistake is boiling too long, which concentrates too much and may evaporate precious moisture.
  • Place baguette slices on the baking sheet you cooked the meatballs on and stick under the broiler until they get a little crispy.: The thin baguette slices will crisp quickly, producing tiny toasty flavor notes and a satisfying crunch. Keep them close to the broiler and watch carefully, because they can go from golden to burnt in moments. Use tongs to move them when edges brown, and remove before they darken too much. If you let them soften under residual heat, they will not provide the textural contrast you want against the tender meatballs .
  • Stick baguette slices between the meatballs and sprinkle Gruyere cheese over everything. Place skillet under broiler until cheese is melted.: When the hot skillet meets the broiler, the shredded Gruyere cheese will bubble and turn lusciously golden, yielding that irresistible stringy pull. The sensory payoff is immediate, the sizzling notes and nutty scent of the melted cheese signaling the dish is almost ready. Keep the skillet a few inches from the broiler and rotate if necessary for even browning. A common error is leaving it too long; watch for the cheese to just bubble and brown lightly, then remove to avoid bitterness from overbrowning.

Notes

  • Manage the heat: Keep the pan on medium low while cooking the onions to coax out sweetness without burning, stirring every few minutes to ensure even color development.
  • Measure bread crumbs and milk precisely: Hydrate the crumbs with the measured milk before mixing into the ground beef so the texture stays tender and consistent across all meatballs.
  • Use an even scoop for shaping: Portion the mixture with an ice cream scoop or measuring spoon so the 14 to 16 meatballs cook uniformly, avoiding undercooked centers or overbrowned edges.
  • Keep a watchful eye under the broiler: The baguette and Gruyere cheese brown quickly; stand by the oven and rotate the pan if needed for even melting and toasty bread.
  • Finish in the skillet: Transferring the baked meatballs into the warm sauce lets them absorb additional flavor, so don’t skip this last melding step before broiling with the cheese.
Keyword comforting weeknight dinner, French onion meatballs recipe, Gruyere meatballs, meatballs with caramelized onions