From-Scratch French Onion Meatballs
If you’re looking for a cozy dinner upgrade, look no further than my French Onion Meatballs recipe! Tender ground beef meatballs are simmered in an herby onion sauce, then topped with melty, nutty gruyere for a deliciously savory, perfectly cheesy meal the whole family is sure to love.

I’m not sure if you know this about me, but I’m kinda obsessed with meatballs, and these french onion meatballs are my new favorites. If you’re a fan of baked french onion soup, I can basically guarantee they’ll be right up your alley.
They have all the sweet and savory complexity of the classic, but with a beefy, protein-packed backbone that is sure to quiet even the grumbliest of tummies. When served with a buttery, large-format crouton or a generous slice of garlic bread baguette, these french onion meatballs are absolutely irresistible.
Best of all, these little beauties are fantastic for meal prep. Feel free to mix up the meatball mixture and portion it into balls for freezing as a midweek shortcut. All that’s left to do is make the yummy onion sauce and pop it in the oven! Or, make the recipe all the way through for easy grab-and-go lunches and heat-and-eat dinners throughout the week.
Love meaty little bites of flavor-packed goodness? Me too. Check out my firecracker meatballs, mozzarella-stuffed meatballs, and Greek lamb & feta meatballs next for more inspiration.
Why You’ll Love This French Onion Meatball Recipe
- All-Natural – No shame if you’ve made onion soup mix meatballs in the past—they’re delicious! But with just about 15 minutes of extra prep time, you can coax out even better flavor without all the unpronounceable artificial extras like disodium inosinate.
- Versatile – Serve french onion meatballs as a decadent hors d’oeuvres using Asian soup spoons, or pile them high on creamy mashed potatoes, bouncy egg noodles, or fluffy rice for a filling dinner. You can also tuck them into a hoagie roll for a fantastic twist on a classic meatball sandwich.
- Fun Mash-Up – I love repackaging classic recipes in new formats, and these beef french onion soup meatballs are no exception. They have all the flavor of the bubbling original, but with a meatier bite. (If you’re also a fan of mash-ups, try my slow cooker lasagna soup and puppy chow truffles next!)

Nutritional Deep Dive
These French onion meatballs are a hearty, protein-forward meal that still feels balanced and nourishing. One serving (⅕ of the recipe, without bread for serving) provides 589 calories, 38.5 grams of protein, 35.8 grams of fat, and 21.5 grams of carbohydrates.
The combination of lean ground beef, egg, and Gruyère cheese contributes both protein and essential nutrients like iron, zinc, vitamin B12, and calcium. (If you can swing the extra cost, use grass-fed beef for a healthier fat and nutrient profile.) Meanwhile, the caramelized yellow onions and garlic add natural sweetness along with antioxidants and prebiotics that support gut health.
Using olive oil and butter offers a blend of monounsaturated fats for heart health alongside rich flavor. Overall, these meatballs are a satisfying, nourishing option when you’re craving something cozy but still want a well-rounded meal. That said, there are always ways to tweak the recipe to fit your needs:
- For more protein, use 90/10 or 93/7 ground beef to bump up protein while keeping things lighter. Serving these meatballs alongside a high-protein side like roasted chickpeas or Greek yogurt mashed potatoes is another easy win.
- For more fiber, swap traditional breadcrumbs for whole wheat breadcrumbs or even oat flour to add fiber without changing the texture much. You can also stir in finely chopped mushrooms or cooked lentils to the meatball mixture—they blend right in, add fiber, and keep the meatballs juicy. Pairing the dish with fiber-rich veggies like smashed broccoli parmesan, air fryer sweet potato cubes, or crack green beans is a great way to round out your plate.
- To lighten things up, choose lean or extra lean ground beef, use reduced-fat Gruyère, and slightly scale back the cheese topping. You can also reduce the butter and lean a bit more on olive oil when cooking the onions. Skipping the bread for serving (perhaps in favor of cottage cheese flatbread?) also helps keep calories in check.

