Ingredients
Equipment
Method
Make and brown the meatballs
- Mix ground beef, breadcrumbs, egg, Worcestershire, garlic powder, onion powder, salt, and pepper until evenly combined.
- Roll the mixture into 1.5-inch meatballs, then brown them in butter in a skillet over medium-high heat until deep golden all over, and set aside.
Caramelize the onions and build the sauce
- In the same skillet, caramelize the sliced onions in butter over medium-low heat for 30-35 minutes, stirring occasionally until deeply browned and soft.
- Deglaze the skillet with wine, scraping up any browned bits, then cook 1-2 minutes.
- Add beef broth, Worcestershire, and fresh thyme, then bring the mixture to a simmer.
Simmer with meatballs and melt the cheese
- Return the browned meatballs to the onion sauce, then simmer for 15 minutes until cooked through and coated.
- Transfer to a baking dish if the skillet is not oven-safe, then scatter shredded Gruyere/provolone over the top.
- Broil 3-4 minutes until the cheese is golden and bubbly with lightly browned spots.
Notes
For extra flavor, let the caramelized onion sauce finish until it looks jammy and dark amber before deglazing. Store leftovers covered in the refrigerator up to 3 days; reheat gently until hot throughout. Freezing is okay for the meatballs and sauce (freeze up to 2 months) but cheese may soften—add fresh cheese and broil after thawing if you want the best crust. For a lighter option, use 93% lean ground beef.
