Go Back
Cheesy French Onion Meatballs Recipe - Easy One-Skillet Dinner.

Cheesy French Onion Meatballs

Juicy beef meatballs in caramelized onion sauce topped with melted Gruyère cheese. A one-skillet comfort food dinner ready in 1 hour.
Prep Time 25 minutes
Cook Time 35 minutes
Total Time 1 hour
Servings: 4 portions
Course: Dinner, Main Course
Cuisine: American, French
Calories: 485

Ingredients
  

  • 1 lb ground beef 80/20 ratio recommended
  • 1/2 cup breadcrumbs
  • 1/4 cup grated Parmesan cheese
  • 1 large egg
  • 2 cloves garlic minced
  • 1 tsp onion powder
  • 1 tsp Italian seasoning
  • Salt and pepper to taste
  • 2 tbsp olive oil
  • 2 large onions thinly sliced
  • 2 tbsp butter
  • 1 tsp sugar
  • 2 cups beef broth
  • 1/2 cup dry white wine optional
  • 1 tbsp Worcestershire sauce
  • 1 tbsp all-purpose flour
  • 1 cup shredded Gruyère cheese Swiss cheese works too
  • Fresh parsley for garnish, optional

Equipment

  • Large mixing bowl
  • 12-inch skillet or cast iron pan
  • Oven with broiler

Method
 

  1. In a large bowl, combine ground beef, breadcrumbs, Parmesan cheese, egg, minced garlic, onion powder, Italian seasoning, salt, and pepper. Mix gently until just combined. Roll mixture into balls about 1 inch in diameter (golf ball size), yielding approximately 16 to 18 meatballs. Set aside.
  2. Heat olive oil in a 12-inch skillet over medium heat. Once oil shimmers (about 2 minutes), add meatballs in batches, leaving 1 inch space between each. Brown on all sides for 6 to 8 minutes total, turning every 2 minutes. Transfer to a plate and set aside.
  3. Reduce heat to medium-low. Add butter to the skillet. Once melted, add sliced onions and sugar. Cook for 15 to 20 minutes, stirring every 2 to 3 minutes, until onions are deeply caramelized and golden brown. If onions stick or brown too quickly, add a splash of broth and reduce heat.
  4. Sprinkle flour over the caramelized onions and stir for 1 minute to coat evenly. Add beef broth, wine (if using), and Worcestershire sauce. Scrape up any browned bits from the bottom. Bring to a simmer and cook for 5 to 7 minutes until slightly thickened and reduced by about one-third.
  5. Return meatballs to the skillet, nestling them into the sauce. Cover and simmer for 10 to 15 minutes, stirring gently halfway through, until meatballs reach an internal temperature of 160°F and sauce coats the back of a spoon.
  6. Preheat broiler to high and position oven rack 6 inches from heat source. Sprinkle Gruyère cheese evenly over the meatballs and sauce. Broil for 2 to 3 minutes until cheese is melted and bubbly with golden spots. Watch closely to prevent burning.
  7. Garnish with fresh parsley if desired and serve hot with crusty bread, mashed potatoes, or egg noodles.

Notes

Can substitute ground turkey or chicken for beef. Leaner meats may need extra olive oil for moisture. Replace wine with additional beef broth if preferred. Swiss, Fontina, or mozzarella can substitute for Gruyère. Store leftovers in refrigerator for up to 3 days or freeze for up to 3 months. For best results when freezing, add cheese topping after reheating.