Ingredients & Substitutions
- Bread Crumbs – Feel free to use either regular, panko, or gluten-free breadcrumbs here. In a pinch, you can also swap in a slice of sandwich bread, but cut back slightly on the milk.
- Milk – This amps up the binding power of the bread crumbs and helps make the meatballs extra tender. Feel free to use any percentage of dairy milk, or swap in your favorite unsweetened plant-based alternative.
- Yellow Onions & Garlic – Because french onion soup isn’t french onion soup without them!
- Ground Beef – I personally find that 85/15 or 90/10 is best, but you can use slightly richer 80/20 or lighter 93/7 if you prefer.
- Egg – This helps provide structure for the meatballs and prevents them from falling apart. As a bonus, it adds extra protein!
- Fresh Parsley – Either flat (Italian) parsley or curly parsley works. In a pinch, swap in ⅓ as much dried parsley in the sauce.
- Worcestershire Sauce – This umami booster adds a deeply savory flavor that makes your french onion meatballs taste like you spent way more time making them than you did. You’re welcome to swap in other umami-rich condiments like soy sauce, fish sauce, or Maggi seasoning.
- Herbs de Provence – This delightful French herb blend combines all kinds of flavors like thyme, rosemary, savory, oregano, marjoram, basil, tarragon, and sometimes lavender. It adds a ton of depth without needing to measure a bunch of spices individually. If you need, you can make your own.
- Olive Oil & Butter – I like to use olive oil to cook the meatballs since the beef is already rich, then use butter for sautéing the onions and garlic. The best of all worlds!
- Dry White Wine – Pinot grigio or sauvignon blanc are great. Pro tip: keep a box of inexpensive wine in the pantry for cooking. Since no air is let into the bag, it keeps well for several months!
- All Purpose Flour – This is how we thicken our french onion sauce. Make sure to cook the flour well so it doesn’t leave an unpleasant flavor. (If you’re gluten-free, hop down to the optional variations section for good alternatives!)
- Beef Broth – The more flavorful your broth, the better your sauce will be. Use beef bone broth for an extra hit of protein.
- Gruyere Cheese – This is the classic cheese for beef french onion soup, adding a nutty, slightly funky flavor. Swiss cheese is a close substitute.
- Fresh Thyme – Having fresh herbs on hand is one of the easiest ways to take your meals from ho-hum to restaurant-worthy.

How To Make French Onion Meatballs From Scratch
Step 1: Make Panade. In a small bowl, combine the bread crumbs and milk. Let it soak for about 5 minutes until the bread is soft and spongy—this keeps the meatballs tender and juicy.
Step 2: Sauté Aromatics. Heat the olive oil in an oven-safe skillet over medium heat. Add the grated onion and minced garlic and sauté until softened and lightly golden. Remove from the heat and let cool slightly.
Step 3: Make Meatball Mixture. Add the ground beef, salt, black pepper, egg, parsley, Worcestershire sauce, herbs de Provence, soaked bread crumbs, and the sautéed onion mixture to a large bowl. Use your hands to gently mix until just combined—don’t overwork it.
Step 4: Shape & Chill. Scoop the mixture into 2-tablespoon portions (about golf-ball sized). Roll with wet hands and place on a parchment-lined baking sheet. Cover and refrigerate for 30 minutes to help them hold their shape. Preheat your oven to 400°F while the meatballs chill.
Step 5: Bake the meatballs for 25–30 minutes, or until cooked through and the internal temperature reaches 165°F.
Step 6: Caramelize Onions. While the meatballs bake, return the skillet to the stove and add the olive oil and butter. Once melted, add the onions, salt, and black pepper. Cook over medium to medium-low heat, stirring occasionally, until the onions are deeply golden and reduced by about half, about 30 minutes.
Step 7: Add Garlic. Stir in the garlic and cook for about 1 minute, stirring constantly until fragrant.
Step 8: Deglaze. Pour in the white wine and scrape up any browned bits (a.k.a. fond) from the bottom of the pan—this adds tons of flavor to the sauce.
Step 9: Thicken. Sprinkle in the flour and stir well. Cook for 2-3 minutes until the flour begins to stick slightly to the pan.
Step 10: Finish Sauce. Slowly pour in the beef broth, stirring continuously, until a slightly thickened sauce forms. Let it simmer for about 5 minutes.
Step 11: Combine. Add the cooked meatballs to the skillet and gently stir to coat them in the onion sauce.
Step 12: Add Bread & Cheese. Nestle a few slices of French bread into the pan and sprinkle the meatballs and bread with shredded Gruyère cheese.
Step 13: Broil. Switch the oven to broil and place the skillet on the top rack. Broil for 3-4 minutes, or until the cheese is melted and lightly golden.
Step 14: Garnish & Serve. Remove from the oven, garnish with fresh thyme, and serve warm with mashed potatoes, a side salad, or your favorite vegetables.












