Why we love it

There’s so much to love about these hearty French onion meatballs that will give you cosy vibes on a cold winters day but are light enough to eat all year round.

  • Delicious quick and easy meatballs,
  • The rich mushroom and onion gravy they’re bathed in
  • A generous helping of oozy Gruyere cheese
  • Plus, crunchy Gruyere croutons perfect for sopping up that sauce.

Have a little patience while the onions slowly soften until deep golden brown and in 45 minutes you’ll have a delicious family dinner on the table. It’s perfect for weekends. The beef meatballs themselves are incredibly easy to make and quick to cook, as are the gruyere croutons. You can get ahead and caramelise your onions in advance to make it weeknight meal too!

If you love this, you’ll also love these homemade Italian meatballs.

Meatballs in a large pan in gravy.

Ingredients you’ll need

Ingredients for French onion meatballs on a baking tray.

Jump to the recipe for full ingredients and instructions.

  • Onions and mushrooms: Of course, you can’t have French onion anything without onions. You want brown onions that will slowly cook down to sweet, tender perfection. We’re not quite going as far as caramelising them but they still create great flavour in a short-yet slow cook. The mushrooms add so much earthy flavour but of course feel free to leave them out if you don’t like them.
  • Beef meatballs: The meatballs are made with beef mince (aka ground beef, to some). They’re combined with some breadcrumbs, a little milk for moisture and seasoning, then rolled and grilled under the broiler / overhead grill. This is so they can be cooking while the onions are too, saving time.
  • Gruyere: The classic cheese used with French onion soup is Gruyere cheese. It’s robust yet creamy flavour is perfect here.
  • Croutons: Another French onion soup classic is the Gruyere croutons. Take some thick slices of baguette, toast them up a little then melt over some more Gruyere cheese. The perfect accompaniment for sopping up all that gravy.
  • The other flavours: To turn all of those into a humble yet delicious dinner is some beef stock (or beef broth), fresh thyme, garlic, a little white wine, some Worcestershire sauce and butter. If you can’t get / don’t have / don’t want Worcestershire sauce, combine soy sauce and balsamic vinegar in a 1:1 ratio. You do need that little salty-sweet-tangy hit.

Try turning them into French onion chicken meatballs by simply swapping the beef for chicken mince (ground chicken). You can swap the stock to chicken stock as well, if you like.

How to make French onion meatballs (step-by-step)

While it takes about 25 minutes to cook the onions, the flavour it gives them is absolutely worth it. It makes them soft, sweet and on the verge of caramelisation. You can get ahead and cook the mushrooms and onions a couple of days ahead, then proceed from there when you’re ready to eat the dish. All the other components are very quick.

Jump to the recipe for full ingredients and instructions.

Cooking onion and mushrooms in a pan.
  1. Cook the mushrooms: First cook the mushrooms until they’re starting to turn golden – this gives them so much flavour.
  2. Add the onions: Add the sliced onions and cook for around 25 minutes until tender and sweet. filling.

You could also roast your onions in the oven up to 1 week ahead using my roasted shallots recipe.

Raw meatballs on a baking sheet.
  1. The meatballs: Combine the meatball ingredients in a bowl and mix well then roll into 20 small balls. I use a small cookie scoop (about 2 tablespoons volume) so they’re all even.
  2. Grill / broil the meatballs: Place the meatballs onto a baking tray lined with foil and use the broiler / overhead grill to cook them for 10 minutes.

The meatballs can be prepped ahead of time, though they’re fairly quick to put together. You can also make up batches of meatballs and freeze them for later.

Croutons topped with Gruyere on a baking tray.
  1. The croutons: Start the croutons by slicing a baguette into 1 inch slices. Place them onto a lined baking tray, drizzle over a little oil, then sprinkle over salt and pepper. Grill / broil for a few minutes until golden brown.
  2. Add the Gruyere: Flip the croutons over and drizzle with a little more oil. Scatter over the shredded cheese and grill broil a few more minutes until melted and gooey.

The recipe includes enough cheese for 8 croutons but you can scale that if you want more.

Closeup of the Gruyere croutons on a baking tray.
Cooked onions and mushrooms in a pan.
  1. Back to the sauce: Add some garlic and cook for a minute, then add the wine and let that sizzle for 30 seconds or so. Cook in the flour 1-2 minutes.
Adding gravy ingredients and meatballs to the pan. Topping with cheese.
  1. The gravy: Add the gravy ingredients – stock, Worcestershire sauce, thyme, salt and pepper. Let that come to a boil and cook for a few minutes until it thickens.
  2. Butter: It ain’t French without butter – maybe an exaggeration but they do love their butter. Add that and give it a stir to melt in.
  3. The finishing touches: Add the cooked meatballs to the gravy and stir them around to coat. Top with Gruyere cheese then put the lid on for a few minutes until it’s all melted.

To serve, I sprinkle over some parsley just to add a little freshness and vibrance. You can nestle the croutons into the French onion meatballs and let everyone help themselves or serve it up with the croutons on the side.

A meatball being taken from the pan with a spoon.

Serving suggestions

These French onion meatballs are wonderful served over mashed potatoes or cooked pasta. Add some simply cooked beans or other vegetables to the side or serve it with a side salad.

You can also serve these as an appetiser or party food – have some cocktail sticks or little canape boats at the ready.


Why are my homemade meatballs tough?

This is most likely due to overmixing or it could be due to overcooking. Be gentle with the meat and you should get nice tender meatballs.

Yield and storage

