Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

French Onion Meatballs

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Tender, juicy meatballs soaked in a rich French onion sauce and topped with gooey cheese – inspired by the comforting flavors of French onion soup.

  • Total Time: 1 hour 30 minutes
  • Yield: 6 servings

Ingredients

Ingredients:

Meatball Ingredients:

1 ½ cups fresh breadcrumbs (or panko breadcrumbs)

¼ cup plus 2 tablespoons whole milk

1 ½ pounds organic ground beef (85/15 ratio)

1 tablespoon chopped parsley

1 teaspoon fresh thyme leaves, plus extra for garnish

1 teaspoon herbes de Provence

Salt (about 1 teaspoon, or your desired amount)

Black pepper (about ¼ teaspoon, or your desired amount)

½ large, white onion, finely minced

4 cloves garlic, pressed through garlic press

¾ cup grated Gruyere cheese, divided use

1 egg, whisked

1 cup shredded, whole milk mozzarella cheese

French Onion Sauce Ingredients:

4 tablespoons olive oil, divided use

2 tablespoons ghee or butter

2 ½ large, white onions, halved and sliced

Salt

Black pepper

4 cloves garlic, pressed through garlic press

1 teaspoon herbes de Provence

1 teaspoon dried thyme

¼ cup sherry (or white wine)

1 ½ tablespoons flour

2 ¼ cup beef stock

2 teaspoons fresh thyme leaves

Instructions

  1. Prepare the meatballs: In a dish, soak breadcrumbs in milk for about 5 minutes. In a large bowl, combine the ground beef, soaked breadcrumbs, parsley, thyme, herbes de Provence, salt, pepper, minced onion, garlic, ¼ cup of the shredded Gruyere cheese, and the whisked egg. Mix gently, being careful not to overwork the mixture. Roll into 2-tablespoon-sized meatballs and refrigerate for 15 minutes.
  2. Sear the meatballs: Heat 2 tablespoons of olive oil in a large skillet over medium-high heat. Brown the meatballs on all sides for about 8 to 10 minutes. Once browned, remove them from the skillet and set aside.
  3. Make the French onion sauce: In the same skillet, add another 2 tablespoons of olive oil and ghee (or butter). Once hot, add the onions with a pinch of salt and pepper. Cook for 20 to 25 minutes, stirring often, until they become caramelized and soft. Stir in the garlic, herbes de Provence, and dried thyme, cooking until fragrant (about 30 seconds). Add the sherry (or wine) and allow it to reduce for 30 seconds. Sprinkle in the flour, then pour in the beef stock. Stir to combine and simmer for 5 minutes.
  4. Combine the meatballs and sauce: Turn off the heat and stir in the fresh thyme. Return the meatballs to the skillet and top with the Gruyere and mozzarella cheeses. Broil the meatballs on high for 5 to 7 minutes, or until the cheese is melted and bubbly.
  5. Serve: Garnish with extra thyme leaves and serve with crusty bread or mashed potatoes.

Notes

  • Vegetarian Version: Use plant-based ground meat or veggie protein in place of the beef for a vegetarian option.
  • Cheese Swap: If Gruyere and mozzarella are not available, you can use Swiss cheese or cheddar for a different cheesy flavor.
  • Add Veggies: You can add sliced mushrooms or bell peppers to the sauce for extra depth and flavor.
  • Storage: Store any leftovers in an airtight container in the refrigerator for up to 3 days.
  • Reheating: Reheat in the microwave or on the stove over low heat until warmed through. If desired, you can also pop it under the broiler for a few minutes to melt the cheese again.
  • Author: Julia
  • Prep Time: 45 minutes (does not include chilling time for the meatballs)
  • Cook Time: 45 minutes
  • Category: Dinner
  • Method: Pan-sear and broil
  • Cuisine: French
  • Diet: Gluten Free

Nutrition

  • Serving Size: 1 meatball with sauce
  • Calories: 400
  • Sugar: 5g
  • Sodium: 800mg
  • Fat: 28g
  • Saturated Fat: 10g
  • Unsaturated Fat: 15g
  • Trans Fat: 1g
  • Carbohydrates: 12g
  • Fiber: 1g
  • Protein: 30g
  • Cholesterol: 85mg