Optional Variations
- Lower-Carb – Use almond flour or crushed pork rinds in place of the breadcrumbs, and thicken the sauce with a small amount of cornstarch slurry (or a pinch of xanthan gum) instead of flour. Serve the meatballs over cauliflower mash, zucchini noodles, or sautéed greens instead of bread.
- Gluten-Free – Swap the breadcrumbs for gluten-free breadcrumbs or certified gluten-free oats, and use a 1:1 gluten-free all-purpose flour or a cornstarch slurry to thicken the sauce. Double-check that your Worcestershire sauce is gluten-free, and replace the bread with roasted potatoes or mashed cauliflower for serving.
- Protein Swap – Feel free to use ground turkey or ground chicken for a lighter version. While I personally prefer beef here, I can attest that French onion chicken meatballs are quite tasty.

Expert Tips
- Don’t skip the panade. Soaking the breadcrumbs in milk may seem minor, but it’s key for ultra-tender meatballs that stay juicy instead of dense or dry.
- Use grated onion in the meatballs. Grating (instead of dicing) helps the onion melt right into the mixture, adding moisture and flavor without chunks.
- Mix gently—less is more. Overmixing the meat can lead to tough meatballs. Use your hands and stop as soon as everything looks evenly combined.
- Chilling helps them hold their shape. That 30-minute rest in the fridge makes the meatballs easier to bake and prevents them from spreading.
- Low and slow for the onions. True French onion flavor comes from patience. Keep the heat at medium-low and let the onions caramelize gradually for maximum sweetness.
- Deglaze every time. Scraping up the browned bits after adding the wine adds serious depth to the sauce—don’t rush this step.
- Let the flour cook briefly. Cooking the flour for a couple of minutes removes the raw taste and helps create a smooth, well-balanced sauce.
- Broil with a close eye. Cheese can go from perfectly melty to burned fast, so stay nearby during the final broil.
- Rest before serving. Let the skillet sit for a few minutes after broiling so the sauce thickens slightly and the cheese sets up beautifully.

Serving Suggestions
These French Onion Meatballs are perfect for pairing with something that can soak up the savory onion sauce. Truffle mashed potatoes (or low-carb mashed cauliflower) creates a comforting base that balances the beefy, cheesy flavors. For something lighter, roasted frozen broccoli and/or air fryer baked sweet potatoes are perfect.
If you’re skipping bread, these meatballs are just as delicious served over zucchini noodles, spaghetti squash, or a bed of sautéed greens. On the flip side, if comfort is the goal, spoon the meatballs and sauce over toasted French bread or sourdough for a French onion–inspired open-faced sandwich that feels indulgent but still satisfying.
How to build your plate: Aim for balance by filling half your plate with vegetables, adding a generous portion of meatballs for protein, and choosing either a starch (like potatoes or bread) or a veggie-based base—no need for both unless it’s a special occasion.

Storage and Reheating Instructions
- Fridge: Store leftover French onion meatballs in an airtight container in the refrigerator for up to 4 days. Make sure the meatballs are fully cooled before storing to keep the sauce from becoming watery.
- Freezer: For longer storage, these meatballs freeze well. Transfer cooled meatballs and sauce to a freezer-safe container and freeze for up to 3 months. Thaw overnight in the refrigerator before reheating for best texture.
- To reheat, warm the meatballs gently in a skillet over medium-low heat, adding a splash of beef broth if the sauce has thickened too much. You can also reheat individual portions in the microwave, covered, in 30–45 second intervals until warmed through. If reheating with cheese on top, the oven or toaster oven works best to keep the cheese melty and the sauce smooth.
- Make-Ahead: These French Onion Meatballs are a great make-ahead option. You can prep and shape the meatballs up to 24 hours in advance, store them covered in the refrigerator, and bake them when ready. The onion sauce can also be made 1-2 days ahead and reheated gently on the stovetop. When ready to serve, combine the baked meatballs and sauce, top with cheese, and broil just before serving for the best flavor and texture.

FAQs
Yellow onions are the best choice for meatballs. They soften and sweeten as they cook, adding lots of flavor without overpowering the meat, which makes them especially perfect for French onion soup meatballs.
Yes—you can make meatballs without onions. They’ll still hold together and taste great, though you may want to add a little extra garlic, herbs, or seasoning to make up for the flavor onions normally provide.
French onion meatballs pair best with sides that can either soak up the rich onion sauce or balance it with freshness. Classic options include mashed potatoes, mashed cauliflower, or toasted French bread. For a lighter plate, serve them with roasted vegetables like green beans, Brussels sprouts, or broccolini, or add a simple green salad with a vinaigrette to cut through the richness. They’re also great over egg noodles, zucchini noodles, or spaghetti squash, depending on whether you’re going for comfort food or something lighter.
The key to soft meatballs that stay together is using a panade—a mixture of breadcrumbs and milk—which keeps them tender and prevents them from drying out. Gently mixing the meat (don’t overwork it), using an egg for binding, and letting the meatballs rest or chill before cooking also help them hold their shape while staying juicy and soft.
Related Recipes
More Meatball Recipes
- Pineapple Teriyaki Chicken Meatballs
- Firecracker Meatballs
- Greek Chicken Meatballs
- Mozzarella Stuffed Meatballs
- Pesto Turkey Meatballs
- Buffalo Chicken Meatballs
More Ground Beef Recipes
- Asian Inspired Beef & Pepper Rice Bowls
- Southwestern Beef & Sweet Potato Skillet
- Creamy Ground Beef Taco Soup
- Viral Hot Honey Ground Beef Bowls
- Mexican Beef & Rice Skillet