This recipe will serve 4-5 people. It’s also very easy to scale making it a crowd pleaser.

Leftover French onion meatballs and gravy can be stored in the refrigerator in an airtight container for up to 4 days. It also freezes well, for up to 3 months.

You can also freeze the raw meatballs for another time.

Closeup of the French onion meatballs with melted cheese over the top.

Did you try this French onion meatballs recipe?
Leaving a rating and comment below the recipe is so helpful!

Hungry for more? Subscribe to the newsletter for free recipes straight to your inbox. Also, follow along on Facebook, Pinterest and Instagram.

Meatballs and Gruyere croutons in a pan.
5 from 1 rating
These French onion meatballs have all the flavour and comfort of the classic soup but in a hearty dinner. Easy beef meatballs nestled in a mushroom and onion gravy with gruyere and croutons.


  • 1 tablespoon vegetable oil (notes 1)
  • 2 tablespoons salted butter (28g / 1oz)
  • 400 g sliced mushrooms, (I like Swiss browns/baby bella/cremini) (14oz)
  • 3 medium brown onions
  • ½ cup coarse breadcrumbs, sliced
  • ¼ cup milk (60ml)
  • 500 g beef mince (1.1lb)
  • 1 large egg, beaten
  • 4 cloves garlic, minced (divided 50:50 ratio)
  • 1 ½ teaspoons salt (divided 1 +½tsp)
  • cup dry white wine
  • 1 tablespoon plain flour (all-purpose flour) (notes 1)
  • 2 cups low-sodium beef stock (500ml)
  • 1 tablespoon Worcestershire sauce (notes 1)
  • 2 teaspoons fresh thyme leaves (or 1 teaspoon dried)
  • ½ teaspoon freshly cracked black pepper
  • 1 ½ cups packed shredded Gruyère cheese (135g / 4.8oz)
  • 8 thick baguette slices
  • fresh parsley to serve

For best results, always weigh ingredients where a weight is provided



    Add half the oil to a large skillet / deep frypan over medium high heat. Add the mushrooms and cook until beginning to turn golden.
  • Turn down to medium heat. Add remaining oil and onions to the pan. Cook for around 25 minutes, stirring every so often, until very soft and browned.
  • While the onions cook, make the meatballs.
    Heat the overhead grill / broiler on high. Line a large baking sheet with aluminium foil.
  • Add the breadcrumbs to a large bowl and pour over the milk. Stir with a fork and let it sit for 3-4 minutes until the bread crumbs are soft.
  • Whisk in the egg. Add the beef mince, half the garlic and 1 teaspoon salt  to the bowl and mix until combined (try not to overmix).
  • Use a small cookie scoop (2 Tbsp volume) to scoop 20 portions of the meat, then roll into smooth balls.
  • Transfer to the prepared baking sheet, a couple inches apart, then grill / broil for 10 minutes until tops are golden.
    Place the slices of baguette on a baking sheet and drizzle over a little extra virgin olive oil and sprinkle over a little salt and pepper.
  • Place under the broiler / overhead grill for 2-3 minutes until golden.
  • Flip the bread over and top with ½ cup of the shredded gruyere.
  • Placed under the broiler / overhead grill for another 1 ½ to 2 minutes until melty.
    Once the onions are golden and caramelised (about 25 mins), add the garlic and cook for one minute.
  • Pour in the wine and let it sizzle for 30 seconds.
  • Sprinkle over the flour and cook stirring often for 1-2 minutes.
  • Turn up to medium high. Pour in the stock and Worcestershire sauce and stir well, then add the thyme, salt and pepper. Cook a few minutes until it thickens slightly.
  • Stir the butter into the sauce until melted and combined.
  • Add the meatballs to the sauce and mix to coat. Sprinkle over the remaining gruyere. Cover and cook 3 minutes or until meatballs are hot and the cheese melty.
  • Sprinkle over chopped parsley and serve with the croutons on the side. Great over mashed potato or pasta.
  • Please take a moment to leave a comment & rating. It's appreciated and so helpful.


  1. Tablespoons: I use a standard Australian 20ml tablespoon (equal to 4 teaspoons). Check yours before measuring.
  2. Onions: You may know brown onions as yellow onions. You can use red onion if you prefer.
  3. Bread crumbs: You can use panko breadcrumbs in place of regular coarse breadcrumbs.
  4. Beef: The beef can be swapped for ground chicken or ground turkey too. A combination of ground beef and ground pork is delicious too.
  5. Getting ahead tip: You can cook the mushroom and onions 2-3 days ahead to make this an easy weeknight dinner.
  6. Leftovers will keep in the fridge for up to 4 days.
Have you tried this recipe?Don’t forget to leave a rating and comment below and let me know how it was! I love hearing from you. Nutrition information is approximate and derived from an online calculator. The brands you use may cause variations.
Nutrition Facts
French Onion Meatballs
Amount Per Serving
Calories 848 Calories from Fat 441
% Daily Value*
Fat 49g75%
Saturated Fat 21g131%
Trans Fat 2g
Polyunsaturated Fat 5g
Monounsaturated Fat 18g
Cholesterol 184mg61%
Sodium 1974mg86%
Potassium 1225mg35%
Carbohydrates 51g17%
Fiber 4g17%
Sugar 11g12%
Protein 47g94%
Vitamin A 633IU13%
Vitamin C 11mg13%
Calcium 517mg52%
Iron 7mg39%
* Percent Daily Values are based on a 2000 calorie diet.