I made Cheesy French Onion Meatballs that give you gooey Gruyère stretches, punchy caramelized onions, and meatballs so juicy you’ll want to keep scrolling for the recipe.

I adore this French Onion Meatball Skillet like my brain short-circuits when the cheese pulls. It’s everything I want from Cheesy French Onion Meatballs and Meatball Recipes Easy without being sappy about it.
I love the way Gruyère cheese melts into each meatball and caramelized yellow onions crowd the skillet. But the meatballs stay juicy and surprise you with pockets of molten cheese.
I eat it with bread or mashed potatoes and feel zero guilt. It’s honest, loud dinner food that tastes like dinner.
I’m obsessed and I know you’ll fight me for last bite. Worth every greasy, glorious crumb.
Ingredients

- Ground turkey, lean protein that keeps meatballs lighter and not overly greasy.
- Gruyère cubes, gooey cheesy surprise inside each meatball, super satisfying.
- Shredded Gruyère, melty blanket on top that’s rich and stringy.
- Egg, it binds everything together so meatballs don’t fall apart.
- Breadcrumbs, give structure and a little chew, absorbs juices nicely.
- Milk, softens the crumbs and keeps meatballs tender.
- Parmesan, salty umami punch, great for depth without fuss.
- Parsley, fresh herb lift, makes things look and taste brighter.
- Kosher salt, basic seasoning that brings out everything’s flavor.
- Black pepper, subtle heat and warmth, not overpowering.
- Garlic powder, easy garlic boost when you don’t want chunks.
- Onion powder, adds that oniony backbone without extra cooking.
- Butter, caramelizes onions and gives that rich, mellow sweetness.
- Olive oil, for searing and preventing sticking, a neutral pan friend.
- Yellow onions, caramelized backbone, sweet and deeply savory when cooked low.
- Sugar, helps caramelize onions faster, kind of a secret trick.
- Garlic cloves, fresh punch and aroma you’ll notice immediately.
- Dry white wine, bright acidity and depth, can swap stock easily.
- Beef broth, savory liquid base that makes the sauce hearty.
- Worcestershire sauce, tangy, slightly funky umami booster.
- Thyme, herbal note that’s earthy and pairs well with beef flavors.
- Bay leaf, subtle background layer, adds warmth while simmering.
- Baguette or mashed potatoes, for sopping up that delicious jus.
Ingredient Quantities
- 1 pound ground turkey, preferably 93% lean
- 4 ounces Gruyère cheese, cut into small cubes for stuffing the meatballs
- 1 cup shredded Gruyère, for melting on top
- 1 large egg, beaten
- 1/2 cup plain breadcrumbs (panko or regular)
- 2 tablespoons milk
- 1/4 cup grated Parmesan cheese
- 1 tablespoon chopped fresh parsley, plus extra for garnish
- 1 teaspoon kosher salt, divided
- 1/2 teaspoon freshly ground black pepper, divided
- 1 teaspoon garlic powder
- 1 teaspoon onion powder
- 2 tablespoons unsalted butter, for caramelizing onions
- 1 tablespoon olive oil, for the skillet and searing
- 4 large yellow onions, thinly sliced (about 1.5 to 2 pounds)
- 1 teaspoon granulated sugar (helps with caramelization), optional but recommended
- 2 cloves garlic, minced
- 1/2 cup dry white wine, optional (can sub chicken or beef stock)
- 4 cups low sodium beef broth (or beef stock)
- 1 tablespoon Worcestershire sauce
- 1 teaspoon fresh thyme leaves or 1/2 teaspoon dried thyme
- 1 bay leaf, optional
- Fresh baguette or 4 cups mashed potatoes, for serving (optional)
How to Make this
1. Start the caramelized onions: heat 2 tablespoons unsalted butter and 1 tablespoon olive oil in a large ovenproof skillet over medium low heat. Add 4 thinly sliced yellow onions, 1 teaspoon granulated sugar, a pinch of the kosher salt and 1/4 teaspoon black pepper, and cook slow, stirring every few minutes until deep golden and soft, about 35 to 45 minutes. Add 2 cloves minced garlic near the end, then deglaze with 1/2 cup dry white wine or a splash of beef or chicken stock if you prefer, scraping up browned bits.
2. While the onions cook, make the cheese stuffed turkey meatball mixture: in a bowl combine 1 pound ground turkey (93% lean recommended), 1 large beaten egg, 1/2 cup plain breadcrumbs, 2 tablespoons milk, 1/4 cup grated Parmesan, 1 tablespoon chopped fresh parsley, 1 teaspoon garlic powder, 1 teaspoon onion powder, 1/2 teaspoon black pepper, and 1 teaspoon kosher salt. Mix gently, don’t overwork it or meatballs get tough.
3. Cube 4 ounces Gruyère into small pieces for stuffing. Take a golf ball sized amount of turkey mix, flatten in your hand, place a cube of Gruyère in the center and wrap the meat around it to seal. Repeat until you have about 12 to 16 meatballs depending on size.
4. Heat 1 tablespoon olive oil in a separate skillet or the same ovenproof skillet pushed to the side, over medium high heat. Brown the meatballs in batches so they get a good sear, about 2 minutes per side. They do not need to be cooked through. Transfer browned meatballs to a plate.
5. Add the meatballs back to the skillet nestling them into the caramelized onions. Pour in 4 cups low sodium beef broth, 1 tablespoon Worcestershire sauce, and add 1 teaspoon fresh thyme leaves or 1/2 teaspoon dried thyme and 1 bay leaf if using. Bring to a gentle simmer.
6. Simmer uncovered for 10 to 12 minutes so the meatballs finish cooking and flavors meld. Taste the broth and adjust seasoning with more salt and pepper if needed.
7. Preheat your broiler while the skillet simmers, or if you dont have one, preheat oven to 425°F. Remove the bay leaf and sprinkle 1 cup shredded Gruyère evenly over the meatballs and onions.
8. Broil or bake just until the cheese is melted and bubbling, about 2 to 4 minutes under a hot broiler or 6 to 8 minutes in the oven. Watch it closely so the cheese doesnt burn.
9. Finish with a sprinkle of the remaining tablespoon chopped fresh parsley and let rest for a couple minutes. If the sauce is too thin, simmer a minute longer to reduce, or stir in a pat of butter for gloss.
10. Serve straight from the skillet with slices of fresh baguette to dunk or over 4 cups creamy mashed potatoes for the ultimate comfort meal. Enjoy the gooey Gruyère center in the meatballs, just be careful theyre hot.
Equipment Needed
1. Large ovenproof skillet (cast iron works great)
2. Chef’s knife and a cutting board
3. Large mixing bowl
4. Measuring cups and spoons
5. Wooden spoon or heatproof spatula
6. Small skillet (if you prefer to sear meatballs separately) or a plate to hold browned meatballs
7. Tongs or a slotted spoon
8. Cheese grater (for the Gruyère) and a small bowl for the cubes
9. Oven mitts and an instant read thermometer (thermometer optional but handy)
FAQ
French Onion Meatball Skillet Recipe Substitutions and Variations
- Ground turkey: swap for ground beef (80/20) for richer flavor, ground pork for juiciness, or a plant based crumble if you want vegetarian.
- Gruyère (both the cubes and shredded): use Swiss cheese, fontina, or young Asiago, even sharp cheddar will work in a pinch.
- Breadcrumbs: plain panko makes them lighter, crushed saltines or tortilla chips add crunch and flavor, or use quick oats for a gluten free-ish binder.
- Beef broth: sub with low sodium chicken broth, vegetable broth for a lighter note, or mushroom broth for extra umami; if you skipped the wine, add a splash of balsamic vinegar to brighten it up.
Pro Tips
1) Keep the turkey cold and handle it gently. Chill the meat until just before shaping and mix only until combined. Overworking makes turkey meatballs dense and dry, but a cold mix holds together better when stuffing with Gruyère.
2) Caramelize the onions low and slow and don’t rush them. If they start browning too fast lower the heat and add a splash of stock or water to scrape up the fond. A little sugar and patience gives that deep sweetness that makes the broth taste rich.
3) Seal the cheese well and use a small cube. Press the meat around the Gruyère tightly so no cheese leaks during searing or simmering. If any oozes out, it can burn in the pan and make a mess.
4) Control the broth concentration. Start with the 4 cups but simmer a bit longer if it tastes weak, or add a splash of Worcestershire or a pinch more salt to punch it up. If it gets too thin at the end, remove meatballs, reduce the liquid to concentrate, then return them and finish under the broiler.

