Go Back
+ servings
fork piercing French Onion Meatballs with caramelized onions, rich beef gravy, and melty Gruyère on top
Print

French Onion Meatballs

French Onion Meatballs with caramelized onions, rich beef gravy, and melty Gruyère make a cozy, cheesy comfort dinner everyone will love.
Course Main Course
Cuisine French
Keyword Baked Meatballs
Prep Time 15 minutes
Cook Time 2 hours
Total Time 2 hours 15 minutes
Servings 12 -15 large meatballs
Calories 274kcal
Author Kathleen

Ingredients

For the Sauce

  • 3 tablespoons butter
  • 2 tablespoons olive oil
  • 6 cups sliced yellow onions, about 3 large
  • 3/4 teaspoon fine salt, add mid-way through caramelizing
  • 1/4 cup dry sherry Marsala, or dry white wine (for deglazing — optional but highly recommended)
  • 3 tablespoons all-purpose flour
  • 2 tablespoons tomato paste
  • 1 tablespoon Worcestershire sauce
  • 2 cups beef stock, plus more as needed
  • 1 teaspoon Better Than Bouillon beef base
  • 4 sprigs fresh thyme or 2 teaspoons dried thyme
  • 1/2 teaspoon sherry vinegar or red wine vinegar to finish
  • 1 tablespoon black pepper or to taste
  • 1 cup shredded Gruyère cheese or half Gruyère, half mozzarella for creamier melt

For the Meatballs

  • 1/2 cup milk
  • 1 large egg
  • 1/4 cup grated Pecorino Romano
  • 3/4 teaspoon fine salt
  • 1/2 teaspoon black pepper
  • 1/2 tablespoon dried thyme
  • 1 tablespoon chopped fresh parsley
  • 1 tablespoon fresh minced garlic
  • 2 slices white bread, crusts removed and torn into small pieces
  • 1 pound ground beef, or ½ pound beef + ½ pound ground pork for extra tenderness
  • 1/2 cup diced caramelized onions, reserved from sauce

Instructions

Caramelize the Onions

  • In a heavy-bottomed pot or Dutch oven, melt the butter and olive oil over medium heat. Add all the sliced onions, stir to coat, and cover. Cook for 30 minutes, stirring occasionally.
  • Remove the lid, reduce heat to low, and add 1/2 teaspoon fine salt. Continue cooking 30–45 minutes, stirring every 10 minutes until the onions are deep golden brown and jammy.
  • Deglaze the pan with ¼ cup dry sherry (or white wine), scraping up any browned bits. Simmer until almost evaporated.
  • Reserve ½ cup of the onions for the meatballs.
  • Sprinkle the remaining onions with flour and tomato paste, stirring constantly for 3–4 minutes until lightly browned and fragrant.
  • Stir in Worcestershire sauce, beef stock, Better Than Bouillon (if using), thyme, and black pepper.
  • Simmer uncovered for 25–30 minutes to develop flavor and thicken slightly. Remove thyme stems.
  • Stir in vinegar at the end to brighten the flavor. Keep warm on low heat.

Make the Meatballs

  • Preheat oven to 400°F (204ºC).
  • In a large mixing bowl, combine milk, egg, Pecorino, salt, pepper, parsley, garlic, and bread. Mash into a soft paste (panade) and let rest for 5 minutes to fully absorb.
  • Add ground beef (and pork, if using) along with the ½ cup chopped caramelized onions.
  • Using your hands, gently mix just until combined — do not overwork the meat.
  • Form into 2-ounce meatballs (about golf-ball size) and arrange on a parchment-lined baking sheet.
  • Bake for 20 minutes, or until cooked through (internal temperature 160°F).

Assemble

  • Transfer the baked meatballs into the warm onion sauce.
  • Simmer gently for 10 minutes to let the flavors meld.
  • Spoon meatballs and sauce into an oven-safe skillet or baking dish.
  • Top generously with Gruyère (or Gruyère-mozzarella blend).
  • Broil for 2–3 minutes, just until bubbly and golden brown.
  • Garnish with chopped parsley or green onions before serving.

Notes

  1. Parmesan Rind Magic: Add a Parmesan rind to the sauce while simmering for 20 minutes, then remove before serving. It infuses the sauce with nutty depth.
  2. Flavor Boost: The splash of vinegar or Dijon mustard at the end cuts through the richness perfectly.
  3. Serving Idea: These are fantastic over creamy mashed potatoes, buttered noodles, or toasted baguette rounds — just like a deconstructed bowl of French onion soup.

Nutrition

Serving: 1meatball | Calories: 274kcal | Carbohydrates: 14g | Protein: 14g | Fat: 18g | Saturated Fat: 8g | Monounsaturated Fat: 7g | Cholesterol: 64mg | Sodium: 637mg | Potassium: 393mg | Fiber: 2g | Sugar: 5g | Vitamin A: 330IU | Vitamin C: 8mg | Calcium: 204mg | Iron: 2mg