French Onion Meatball Bake Recipe

Tender beef meatballs nestled in a rich caramelized onion sauce, topped with melty Gruyère and crispy bread croutons that capture all the comforting flavors of French onion soup in a hearty, shareable bake.
Difficulty:
Intermediate
Prep Time:
45 mins
Cook Time:
35 mins
Serves:
6 servings
An overhead shot of a rustic oval baking dish containing golden-brown meatballs partially submerged in a deep amber caramelized onion sauce. Bubbling Gruyère cheese blankets the top with perfectly browned spots, while crispy, buttery croutons add texture and height. Delicate thyme sprigs garnish the surface, with a few scattered across the wooden serving board. The cross-section reveals juicy meatballs with visible herbs and the glossy, rich onion gravy. Captured in warm natural light that accentuates the cheese's gooey stretch when a portion is lifted with a serving spoon, highlighting the comforting, homestyle appeal of this French-inspired dish.

Ingredients

<ul class="ingredients-main-list"><li class="ingredients-single-item">750g ground beef (ideally 15% fat)</li><li class="ingredients-single-item">100g breadcrumbs</li><li class="ingredients-single-item">2 eggs, lightly beaten</li><li class="ingredients-single-item">3 garlic cloves, minced</li><li class="ingredients-single-item">2 tbsp fresh thyme leaves, finely chopped</li><li class="ingredients-single-item">1 tbsp fresh parsley, finely chopped</li><li class="ingredients-single-item">1 tbsp Dijon mustard</li><li class="ingredients-single-item">1 tbsp Worcestershire sauce</li><li class="ingredients-single-item">1 tsp salt</li><li class="ingredients-single-item">1/2 tsp black pepper</li><li class="ingredients-single-item">3 large onions (about 750g), thinly sliced</li><li class="ingredients-single-item">30g butter</li><li class="ingredients-single-item">2 tbsp olive oil</li><li class="ingredients-single-item">2 bay leaves</li><li class="ingredients-single-item">1 tbsp plain flour</li><li class="ingredients-single-item">250ml beef stock</li><li class="ingredients-single-item">125ml dry white wine (or additional beef stock)</li><li class="ingredients-single-item">200g Gruyère cheese, grated (or Emmental)</li><li class="ingredients-single-item">150g crusty bread, cut into 2cm cubes</li><li class="ingredients-single-item">2 tbsp butter, melted</li><li class="ingredients-single-item">1 tsp garlic powder</li></ul>

Equipment

<ul class="equipment-main-list"><li class="equipment-single-item">25cm x 35cm baking dish</li><li class="equipment-single-item">Large heavy-bottomed skillet or Dutch oven</li><li class="equipment-single-item">Mixing bowls</li></ul>
BAKE SMARTER

Kitchen Converter

Quickly switch between common baking units without leaving the recipe.

Convert
Result—

Volume uses US cups, tablespoons, and teaspoons. Converting weight to volume depends on the ingredient.

Directions

<ol class="no-list-style"><li class="MethodStepper"><h4 class="step-title">Step 1</h4>Preheat your oven to 200°C. In a large bowl, combine the ground beef, breadcrumbs, eggs, minced garlic, thyme, parsley, Dijon mustard, Worcestershire sauce, salt, and pepper. Mix gently with your hands until just combined – overmixing will result in tough meatballs.</li><li class="MethodStepper"><h4 class="step-title">Step 2</h4>Form the mixture into 18-20 meatballs, each about 4-5cm in diameter. Place them on a plate and refrigerate for 15 minutes to firm up, which helps them hold their shape during cooking.</li><li class="MethodStepper"><h4 class="step-title">Step 3</h4>Heat 1 tablespoon olive oil in a large heavy-bottomed skillet over medium-high heat. Working in batches to avoid overcrowding, brown the meatballs on all sides (about 2 minutes per side). They don't need to be fully cooked through at this stage. Transfer to a plate lined with paper towels.</li><li class="MethodStepper"><h4 class="step-title">Step 4</h4>In the same skillet, reduce heat to medium-low. Add butter and remaining olive oil. Add the thinly sliced onions and bay leaves with a pinch of salt. Cook for 25-30 minutes, stirring occasionally, until the onions are deeply caramelized to a rich golden-brown. This slow caramelization process develops the signature sweet-savory flavor that makes French onion so distinctive.</li><li class="MethodStepper"><h4 class="step-title">Step 5</h4>Once onions are caramelized, sprinkle the flour over them and stir continuously for 1 minute to cook out the raw flour taste. Gradually add the wine, using a wooden spoon to scrape up any flavorful browned bits from the bottom of the pan. Allow the wine to reduce by half, about 2 minutes.</li><li class="MethodStepper"><h4 class="step-title">Step 6</h4>Pour in the beef stock and bring to a gentle simmer. Cook for 5 minutes until the sauce thickens slightly. Remove bay leaves and taste for seasoning, adding more salt and pepper if needed.</li><li class="MethodStepper"><h4 class="step-title">Step 7</h4>Transfer the caramelized onion mixture to your baking dish. Nestle the browned meatballs into the onion sauce, leaving a little space between each one.</li><li class="MethodStepper"><h4 class="step-title">Step 8</h4>In a small bowl, toss the bread cubes with melted butter and garlic powder until evenly coated. Sprinkle the grated Gruyère evenly over the meatballs and onions, then scatter the seasoned bread cubes on top.</li><li class="MethodStepper"><h4 class="step-title">Step 9</h4>Bake in the preheated oven for 20-25 minutes, until the meatballs are fully cooked (internal temperature of 70°C), the cheese is melted and bubbling, and the bread cubes have turned into golden croutons.</li><li class="MethodStepper"><h4 class="step-title">Step 10</h4>Remove from the oven and let rest for 5 minutes before serving. This allows the sauce to settle and the flavors to meld. Garnish with additional fresh thyme if desired. The finished dish should have tender, juicy meatballs, a rich onion gravy, gooey cheese, and crispy croutons that combine the best elements of French onion soup in a satisfying main course.</li></ol>

Nutrition Facts (per serving)

🍽️ Serving Size: 1 serving
🔥 Calories: 420 calories
🥑 Fat: 24 g
🧈 Saturated Fat: 11 g
🍞 Carbohydrates: 22 g
🍭 Sugar: 6 g
🍗 Protein: 30 g
🫀 Cholesterol: 135 mg
🧂 Sodium: 680 mg

Chef’s Notes

A few helpful details for making this recipe.

Can I make the caramelised onions ahead of time for this dish?

Absolutely! Caramelised onions can be prepared up to 3 days ahead and refrigerated in an airtight container. This time-saving step is perfect for busy weeknights as the onions are the most time-consuming component. Simply reheat them before continuing with the recipe.

What's the secret to perfectly caramelised onions for French onion-inspired dishes?

The secret lies in patience and low heat. Cook thinly sliced onions in butter and oil over medium-low heat for 25-30 minutes, stirring occasionally. Don't rush the process - proper caramelisation develops the deep, sweet-savoury flavour that's essential for authentic French onion taste.

What can I use instead of Gruyère cheese for a budget-friendly alternative?

If Gruyère is unavailable or too expensive, Emmental makes an excellent substitute. Other budget-friendly alternatives include a mix of mozzarella (for meltability) and mature cheddar (for flavour), Swiss cheese, or even a good quality Provolone for a similar nutty, melty quality.

Want to try something else in ...

More recipes you might like

Keep exploring with more recipes from What's Baking.