Everything you love about French onion soup, but a little heartier, these French Onion Meatballs are easy to make and incredibly comforting. They’re fancy enough for holiday entertaining but simple enough to whip up for a weeknight dinner.

Hands holding spoonful of onions above meatballs in cast iron pan.


I recently shared my French onion soup recipe and while I was making it I found myself craving something a bit heartier, but with the same great flavor.

These French onion meatballs combine the usual meatball suspects of ground beef, breadcrumbs, garlic, and eggs, but with the addition of fresh thyme.

They’re lightly fried, then simmered in a hearty caramelized onion sauce and finished with melted Swiss.

These French onion soup meatballs make the perfect appetizer for holidays and dinner parties but are so good you’ll want them during the week too.

Serve them with roasted garlic mashed potatoes and roasted broccoli for a full and delicious meal.

Recipe Ingredients

All ingredients for this recipe are shown in the pic below and special notes are made in this bulleted list to assist you.

Ingredients shown: eggs, chicken stock, breadcrumbs, flour, onions, garlic, brandy, baguette, red wine, ground beeg, swiss cheese, butter, olive oil, thyme, and milk.
  • Ground beef. Use ground chuck for maximum flavor, but you can use leaner ground beef if you’d like.
  • Milk. Adds moisture to the meatballs.
  • Breadcrumbs. I used Italian seasoned breadcrumbs, but you can also use plain breadcrumbs.
  • Eggs. To bind the meatballs.
  • Thyme. For both the meatballs and for the sauce.
  • Onions. Sliced root to stem for caramelizing.
  • Red wine. Use a dry red wine such as Cabernet or Pinot Noir.
  • Brandy. While this is optional, it adds great flavor to the sauce. You can also use sherry.
  • Chicken stock. Use homemade chicken stock whenever possible, or opt for chicken base.
  • Swiss cheese. For melting on the French onion soup meatballs and baguette. You can use Gruyere as well.

See the recipe card for complete information on ingredients and quantities.

How to make it