French Onion Meatball Skillet Recipe
I made Cheesy French Onion Meatballs that give you gooey Gruyère stretches, punchy caramelized onions, and meatballs so juicy you’ll want to keep scrolling for the recipe.
4
servings
687
kcal
Equipment: 1. Large ovenproof skillet (cast iron works great)
2. Chef’s knife and a cutting board
3. Large mixing bowl
4. Measuring cups and spoons
5. Wooden spoon or heatproof spatula
6. Small skillet (if you prefer to sear meatballs separately) or a plate to hold browned meatballs
7. Tongs or a slotted spoon
8. Cheese grater (for the Gruyère) and a small bowl for the cubes
9. Oven mitts and an instant read thermometer (thermometer optional but handy)
Ingredients
-
1 pound ground turkey, preferably 93% lean
-
4 ounces Gruyère cheese, cut into small cubes for stuffing the meatballs
-
1 cup shredded Gruyère, for melting on top
-
1 large egg, beaten
-
1/2 cup plain breadcrumbs (panko or regular)
-
2 tablespoons milk
-
1/4 cup grated Parmesan cheese
-
1 tablespoon chopped fresh parsley, plus extra for garnish
-
1 teaspoon kosher salt, divided
-
1/2 teaspoon freshly ground black pepper, divided
-
1 teaspoon garlic powder
-
1 teaspoon onion powder
-
2 tablespoons unsalted butter, for caramelizing onions
-
1 tablespoon olive oil, for the skillet and searing
-
4 large yellow onions, thinly sliced (about 1.5 to 2 pounds)
-
1 teaspoon granulated sugar (helps with caramelization), optional but recommended
-
2 cloves garlic, minced
-
1/2 cup dry white wine, optional (can sub chicken or beef stock)
-
4 cups low sodium beef broth (or beef stock)
-
1 tablespoon Worcestershire sauce
-
1 teaspoon fresh thyme leaves or 1/2 teaspoon dried thyme
-
1 bay leaf, optional
-
Fresh baguette or 4 cups mashed potatoes, for serving (optional)
Directions
- Start the caramelized onions: heat 2 tablespoons unsalted butter and 1 tablespoon olive oil in a large ovenproof skillet over medium low heat. Add 4 thinly sliced yellow onions, 1 teaspoon granulated sugar, a pinch of the kosher salt and 1/4 teaspoon black pepper, and cook slow, stirring every few minutes until deep golden and soft, about 35 to 45 minutes. Add 2 cloves minced garlic near the end, then deglaze with 1/2 cup dry white wine or a splash of beef or chicken stock if you prefer, scraping up browned bits.
- While the onions cook, make the cheese stuffed turkey meatball mixture: in a bowl combine 1 pound ground turkey (93% lean recommended), 1 large beaten egg, 1/2 cup plain breadcrumbs, 2 tablespoons milk, 1/4 cup grated Parmesan, 1 tablespoon chopped fresh parsley, 1 teaspoon garlic powder, 1 teaspoon onion powder, 1/2 teaspoon black pepper, and 1 teaspoon kosher salt. Mix gently, don’t overwork it or meatballs get tough.
- Cube 4 ounces Gruyère into small pieces for stuffing. Take a golf ball sized amount of turkey mix, flatten in your hand, place a cube of Gruyère in the center and wrap the meat around it to seal. Repeat until you have about 12 to 16 meatballs depending on size.
- Heat 1 tablespoon olive oil in a separate skillet or the same ovenproof skillet pushed to the side, over medium high heat. Brown the meatballs in batches so they get a good sear, about 2 minutes per side. They do not need to be cooked through. Transfer browned meatballs to a plate.
- Add the meatballs back to the skillet nestling them into the caramelized onions. Pour in 4 cups low sodium beef broth, 1 tablespoon Worcestershire sauce, and add 1 teaspoon fresh thyme leaves or 1/2 teaspoon dried thyme and 1 bay leaf if using. Bring to a gentle simmer.
- Simmer uncovered for 10 to 12 minutes so the meatballs finish cooking and flavors meld. Taste the broth and adjust seasoning with more salt and pepper if needed.
- Preheat your broiler while the skillet simmers, or if you dont have one, preheat oven to 425°F. Remove the bay leaf and sprinkle 1 cup shredded Gruyère evenly over the meatballs and onions.
- Broil or bake just until the cheese is melted and bubbling, about 2 to 4 minutes under a hot broiler or 6 to 8 minutes in the oven. Watch it closely so the cheese doesnt burn.
- Finish with a sprinkle of the remaining tablespoon chopped fresh parsley and let rest for a couple minutes. If the sauce is too thin, simmer a minute longer to reduce, or stir in a pat of butter for gloss.
- Serve straight from the skillet with slices of fresh baguette to dunk or over 4 cups creamy mashed potatoes for the ultimate comfort meal. Enjoy the gooey Gruyère center in the meatballs, just be careful theyre hot.
Notes
- Below you’ll find my best estimate of this recipe’s nutrition facts. Treat the numbers as a guide rather than a rule—great food should nourish both body and spirit. Figures are approximate, and the website owner assumes no liability for any inaccuracies in this recipe.
Nutrition Facts
- Serving Size: 692g
- Total number of serves: 4
- Calories: 687kcal
- Fat: 41.5g
- Saturated Fat: 18.8g
- Trans Fat: 0.5g
- Polyunsaturated: 2.5g
- Monounsaturated: 12.5g
- Cholesterol: 228mg
- Sodium: 1381mg
- Potassium: 858mg
- Carbohydrates: 33g
- Fiber: 6.5g
- Sugar: 9g
- Protein: 56.4g
- Vitamin A: 625IU
- Vitamin C: 16mg
- Calcium: 640mg
- Iron: 1.9mg













