Smoked French Onion Meatballs over Creamy Parmesan Risotto
If you love the combination of caramelized onions, melty Gruyère, and savory beef, these Smoked French Onion Meatballs are a dinner worth putting on the menu. The meatballs are made with a combination of ground beef and pork, smoked until they develop a rich, smoky flavor, then finished in a skillet of French onion gravy with plenty of Gruyère cheese.

Served over creamy Parmesan risotto, this recipe brings together several comforting flavors in one hearty meal. The risotto is creamy and savory, while the caramelized onion gravy adds sweetness and depth to the smoky meatballs.
This is a great recipe for a weekend dinner, date night at home, or when you want to make something a little different on the smoker.
Why You’ll Love These Smoked Meatballs
These aren’t your average meatballs. Smoking them first gives the beef and pork a deeper flavor before they finish cooking in the French onion gravy.
The meatballs are also made with grated Gruyère, so you get little pockets of savory cheese throughout the mixture. Once they’re transferred into the skillet, they’re topped with even more Gruyère and placed back in the smoker while they finish cooking and absorb the onion gravy.
The result is tender meatballs surrounded by a rich sauce made from caramelized onions, beef broth, chicken broth, white wine, and fresh thyme.
And then there’s the risotto.
Creamy Parmesan risotto makes the perfect base for this dish because it gives the French onion gravy somewhere to go. As you spoon the meatballs and sauce over the risotto, the flavors come together in every bite.

Ingredients You’ll Need
For the Smoked Meatballs
Ground beef and ground pork: Using both gives the meatballs a combination of beefy flavor and the richness of pork. An 80/20 ground beef works particularly well here.
Panko breadcrumbs: These help give the meatballs structure while keeping their texture tender.
Gruyère cheese: Grated Gruyère goes directly into the meatball mixture, while additional shredded Gruyère is added to the skillet before the meatballs go back into the smoker.
Egg: The egg helps bind everything together.
Garlic, onion powder, salt, and black pepper: These simple seasonings complement the beef, pork, and cheese without overpowering the smoky flavor.
For the French Onion Gravy
Yellow onions: The onions are slowly caramelized until deep golden brown. This is where much of the flavor in the sauce comes from.
Butter and olive oil: The combination is used to cook the onions and gives the gravy a rich base.
All-purpose flour: A small amount thickens the gravy.
Dry white wine: Wine adds acidity and depth to the sauce. If you’d rather not use wine, you can substitute additional broth.
Beef and chicken broth: Using both creates a savory, full-bodied gravy.
Fresh thyme: Thyme pairs particularly well with caramelized onions and gives the sauce a fresh herbal flavor.
For the Parmesan Risotto
Arborio rice: Arborio’s high starch content creates the creamy consistency that makes risotto different from ordinary rice.
Chicken broth: Keep the broth warm while you prepare the risotto so the cooking process stays consistent.
White wine: Wine adds flavor and balances the richness of the Parmesan and butter.
Shallot: Finely diced shallot provides a mild, savory base.
Butter and olive oil: These are used to sauté the shallot and toast the rice.
Freshly grated Parmesan: Stirred in at the end, Parmesan makes the risotto creamy and savory.
How to Make Smoked French Onion Meatballs
1. Prepare and Smoke the Meatballs
Start by preheating your smoker to 225°F. Oak, pecan, or apple wood all work well for this recipe.
In a large bowl, gently combine the ground beef, ground pork, panko breadcrumbs, grated Gruyère, egg, minced garlic, onion powder, kosher salt, and black pepper.
Try not to overwork the mixture. Mixing just until everything is combined helps keep the meatballs tender.
Shape the mixture into 12 to 15 golf-ball-sized meatballs.
Place them directly on the smoker grates and smoke for approximately 45 to 60 minutes, or until they reach an internal temperature of about 145°F.
The exact cooking time can vary depending on the size of your meatballs and your smoker, so an instant-read thermometer is the best way to check them.
2. Caramelize the Onions
While the meatballs are smoking, start the French onion gravy.
Melt the butter and olive oil in a large smoker-safe cast iron skillet over medium heat.
Add the thinly sliced yellow onions and a pinch of salt. Cook the onions slowly for about 25 to 30 minutes, stirring occasionally.
At first, the onions will look like there are far too many for the skillet. As they cook, they’ll soften and gradually reduce in volume.
Continue cooking until they’re deeply golden brown and caramelized. Don’t rush this step. The caramelized onions provide the signature French onion flavor for the gravy.
3. Make the French Onion Gravy
Once the onions have caramelized, stir in the flour and cook for about 1 minute.
Pour in the white wine and use a wooden spoon or spatula to scrape up any browned bits from the bottom of the skillet.
Allow the wine to cook briefly before adding the beef broth, chicken broth, and fresh thyme sprigs.
Bring the mixture to a gentle simmer and cook for about 5 minutes, allowing the gravy to thicken slightly.
4. Finish the Meatballs in the Smoker
Once the meatballs have smoked for their initial 45 to 60 minutes, transfer them into the skillet with the French onion gravy.
Scatter shredded Gruyère over the top.
Place the entire cast iron skillet onto the smoker and cook for another 30 minutes.
During this final cooking time, the meatballs finish cooking while soaking up the onion gravy. The Gruyère melts over the top and combines with the sauce.
Before serving, check the meatballs with an instant-read thermometer to make sure they have reached a safe internal temperature.
How to Make Creamy Parmesan Risotto
While the meatballs finish cooking, prepare the risotto.
Place the chicken broth in a saucepan and keep it warm over low heat. Keeping the broth warm is important because adding cold liquid can interrupt the cooking process.
In a Dutch oven or heavy saucepan, melt the butter with the olive oil over medium heat.
Add the finely diced shallot and sauté for about 2 minutes, until softened.
Add the Arborio rice and toast it for about 2 minutes, stirring constantly. The edges of the rice should begin to look translucent.
Pour in the white wine and stir until it has been absorbed.
Now begin adding the warm chicken broth one ladle at a time.
Stir the rice frequently and wait until the liquid is almost completely absorbed before adding another ladle of broth. Continue this process for approximately 18 to 20 minutes.
The finished risotto should be creamy, but the individual grains should still have a slight bite.
Remove the risotto from the heat and stir in the freshly grated Parmesan. Season with salt and black pepper to taste.

