Keto French Onion Meatballs – Savory, Comforting, and Low-Carb
French onion soup meets hearty meatballs in this cozy, low-carb dish. You get all the caramelized onion flavor, rich beefiness, and melty cheese—without the bread or extra carbs. It’s weeknight-friendly, great for meal prep, and feels a bit special without being fussy.
Serve it over mashed cauliflower or zucchini noodles, or just spoon it straight from the skillet. If you love comfort food that happens to be keto, this one earns a spot in the rotation.
Ingredients
Method
- Caramelize the onions. Heat 1 tbsp olive oil and 2 tbsp butter in a large skillet over medium heat. Add sliced onions, a pinch of salt, and cook, stirring often, for 25–35 minutes until deep golden and jammy. If they start to catch, lower the heat and splash in water to deglaze.
- Boost the flavor base. Stir in garlic and thyme for 1 minute. Add wine or sherry to deglaze, scraping up brown bits. Let it reduce by half. Transfer the onions to a bowl and wipe the skillet if needed.
- Make the meatball mix. In a large bowl, combine ground beef, ground pork, eggs, almond flour, Parmesan, onion powder, 1 tsp salt, and 1/2 tsp pepper. Mix gently until just combined. Do not overwork—this keeps the meatballs tender.
- Form the meatballs. Shape into 18–22 golf ball–sized meatballs. Chill in the fridge for 10–15 minutes to help them hold together.
- Sear the meatballs. Heat 1–2 tbsp olive oil in the same skillet over medium-high. Brown meatballs in batches on all sides, 5–7 minutes total. They don’t need to be cooked through yet. Transfer to a plate.
- Build the sauce. Return caramelized onions to the skillet. Add beef broth and Worcestershire. Bring to a simmer. Taste and adjust salt and pepper. For a slightly thicker texture, simmer 5–8 minutes to reduce.
- Finish cooking the meatballs. Nestle meatballs into the onion sauce. Cover and simmer on medium-low for 8–10 minutes, or until cooked through (165°F internal temperature).
- Add the cheese. Sprinkle Gruyère over the meatballs. Cover until melted and bubbly, 2–3 minutes. For extra browning, transfer to a broiler-safe pan and broil briefly, watching closely.
- Garnish and serve. Top with chopped parsley. Serve over cauliflower mash, roasted green beans, sautéed spinach, or zucchini noodles. Spoon plenty of onion gravy over each serving.
Why This Recipe Works
French onion flavor comes from slow-caramelized onions, beef broth, and a touch of umami. We build that same base and pair it with juicy meatballs made from ground beef and pork for balance.
Instead of breadcrumbs, we use almond flour and egg to keep the meatballs tender and low-carb. A quick pan sauce ties everything together, and a final blanket of melted Gruyère seals the deal. The result is deeply savory, satisfying, and keto-friendly without complicated steps.
Shopping List
- Ground beef (1 lb, 80–85% lean)
- Ground pork (1 lb)
- Eggs (2 large)
- Almond flour (1/2 cup, fine)
- Parmesan cheese, finely grated (1/4 cup)
- Yellow onions (3 large), thinly sliced
- Butter (3 tbsp)
- Olive oil (2–3 tbsp)
- Beef broth (2 cups, low-sodium)
- Dry white wine or dry sherry (1/3 cup; optional but recommended)
- Garlic (3 cloves), minced
- Worcestershire sauce (1–2 tsp; check for low-sugar)
- Fresh thyme (1–2 tsp leaves) or dried thyme (1/2 tsp)
- Onion powder (1 tsp)
- Salt and black pepper
- Gruyère cheese, shredded (1 to 1 1/2 cups)
- Fresh parsley (for garnish; optional)
Step-by-Step Instructions
- Caramelize the onions. Heat 1 tbsp olive oil and 2 tbsp butter in a large skillet over medium heat.
Add sliced onions, a pinch of salt, and cook, stirring often, for 25–35 minutes until deep golden and jammy. If they start to catch, lower the heat and splash in water to deglaze.
- Boost the flavor base. Stir in garlic and thyme for 1 minute. Add wine or sherry to deglaze, scraping up brown bits.
Let it reduce by half. Transfer the onions to a bowl and wipe the skillet if needed.
- Make the meatball mix. In a large bowl, combine ground beef, ground pork, eggs, almond flour, Parmesan, onion powder, 1 tsp salt, and 1/2 tsp pepper. Mix gently until just combined.
Do not overwork—this keeps the meatballs tender.
- Form the meatballs. Shape into 18–22 golf ball–sized meatballs. Chill in the fridge for 10–15 minutes to help them hold together.
- Sear the meatballs. Heat 1–2 tbsp olive oil in the same skillet over medium-high. Brown meatballs in batches on all sides, 5–7 minutes total.
They don’t need to be cooked through yet. Transfer to a plate.
- Build the sauce. Return caramelized onions to the skillet. Add beef broth and Worcestershire.
Bring to a simmer. Taste and adjust salt and pepper. For a slightly thicker texture, simmer 5–8 minutes to reduce.
- Finish cooking the meatballs. Nestle meatballs into the onion sauce.
Cover and simmer on medium-low for 8–10 minutes, or until cooked through (165°F internal temperature).
- Add the cheese. Sprinkle Gruyère over the meatballs. Cover until melted and bubbly, 2–3 minutes. For extra browning, transfer to a broiler-safe pan and broil briefly, watching closely.
- Garnish and serve. Top with chopped parsley.
Serve over cauliflower mash, roasted green beans, sautéed spinach, or zucchini noodles. Spoon plenty of onion gravy over each serving.
How to Store
Let leftovers cool, then store in an airtight container in the fridge for up to 4 days. For longer storage, freeze in portions for up to 3 months.
Reheat gently on the stove over low heat or in the microwave at 50–60% power to keep the meatballs tender. If the sauce thickens after chilling, loosen with a splash of broth when reheating.
Benefits of This Recipe
- Keto-friendly without feeling restrictive. No bread, no sugar—just classic flavor with smart swaps like almond flour.
- Protein-rich and satisfying. The beef-pork combo delivers great texture and keeps you full.
- Meal-prep friendly. The flavors deepen after a day, and it reheats well for easy lunches or dinners.
- Family-approved comfort food. Familiar flavors and melty cheese make it a crowd-pleaser.
- Flexible serving options. Works with many low-carb sides, from cauliflower mash to simple greens.
Pitfalls to Watch Out For
- Rushing the onions. True caramelization takes time. If they’re pale or crunchy, keep going at a lower heat.
- Overmixing the meat. Gentle mixing prevents dense, tough meatballs.
- Skipping the sear. Browning adds crucial flavor and helps meatballs hold their shape.
- Too salty. Use low-sodium broth and taste before adding more salt—cheese and Worcestershire add saltiness.
- Watery sauce. Let it reduce a few minutes uncovered, or add a teaspoon of almond flour to thicken lightly if needed.
Recipe Variations
- Turkey or chicken meatballs. Use ground turkey or chicken and add 1–2 tbsp olive oil to the mix for moisture.
- Mushroom boost. Sauté sliced cremini with the onions for extra umami and volume.
- Cheese swap. Try Swiss, provolone, or a mix of Gruyère and mozzarella for extra melt.
- No-wine version. Skip the wine and add 1 tsp apple cider vinegar or lemon juice to brighten the sauce.
- Spice it up. A pinch of red pepper flakes or a dash of hot sauce adds gentle heat.
- Herb-forward. Finish with fresh chives or tarragon for a lighter, springy note.
FAQ
Can I bake the meatballs instead of pan-searing?
Yes.
Bake at 400°F on a lined sheet for 12–15 minutes, until browned and nearly cooked through. Then transfer to the onion sauce to finish simmering and absorb flavor.
What can I use instead of almond flour?
Finely ground pork rinds (pork panko) work well. Start with 1/3 cup and add more if the mix feels too wet.
Coconut flour can be used sparingly (1–2 tbsp), but it absorbs more moisture, so add gradually.
Is Worcestershire sauce keto?
Many brands contain small amounts of sugar, but the quantity used is minimal. Choose a low-sugar version if you prefer, or substitute coconut aminos plus a splash of vinegar for a similar effect.
How do I get deeper onion flavor?
Let the onions caramelize fully until deep golden-brown, deglaze with wine or broth, and don’t rush the reduction. A tiny splash of balsamic at the end can also enhance sweetness and depth without adding many carbs.
Can I make this ahead for guests?
Absolutely.
Cook the meatballs and sauce a day ahead, then reheat gently and add cheese just before serving. The flavors actually improve after resting overnight.
What sides pair well while keeping it low-carb?
Mashed cauliflower, roasted asparagus, sautéed green beans, buttered cabbage, or a crisp green salad with a light vinaigrette all complement the richness.
How many carbs are in a serving?
Exact numbers vary by brands and portions, but a typical serving of four meatballs with sauce comes in around 6–8 net carbs. Use low-sodium broth and check labels to keep it on the lower end.
In Conclusion
Keto French Onion Meatballs deliver everything you love about classic French onion soup in a hearty, low-carb package.
You get slow-cooked onion sweetness, savory beef, and a cheesy finish that feels comforting and special. With simple ingredients and a few smart techniques, it’s an easy win for weeknights or entertaining. Keep the onions patient, the meatballs tender, and the cheese melty—and you’ll have a new favorite on repeat.
Printable Recipe Card
Want just the essential recipe details without scrolling through the article? Get our printable recipe card with just the ingredients and instructions.



