Tender beef meatballs simmer with caramelized onions and rich broth, then topped with bubbly melted cheese for a cozy French onion soup-inspired dinner that comes together easily in one skillet.
Course Dinner
Cuisine American
Keyword french onion meatballs, french onion soup meatballs, what to serve with french onion soup meatballs
Melt the butter in a large oven-safe skillet over medium-low heat. Add the onions, salt, and sugar. Cook, stirring occasionally, until the onions are deep golden and soft, about 20 to 25 minutes.
Stir in the Worcestershire and garlic. Cook 1 minute. If using the wine, add it now and cook until the wine is mostly evaporated, about 2-3 minutes. Transfer the onions to a bowl and set aside.
Make the Meatballs
While the onions cook, stir together the beef, breadcrumbs, egg, thyme, salt, pepper, onion powder, milk, and parsley in a large bowl. Mix gently with your hands until just combined.
Roll the mixture into 1 ½-inch meatballs (about the size of golf balls).
Brown the Meatballs
In the same skillet used for the onions, drizzle a little oil if needed and warm it over medium heat. Add the meatballs in a single layer. Cook until browned on two or three sides, about 5 to 7 minutes. They do not need to be cooked through. If there is a lot of grease in your pan, carefully drain off most of it.
Simmer in the Broth
Add the caramelized onions back to the skillet, nestling them around the meatballs. Pour in the beef broth and tuck in the thyme sprigs.
Bring to a gentle simmer. Cook, uncovered, until the meatballs are cooked through, about 12-15 minutes. Gently turn the meatballs about halfway through so that they cook evenly.
Broil with the Cheese
Remove the thyme sprigs. Sprinkle the Gruyère or Swiss evenly over the top.
Place the skillet under the broiler for 2 to 3 minutes, until the cheese is melted, bubbly, and golden.
Rest and Serve
Let the meatballs rest 5 minutes to settle. Serve right from the skillet with mashed potatoes, buttered noodles, or crusty bread.
Video
Notes
Don't rush the onions. Low and slow (20-25 min) gives you the best flavor.
Use 80/20 ground beef (or 85/15) for juicy, flavorful meatballs.
Meatballs don't need to be cooked through when browning; they finish in the broth.
Gruyère is classic. Swiss is a great substitute.
Keep a close eye on the broiler to avoid burning the cheese.
Let rest 5 minutes before serving for best texture.
Serve with crusty bread, mashed potatoes, or egg noodles.
Leftovers keep 3-4 days refrigerated. Reheat on stovetop with a splash of broth.
Freeze without cheese for up to 3 months. Add cheese when reheating.
Caramelized onions can be made up to 2 days ahead.