From-Scratch French Onion Meatballs
- Prep Time: 40 Minutes
- Chilling Time: 30 Minutes
- Cook Time: 1 hour
- Total Time: 2 hours 10 minutes
- Yield: 5 Servings
- Category: Dinner
Description
If you’re looking for a cozy dinner upgrade, look no further than my French Onion Meatballs recipe! Tender ground beef meatballs are simmered in an herby onion sauce, then topped with melty, nutty gruyere for a deliciously savory, perfectly cheesy meal the whole family is sure to love.
Ingredients
For the meatballs:
- ½ Cup Bread Crumbs
- ½ Cup Milk
- 1 Tablespoons Olive Oil
- ½ Cup Yellow Onion, grated or finely diced
- 3 cloves Garlic, minced
- 1 ½ pound Ground Beef, 85/15 or 90/10 is best
- 1 teaspoon Kosher Salt
- ½ teaspoon Black Pepper
- 1 Eggs, lightly beaten
- 1 Tablespoons Fresh Parsley
- 2 teaspoons Worcestershire Sauce
- ¾ teaspoon Herbs de Provence
For the sauce:
- 2 Tablespoons Olive Oil
- 2 Tablespoons Butter
- 2–3 large Yellow Onions, about 2 pounds thinly sliced
- ½ teaspoon Kosher Salt
- ¼ teaspoon Black Pepper
- 2 cloves Garlic, minced
- ½ Cup Dry White Wine
- 2 Tablespoons All Purpose Flour
- 2 Cups Beef Broth
- 1 Cup Gruyere Cheese, shredded
- French Bread, cut into thick slices
- Fresh Thyme for garnish
Instructions
-
Combine the bread crumbs and milk in a small bowl. Set aside for about 5 minutes.
-
Add the olive oil to an oven safe skillet over medium heat. Once the oil is hot, add in the grated onion and minced garlic. Saute until lightly browned and softened. Remove from heat.
-
Combine the ground beef, salt, black pepper, beaten egg, fresh parsley, worcestershire sauce, herbs de provence, soaked bread crumbs, sauteed onions and garlic in a mixing bowl. Stir together with your hands until the mixture is evenly combined.
-
Scoop the meatballs into 2 Tablespoon sized portions, about the size of a golf ball. Use wet hands to roll them into balls and place them on a parchment paper lined baking sheet. Cover the meatballs with plastic wrap and refrigerate for 30 minutes.
-
Preheat the oven to 400F.
-
Bake the meatballs for 25-30 minutes or until the internal temperature reaches 165F.
-
While the meatballs are baking, prepare the sauce. Add the olive oil and butter to the oven safe skillet you used before.
-
Once the butter has melted, add in the onions, salt and black pepper. Cook over medium or medium low heat, stirring occasionally, until they are reduced in size by half and golden brown in color. It will take about 30 minutes.
-
Add in the garlic and cook for another minute, stirring constantly.
-
Pour in the white wine and deglaze the bottom of the pan.
-
Add in the flour. Stir together and cook for 2-3 minutes until the flour begins to stick to the bottom of the pan.
-
Pour in the beef broth and stir well. It should create a sauce that is slightly thickened. Continue to simmer for about 5 minutes.
-
Add the cooked meatballs to the pan and stir to coat them in the onion sauce.
-
Add a few slices of french bread to the pan and sprinkle the top of the meatballs and bread with shredded cheese.
-
Turn the oven to broil and place the pan on the top rack. Broil for 3-4 minutes until melted.
-
Remove from oven and garnish with fresh thyme. Serve with mashed potatoes, side salad or vegetables.
Nutrition
- Serving Size: 1/5 Recipe
- Calories: 590 Cals
- Fat: 36g
- Carbohydrates: 22g
- Protein: 39g