This recipe brings together deeply caramelized onions and juicy beef meatballs in a rich tomato-onion sauce. It’s a cozy, comforting dish that feels fancy enough for guests but simple enough for a weeknight dinner.
Why You’ll Love This Recipe
I love how the sweetness of caramelized onions blends perfectly with hearty beef meatballs. The sauce is rich, savory, and packed with slow-cooked flavor. It’s great over pasta, mashed potatoes, or with crusty bread — I like making extra just to enjoy the leftovers.
Ingredients
(Here’s a tip: Check out the full list of ingredients and measurements in the recipe card below.)
1 large yellow onion, thinly sliced
4 tablespoons unsalted butter
½ cup dry sherry (optional — or substitute with beef broth)
1 teaspoon sugar
½ teaspoon salt
¼ teaspoon black pepper
1½ lbs ground beef
½ cup breadcrumbs
¼ cup grated Parmesan cheese
1 large egg, lightly beaten
1 tablespoon chopped fresh thyme
1 teaspoon garlic powder
½ teaspoon onion powder
¼ cup all‑purpose flour
2 tablespoons olive oil
1 (28 oz) can crushed tomatoes
1 cup beef broth
1 bay leaf
Fresh parsley, chopped (for garnish)
Directions
In a large pot or Dutch oven, melt butter over medium heat.
Add sliced onion and cook, stirring often, until they become golden and caramelized — this takes about 30–40 minutes.
Pour in the sherry (or beef broth), scrape up any browned bits from the bottom, and stir in sugar, salt, and pepper. Let it simmer for 2–3 minutes.
Remove the onions from the pot and set them aside.
In a large bowl, mix together ground beef, breadcrumbs, Parmesan, egg, thyme, garlic powder, and onion powder. I mix just until combined to keep the meatballs tender.
Shape the mixture into 1-inch meatballs — I usually get about 24–30.
Lightly coat each meatball in flour.
Heat olive oil in the same pot and brown the meatballs in batches. I avoid overcrowding to ensure a good sear.
Return the caramelized onions to the pot with the meatballs. Add crushed tomatoes, beef broth, and the bay leaf.
Bring everything to a simmer, then lower the heat, cover, and let it cook for at least 1 hour.
Taste the sauce and adjust seasoning if needed.
Remove bay leaf and garnish with fresh parsley before serving.
Servings and timing
Yield: About 24–30 meatballs
Prep time: ~30 minutes
Cook time: ~90–100 minutes
Total time: ~130–150 minutes
Variations
I sometimes use ground turkey or chicken for a lighter version, though the flavor is milder.
For a bit of heat, I’ll add red pepper flakes to the sauce or meatball mix.
I’ve tried adding rosemary or oregano for a different herb profile.
Instead of sherry, I’ve used dry white wine or just more beef broth — it still works great.
To make this dish gluten-free, I swap the breadcrumbs with almond flour and use gluten-free flour for dusting.
Storage / Reheating
I store leftovers in an airtight container in the fridge for up to 4 days. To reheat, I warm them gently on the stove with a splash of broth if the sauce has thickened. These meatballs also freeze well — I freeze them in sauce, then thaw overnight before reheating.
FAQs
Can I make these meatballs ahead of time?
Yes — I often form the meatballs and refrigerate them up to a day in advance. I’ve also frozen them raw and cooked them later.
Is it okay to skip the flour coating?
It is, but I like the light flour coating because it helps the meatballs brown better and slightly thickens the sauce.
What’s the best way to serve this dish?
I love serving it over egg noodles, mashed potatoes, or even creamy polenta. It’s also fantastic with toasted bread on the side.
Can I double the recipe?
Absolutely. I just make sure to use a large enough pot and brown the meatballs in batches to keep them from steaming.
Why do the onions take so long to caramelize?
True caramelization takes time — low and slow brings out the natural sugars in the onion. I find that patience here delivers a much richer flavor in the final sauce.
Conclusion
These French Onion Meatballs are a delicious twist on two classic comfort foods. The rich tomato-onion sauce and juicy beef meatballs make for a cozy, satisfying meal I keep coming back to. Whether I’m making it for guests or just a quiet night in, this dish never disappoints.
These French Onion Meatballs combine deeply caramelized onions with tender beef meatballs in a savory tomato-onion sauce. Perfect for a comforting weeknight dinner or a special occasion.
Ingredients
1 large yellow onion, thinly sliced
4 tablespoons unsalted butter
½ cup dry sherry (or substitute with beef broth)
1 teaspoon sugar
½ teaspoon salt
¼ teaspoon black pepper
1½ lbs ground beef
½ cup breadcrumbs
¼ cup grated Parmesan cheese
1 large egg, lightly beaten
1 tablespoon chopped fresh thyme
1 teaspoon garlic powder
½ teaspoon onion powder
¼ cup all-purpose flour
2 tablespoons olive oil
1 (28 oz) can crushed tomatoes
1 cup beef broth
1 bay leaf
Fresh parsley, chopped (for garnish)
Instructions
In a large pot or Dutch oven, melt butter over medium heat.
Add sliced onion and cook, stirring often, until golden and caramelized, about 30–40 minutes.
Pour in the sherry (or beef broth), scrape up any browned bits, and stir in sugar, salt, and pepper. Simmer for 2–3 minutes.
Remove onions from the pot and set aside.
In a large bowl, mix ground beef, breadcrumbs, Parmesan, egg, thyme, garlic powder, and onion powder until just combined.
Shape into 1-inch meatballs (about 24–30 pieces).
Lightly coat each meatball in flour.
Heat olive oil in the same pot and brown meatballs in batches to avoid overcrowding.
Return caramelized onions to the pot, then add crushed tomatoes, beef broth, and bay leaf.
Bring to a simmer, then lower heat, cover, and cook for at least 1 hour.
Taste and adjust seasoning as needed.
Remove bay leaf and garnish with chopped fresh parsley before serving.
Notes
Use ground turkey or chicken for a lighter version.
Add red pepper flakes for a bit of heat.
Try rosemary or oregano instead of thyme for a different flavor.
For gluten-free, use almond flour and gluten-free flour substitutes.
Refrigerate leftovers for up to 4 days or freeze with sauce for longer storage.