How to Serve Smoked French Onion Meatballs
For serving, spoon a generous portion of creamy Parmesan risotto into a wide bowl.
Place several smoked meatballs over the risotto, then spoon the French onion gravy generously over the top.
Finish with additional shredded Gruyère and a few fresh thyme leaves. The heat from the meatballs and gravy will soften the cheese.
Serve immediately while the risotto is creamy and the Gruyère is melted.
Tips for the Best Meatballs and Risotto
Don’t overmix the meatball mixture. Combine the ingredients gently and stop as soon as everything is evenly distributed.
Give the onions time to caramelize. Cooking them slowly develops their color and flavor. Keep the heat moderate and stir occasionally.
Keep your broth warm. Warm broth helps the Arborio rice cook evenly and maintains the temperature of the risotto.
Stir the risotto frequently. You don’t need to stir it constantly, but regular stirring helps release the starches that give risotto its creamy consistency.
Use freshly grated Parmesan. Freshly grated cheese melts more smoothly into the risotto.
Check the meatballs with a thermometer. Smoker temperatures and meatball sizes can vary, so use internal temperature rather than time alone to determine when they’re finished.

What Wood Is Best for Smoked Meatballs?
Several types of smoking wood work well with this recipe. Oak gives the meatballs a more pronounced smoky flavor, while pecan provides a slightly richer, nutty character. Apple wood is a good option if you prefer a milder smoke.
Since the meatballs are finished in the French onion gravy, you don’t need an extremely strong smoke flavor. A moderate amount of smoke lets the beef, pork, Gruyère, and caramelized onions remain prominent.
Can I Make the Meatballs Ahead of Time?
You can prepare the meatball mixture ahead of time and refrigerate the shaped meatballs until you’re ready to smoke them.
The French onion gravy can also be prepared in advance and reheated gently before adding the smoked meatballs.
For the best texture, I recommend making the risotto shortly before serving. Risotto naturally thickens as it sits, so it’s at its best when served immediately after cooking.

What to Serve with French Onion Meatballs
Because this recipe includes both meatballs and creamy risotto, it can easily stand on its own as a complete dinner.
If you’d like to add something fresh to the meal, a simple green salad would pair well with the richness of the dish. Roasted or steamed green vegetables would also work nicely.
A crisp side salad with a simple vinaigrette can provide some acidity alongside the rich French onion gravy, Gruyère, and Parmesan.

Smoked French Onion Meatballs over Creamy Risotto
Ingredients
Equipment
Method
- Preheat your smoker to 225°F.In a large bowl, gently combine the ground beef, ground pork, breadcrumbs, grated Gruyère, egg, garlic, onion powder, salt, and pepper. Form into 12 to 15 golf-ball-sized meatballs.
- Place meatballs directly on the smoker grates and smoke for 45 to 60 minutes, until they reach an internal temperature of ~145°F and have picked up a rich color.
- While the meatballs smoke, melt 3 tbsp butter with 1 tbsp olive oil in a large, smoker-safe cast iron skillet over medium heat on the stovetop.
- Add sliced onions and a pinch of salt. Cook low and slow, stirring occasionally, for 25–30 minutes until deep golden brown and caramelized.
- Stir in the flour and cook for 1 minute. Deglaze with 1/2 cup white wine, scraping up any browned bits.
- Pour in the beef broth, 1 cup chicken broth, and thyme sprigs. Bring to a simmer for 5 minutes until slightly thickened.
- Transfer the smoked meatballs into the skillet with the onion gravy. Top with shredded Gruyère and place the entire cast iron skillet onto the smoker for an additional 30 minutes to allow the meatballs to finish cooking and soak up the sauce.
- In a saucepan, keep 4 cups of chicken broth warm over low heat.
- In a medium Dutch oven or heavy saucepan, melt 2 tbsp butter with 1 tbsp olive oil over medium heat. Add the shallot and sauté until soft (about 2 minutes).
- Add the Arborio rice and toast, stirring constantly, for 2 minutes until translucent around the edges.
- Pour in the white wine and stir until fully absorbed.
- Add the warm chicken broth one ladle at a time, stirring frequently. Wait until the liquid is almost completely absorbed before adding the next ladle. Continue this process for 18–20 minutes until the rice is tender with a slight bite (al dente).
- Remove from heat and stir in the 3/4 cup Parmesan. Season with salt and pepper to taste.
- Spoon a generous heap of creamy risotto into wide bowls.
- Top with smoked meatballs and ladle the rich French onion gravy over top.
- Sprinkle fresh thyme leaves over the hot meatballs before serving.


