Hey loves! Ever been deep in a bowl of French onion soup, wishing you could ditch the spoon and grab a fork? Well, dream no more! These French Onion Meatballs are your new obsession – all that cozy, cheesy goodness in bite-sized form. We're talking juicy meatballs swimming in a rich, caramelized onion gravy, topped with a blanket of bubbly Gruyère that's pure gold. It's comfort food that's fancy enough for your besties but easy enough for a Tuesday night. Serve over mash, noodles, or just go at it with a spoon – no judgment here, boo!
Servings 6
Prep Time 30 minutesmins
Cook Time 1 hourhr
Total Time 1 hourhr30 minutesmins
Ingredients
For the Meatballs
1.5 lbs ground beef (80/20 vibes)
½ lb ground pork (trust me, it keeps 'em tender!)
1 cup panko breadcrumbs
½ cup whole milk
1 large egg
¼ cup grated Parmesan cheese
2 cloves garlic, minced
1 tsp salt
½ tsp black pepper
¼ tsp dried thyme
2 tbsp olive oil (for browning)
For the French Onion Magic
4 large yellow onions, thinly sliced (they shrink, promise!)
3 tbsp butter
1 tbsp olive oil
1 tsp sugar (helps with that golden glow)
½ tsp salt
3 cloves garlic, minced
¼ cup dry white wine (or extra beef broth)
3 cups beef broth (go for the good stuff!)
2 tbsp fresh thyme leaves (or 1 tbsp dried)
2 bay leaves
1 tbsp Worcestershire sauce
For the Cheesy Finish
2 cups shredded Gruyère cheese (worth every rand!)
½ cup shredded mozzarella (for extra ooey-gooey)
Fresh thyme for garnish
Chopped fresh parsley
Instructions
Mix panko and milk in a bowl and let it sit for 5 minutes until mushy – that’s the good stuff!
In a big bowl, combine beef, pork, soaked breadcrumbs, egg, Parmesan, garlic, salt, pepper, and thyme. Gently mix with your hands – don’t overwork it, or you’ll get tough meatballs (nobody wants that!). Roll into 1.5-inch balls – you’ll get about 20-24.
Heat olive oil in a large oven-safe skillet or Dutch oven over medium-high heat. Brown meatballs in batches until golden on all sides (6-8 minutes total). They don’t need to be cooked through yet – just looking gorgeous! Set aside.
In the same pan (don’t clean it – those bits are flavor gold!), add butter and olive oil. Toss in onions, sugar, and salt. Cook over medium heat, stirring occasionally, for 25-30 minutes until deep golden and caramelized. This is where the magic happens – be patient!
Add garlic and cook for another minute. Pour in wine (if using), scraping up brown bits. Add beef broth, thyme, bay leaves, and Worcestershire. Simmer for 10 minutes to build flavor.
Nestle meatballs back into the sauce. Cover and simmer 15-20 minutes until cooked through (165°F internal). Discard bay leaves – no one wants a surprise bite!
Preheat broiler. Sprinkle Gruyère and mozzarella over the top. Pop under broiler 2-3 minutes until cheese is bubbly and golden. Garnish with thyme and parsley.
Notes
Pro tip: Let the onions caramelize low and slow – that’s where the magic happens. Don’t rush it, trust me! Also, leftovers? Pop 'em in the fridge for up to 3 days. Reheat gently with a splash of broth to keep things saucy.
Calories: 485kcal
Course: dinner
Cuisine: French
Keyword: cheesy meatballs, comfort food, easy gourmet, French onion meatballs, one pan dinner