Each number corresponds to the numbered written steps below.

  1. Thinly slice 2 large yellow onions from root to stem and set aside. Mince 4 cloves of garlic (for the sauce) and finely mince 5 cloves of garlic to form a paste (for the meatballs). Shred 2 cups of Swiss cheese. In a large bowl, combine 1/4 cup of milk and 3/4 cup of Italian-seasoned breadcrumbs and allow to sit for 5 minutes. (Photo #1)
  2. After 5 minutes, to the breadcrumb mixture add 1 1/2 pounds of ground chuck, the garlic paste, 1 teaspoon of fresh thyme leaves, 1 teaspoon of salt, 1 teaspoon of black pepper, and 2 large eggs and mix gently until combined. (Photo #2)
French onion meatballs recipe collage number one showing mixing of meatballs in glass bowl and sauteing onions in large pan.
  1. Using your hands, roll approximately 1 1/2 inch meatballs and set them aside on a parchment paper lined sheet. You should wind up with 15-18 meatballs. (Photo #3)
  2. Heat a large pan to medium heat and add the onions along with 2 tablespoons of olive oil, 3 ounces of water, and 1/2 teaspoon of salt. Cover with a lid and allow to cook for 15 minutes. Remove the lid and continue to cook, stirring occasionally. Keep an eye on the onions and adjust the heat as needed to avoid burning adding a splash of water as needed. (Photo #4)
  3. Meanwhile, heat a large oven-safe frying pan to medium heat and add a thin layer of olive oil to coat the pan. Once the oil is hot, add the meatballs. (Photo #5)
  4. Fry the meatballs until browned, about 3 minutes per side, then remove with a slotted spoon and set aside on a dish. (Photo #6)
Recipe collage group two showing frying of meatballs, caramelizing onions, and adding garlic and flour to the pan.
  1. Preheat the oven to 450f and set the rack to the middle level. Remove the oil used to fry the meatballs and add the onions from the other pan along with 2 tablespoons of butter. (Photo #7)
  2. Continue to cook the onions over medium heat until they are deeply caramelized paying close attention to the heat, stirring frequently, and adding water as needed to prevent burning. Once the onions are done, add the minced garlic and cook for 1 minute, then add 1 1/2 tablespoons of flour to the pan and cook for 1-2 minutes, stirring frequently, until the flour is no longer white. (Photo #8)
  3. Add 1/2 cup of dry red wine and bring the sauce to a boil while scraping the bottom of the pan to dislodge any brown bits. Then add 2 cups of low-sodium (or homemade) chicken stock and a teaspoon of fresh thyme leaves and bring to a simmer for 5 minutes. (Photo #9)
  4. Taste test the French onion sauce and adjust salt and pepper to taste. Add 1 tablespoon of brandy or sherry, if using, and stir to combine. Add the meatballs to the pan and top with 3/4 of the Swiss cheese and bake for 7-10 minutes or until bubbly. (Photo #10)
Recipe collage number three showing mixing of red wine and stock into pan, adding meatballs and cheese to the pan, adding cheese to baguette slices, and cooked French onion meatballs in pan.
  1. Slice a baguette and place 12 slices on a baking sheet and top with the remaining Swiss cheese. Place under the broiler for a few minutes until the cheese melts and the bread is lightly toasted. (Photo #11)
  2. If you’d like a browner top on the meatballs, place them under the broiler for 2-3 minutes and watch carefully to prevent burning. Garnish with fresh thyme and serve with the toasted baguette slices. Serve and enjoy! (Photo #12)
White plate with 3 meatballs and toasted baguette.

Top tips

  • Be patient. Caramelizing onions is easy but takes time. The onions do require frequent stirring and should be monitored. If there are any signs of burning, simply add a splash of water to bring down the temperature of the pan and onions.
  • Use homemade stock. To immediately elevate the flavor in any recipe calling for stock, opt for homemade. My recipe for homemade chicken stock has zero salt added which gives you complete control of sodium levels in your food.
  • Alcohol. For my French onion meatball recipe I’m using a dry red wine to complement the beef. This is different from my French onion soup recipe where I use vermouth and homemade beef stock. I wanted to change the meatball recipe up a bit since the richness of the red wine just works here. While I do add a tablespoon of sherry or brandy at the end for additional flavor, this is optional.
French onion meatballs in cast iron pan with blue napkin.

More meatball recipes

Here are a few more of my favorite meatball recipes. I hope you love them!

If you’ve enjoyed this French Onion Meatballs Recipe or any recipe on this site, give it a 5-star rating and tell us about it in the comments below.

We strive to satisfy a number of learning styles.  If you are someone who prefers to learn by watching, you can find most of our recipes on YouTube and our Facebook Page.

French Onion Meatballs

4.88 from 8 votes
Prep: 20 minutes
Cook: 1 hour 20 minutes
Total: 1 hour 40 minutes
Servings: 4
These French onion meatballs combine perfectly seasoned beef meatballs simmered in a caramelized onion red wine sauce and finished with gooey melted cheese and toasty baguette.

Ingredients 

For the caramelized onions

  • 2 tablespoons olive oil
  • 2 large yellow onions sliced thinly from root to stem
  • 3 ounces water
  • 1/2 teaspoon salt
  • 2 tablespoons butter

For the meatballs

  • 1 1/2 pounds ground chuck
  • 1/4 cup milk
  • 3/4 cup Italian seasoned breadcrumbs
  • 5 cloves garlic paste
  • 1 teaspoon fresh thyme leaves
  • 1 teaspoon salt
  • 1 teaspoon black pepper
  • 2 large eggs
  • olive oil for frying

Finishing the dish

  • 4 cloves garlic minced
  • 1 1/2 tablespoons flour
  • 1/2 cup dry red wine
  • 2 cups low-sodium chicken stock
  • 1 teaspoon thyme leaves
  • 1 tablespoon brandy or sherry optional
  • 2 cups Swiss cheese sliced or shredded, divided
  • salt and pepper to taste
  • 12 slices baguette toasted

Instructions 

Make the meatballs and the onions

  • In a large bowl, mix the breadcrumbs and milk together and let sit for 5 minutes.
  • Add the remaining ingredients to the bowl and mix gently until combined.
  • With your hands, roll ~1 1/2" meatballs ( makes roughly 15-18) and set them on a parchment paper lined baking sheet.
  • Heat a large pan or pot to medium heat and add the olive oil, onions, water, and salt, and mix to coat. Cover with a lid and cook for 15 minutes.
  • Remove the lid and continue to cook, stirring occasionally. Keep an eye on the onions and adjust the heat to avoid burning. Add a splash of water every so often to avoid burning if necessary.
  • Heat a large oven-safe frying pan to medium heat with olive oil poured to a thin layer coating the whole pan. Once the oil is hot fry the meatballs until browned (about 3 minutes per side) then remove with a slotted spoon to a dish and set aside.

Finishing the French onion meatballs

  • Preheat oven to 450f and set the rack on the middle level.
  • Pour off the oil used to fry the meatballs and add all of the onions to the pan from the other pot along with the butter. Continue to cook the onions over ~medium heat until they are deeply caramelized, paying attention to the heat and stirring frequently or adding water to avoid burning.
  • Once the onions are done, add the garlic and cook for 1 minute. Add the flour to the pan and cook for 1-2 minutes, stirring frequently, until all of the flour is no longer white.
  • Add the wine and bring to a boil while scraping the bottom of the pan with a wooden spoon to dislodge all of the brown bits.
  • Once boiling add the chicken stock and thyme and bring to a simmer for 5 minutes.
  • Taste test and adjust salt and pepper to taste. Add the brandy or sherry (optional) and stir to combine.
  • Add all of the meatballs to the pan and top with 3/4 of the Swiss cheese, then place in the oven and bake for 7-10 minutes or until bubbly.
  • Top the baguette slices with the remaining cheese and place under the broiler for a minute to toast and melt the cheese but watch closely to prevent burning.
  • For a browner top, broil the meatballs for 2-3 minutes but watch carefully. Garnish with thyme leaves and serve with toasted baguette slices topped with the remaining Swiss cheese. Enjoy!

Notes

  • Homemade chicken stock is recommended so that the flavor is very intense.  If using storebought, opt for chicken base (Better than Bouillon brand).
  • Leftovers can be saved for up to 3 days in the fridge and can be reheated in the oven.

Nutrition

Calories: 758kcal | Carbohydrates: 52.4g | Protein: 57.2g | Fat: 33.4g | Saturated Fat: 13.7g | Cholesterol: 199mg | Sodium: 1177mg | Potassium: 736mg | Fiber: 3.6g | Sugar: 6.2g | Calcium: 359mg | Iron: 25mg

Nutrition information is automatically calculated, so should only be used as an approximation.

Like this? Leave a comment below!Check us out on Instagram at @sipandfeast or tag #sipandfeast!

Leave a comment

Your email address will not be published. Required fields are marked *

Recipe Rating




This site uses Akismet to reduce spam. Learn how your comment data is processed.

16 Comments

  1. John Barrett says:

    4 stars
    When I made these the first time I cooked the sauce down too much. They were delicious but I would have loved more of the onion sauce. I made them a second time and did the same dang thing. Should I be adding more red wine or stock? I got the color and texture correct there just wasn’t enough of the French onion sauce .

    1. Tara says:

      Hi John, we tested the recipe multiple times before putting it up on the website and did not run into this problem, however, if you’d like more sauce you could increase the amount of liquid.

  2. Pam Mineo says:

    5 stars
    Another FABULOUS recipe. Seems I am only making Sip and Feast recipes and I am knocking it iut of the park EVERY time. Hubby loves it!!!! Thank you once again Jim and Tara. 🥰

    1. Tara says:

      Hi Pam, we’re so happy you’re enjoying the recipes and thank you for the great comment!

  3. Max Black says:

    5 stars
    These were amazing! Will definitely make again. Perfect ratio of meat/egg/bread crumbs. Only changes I made were to make recipe gluten free, using gf bread crumbs and potato starch in place of flour. I heeded the warning about the thyme and didn’t use it all. May add a bit more to the he meat next time. We served over mashed potatoes.
    I feel brave enough to try the French Onion Soup now. The onions were easier to cook than I thought.

    1. Tara says:

      Hi Max, we’re so happy you enjoyed and thanks for sharing your GF substitutions – this will definitely help others who are looking to do the same!

      1. Jackie Garner says:

        5 stars
        French onion is my favorite soup this recipe sounds so good will try it out. Thank you for your great recipes.

  4. Deborah Negron says:

    5 stars
    These look so good and a change on meatballs! A quick question, if I opt to put the meatballs in the oven at 425, how long would you leave them in? I’m doing 1 1/2 inch meatballs.

    1. Tara says:

      Hi Deborah, 10 minutes or so should work but you can always check them with a meat thermometer (for 160f) or cut one open. Hope you enjoy!

  5. Roberta Pannutti says:

    Absolutely delicious, made these twice ❤️

    1. Tara says:

      Hi Roberta, we’re happy you enjoyed this one as well! Thanks for the comment.

  6. Gina says:

    Wonderful! A step up from onion soup for a delicious meal. Served with salad it was a perfect meal

    1. Tara says:

      Hi Gina, so happy you enjoyed and thanks for the comment!

  7. Maureen says:

    I am so excited to try these. I grew up with my mother’s “Swedish” meatballs. We all love them but they were made with Lipton’s Onion Soup and Campbell’s beef consummé, which is enough sodium to kill you. I bet I can work with to taste just like them. Thanks, James!

    1. Tara says:

      Hi Maureen, thanks for the comment. We hope you love them!

    2. Max Black says:

      5 stars
      Yes, Maureen! I like that the sodium is under control here!!