Ingredients
Equipment
Method
Make and brown the meatballs
- Mix ground beef, breadcrumbs, egg, Worcestershire, garlic powder, onion powder, salt and pepper, then roll into 1.5-inch balls.
- Heat 2 tablespoons of butter in a skillet over medium-high heat and brown meatballs on all sides; transfer to a plate when browned.
Caramelize onions and build the sauce
- In the same skillet, melt remaining butter over medium-low heat, add sliced onions, and cook until caramelized, about 30-35 minutes, stirring occasionally until deep golden.
- Pour in the wine or beef broth to deglaze, scraping up browned bits from the pan, and cook 1-2 minutes until slightly reduced.
- Add beef broth, Worcestershire, and fresh thyme, stirring to combine.
Simmer and finish with cheese
- Return browned meatballs to the sauce and simmer until cooked through, about 15 minutes, so the onions become a silky broth.
- Transfer to a baking dish if needed, then scatter shredded Gruyère or provolone evenly over the top.
- Broil at 500°F (260°C) for 3-4 minutes until the cheese is golden and bubbly with crisp edges.
Notes
Pro tip: Slice onions evenly for consistent caramelization, and don’t skip the deglaze step—scraped browned bits add body to the sauce. Store leftovers covered in the refrigerator up to 4 days; reheat gently in a covered skillet or microwave at 50% power. Freezing is yes—freeze meatballs and sauce (without broiling) up to 2 months, then thaw and broil with cheese before serving. For a lighter option, use 90% lean ground beef or swap part of the beef for ground turkey while keeping seasoning the same.
