Cheesy French Onion Meatballs
Cheesy French Onion Meatballs are a delightful fusion of savory meatballs and the rich, comforting flavors of French onion soup. These delicious meatballs are made from a blend of ground beef and pork, seasoned with aromatic herbs and spices. They are browned to perfection, ensuring a juicy, flavorful bite.
The meatballs are then simmered in a luscious French onion sauce, made from caramelized onions, beef broth, and a touch of white wine. This sauce infuses the meatballs with a deep, savory flavor that's simply irresistible.
To top it off, a generous layer of melted cheese—typically Gruyère or Swiss—blankets the meatballs, creating a gooey, cheesy crust that complements the rich onion sauce. Served with crusty bread or over a bed of mashed potatoes, Cheesy French Onion Meatballs are the ultimate comfort food, offering a harmonious blend of flavors and textures that will leave you craving more. Bon appétit!

Ingredients
Instructions
-
Arrange one oven rack 6 to 8 inches from the broiler and a second rack in the middle of the oven. Heat the oven to 400°F. Line a rimmed baking sheet with parchment paper or a silicone baking mat.
-
Halve and thinly slice 2 pounds yellow onions (about 7 cups). Pick the leaves from 1 small bunch fresh thyme until you have 2 tablespoons. Mince 2 garlic cloves. Grate 6 ounces Gruyère cheese on the large holes of a box grater (about 1 1/2 cups).
-
Place the garlic, 2 teaspoons of the thyme, 1/4 cup of the Gruyère cheese, 1/2 cup unseasoned dried breadcrumbs or panko, 1/2 cup whole or 2% milk, 1 large egg, 2 teaspoons Worcestershire sauce, 1 1/4 teaspoons of the kosher salt, and 1/4 teaspoon black pepper in a large bowl and stir to combine. Add 1 1/2 pounds ground beef and use your fingers to combine the meat and flavorings. Handle the meat gently and do not overmix.
-
Form the mixture into 32 to 34 (about 1 1/2-inch) meatballs (about 2 tablespoons each). Place on the baking sheet, spacing them about 3/4-inch apart.
-
Bake on the middle rack until browned and cooked through or until an instant-read thermometer inserted into the center of a meatball registers at least 165°F, 15 to 20 minutes. Meanwhile, make the sauce.
-
Melt 2 tablespoons unsalted butter in a 12-inch cast iron or other broiler-safe, heavy-bottomed skillet over medium heat. Add the onions, 1 tablespoon of the thyme, remaining 1 1/4 teaspoons kosher salt, and remaining 1/2 teaspoon black pepper. Cook, stirring frequently with a wooden spoon and reducing the heat if the onions start to burn, until the onions have reduced by over half, are very soft, and deep golden-brown, 25 to 30 minutes.
-
Sprinkle 2 tablespoons all-purpose flour over the onions and stir until the flour is completely incorporated and leaves a film on the bottom of the skillet and begins to brown, about 1 minute. Add 1/4 cup dry white wine and scrape up any browned bits on the bottom of the skillet. Continue to stir until the wine is evaporated, about 30 seconds.
-
Add 1 (14.5-ounce) can beef broth and whisk to combine. Increase the heat back to medium if it was lowered while cooking the onions. Bring to a boil and cook until the sauce thickens enough to coat the back of a spoon, 6 to 8 minutes. Remove the pan from the heat. Add 1 teaspoon balsamic or sherry vinegar and stir to combine. Taste and season with more kosher salt and black pepper as needed.
-
Remove the meatballs from the oven. Set the oven to broil. Using tongs or a slotted spoon, transfer the meatballs to the sauce. Gently stir to coat the meatballs in the sauce, then spread into an even layer. Sprinkle with the remaining 1 1/4 cups Gruyère cheese.
-
Transfer the skillet to the upper rack and broil until the cheese is melted, bubbly, and browned in spots, 3 to 4 minutes. Garnish with the remaining 1 teaspoon thyme leaves and serve with crusty bread, if desired.