French Onion Meatball Skillet


This french onion meatball skillet is giving weeknight dinners a serious upgrade! The juicy, tender meatballs simmer in a rich, caramelized onion mixture and we top it all off with melty cheese. This one-pan meal brings all the cozy flavors, plus it’s hearty and filling! My tip—don’t rush the onions, letting them caramelize adds that deep, savory flavor that makes this dish unforgettable.

French Onion Meatball Skillet Ingredient Notes

Yellow Onions: Yellow onions are slowly caramelized to develop a deep, savory sweetness that’s the foundation of this dish’s rich flavor. Their natural sugars break down as they cook, adding complexity and richness without overpowering. They create the signature base that gives this skillet its comforting “French onion” taste. Taking your time with them pays off in layers of flavor that elevate the whole meal.

Ground Beef: Lean ground beef forms the juicy, tender meatballs that sit atop the flavorful rice and onion mixture. Its richness balances the sweetness of the onions and pairs beautifully with the melted cheese. Seasoned simply but effectively, the meatballs are baked before being nestled into the skillet for a satisfying bite. This protein-packed element makes the meal hearty and filling.

Jasmine Rice: Jasmine rice cooks directly in the skillet, soaking up the savory broth, coconut aminos, and onion flavor for a deeply infused base. Its soft texture complements the chewy meatballs and stringy melted cheese. Toasting it briefly before simmering brings out a subtle nuttiness. It turns this dish from a meat-and-veg combo into a true one-pan comfort meal.

Gruyère Cheese: Gruyère adds a rich, nutty sharpness and irresistible melt on top of the skillet just before serving. It browns beautifully and stretches with every bite, echoing the classic French onion soup topping. It finishes the dish with a creamy layer that ties everything together. Mozzarella can be used for a milder, melty alternative.

French Onion Meatball Skillet

Recipe by Jenn Lueke
4.8 from 33 votes
Servings
+

4

servings
Prep time

15

minutes
Cooking time

45

minutes

This french onion meatball skillet is giving weeknight dinners a serious upgrade! The juicy, tender meatballs simmer in a rich, caramelized onion mixture and we top it all off with melty cheese. This one-pan meal brings all the cozy flavors, plus it’s hearty and filling! My tip—don’t rush the onions, letting them caramelize adds that deep, savory flavor that makes this dish unforgettable.

Cook Mode

Keep the screen of your device on

Ingredients

  • For the onions
  • 2 tablespoons olive oil

  • 2 large yellow onions, thinly sliced (about 3 cups)

  • For the meatballs
  • 1 pound 85% lean ground beef

  • 1 tablespoon coconut aminos, reduced-sodium tamari or reduced-sodium soy sauce

  • 1/2 teaspoon kosher salt (omit if using tamari or soy sauce)

  • 1 teaspoon garlic powder

  • 1 teaspoon onion powder

  • 1/2 teaspoon ground black pepper

  • For the skillet
  • 1 teaspoon olive oil, for rolling

  • 4 garlic cloves, minced (about 4 teaspoons)

  • 2 tablespoons finely chopped fresh thyme leaves (or 2 teaspoons dried)

  • 3/4 teaspoon kosher salt, plus more as needed (omit if using tamari or soy sauce)

  • 1/2 teaspoon ground black pepper

  • 1 cup uncooked jasmine rice, rinsed

  • 3 cups low-sodium beef broth

  • 2 tablespoons coconut aminos (or reduced-sodium tamari or reduced-sodium soy sauce)

  • 6 ounces Gruyère or mozzarella, shredded (1 cup)

  • chopped fresh parsley

Directions

  • Preheat the oven to 400°F. Line a sheet pan with parchment paper and set aside.
  • Caramelize the onions: Heat the olive oil in a large lidded sauté pan over medium heat until shimmering. Add the onions and cook, stirring occasionally, until very soft and beginning to caramelize, 20 to 25 minutes, taking care not to let them burn (reduce heat to medium-low if needed). Add a splash of water if the onions brown too quickly.
  • Meanwhile, make the meatballs: Combine the beef, coconut aminos, salt, garlic powder, onion powder, and ground black pepper in a large bowl and mix well with a rubber spatula or clean hands.
  • Rub the oil onto your clean hands and pinch off about 1 tablespoon of the meat mixture. Roll loosely between your palms until round and smooth, taking care not to overwork the mixture or the meatballs will become tough when cooked. Place the meatball on the prepared sheet pan. Repeat with the rest of the mixture, forming about 20 equal-size meatballs and leaving about 1 inch of space between each meatball.
  • Bake until lightly browned and fully cooked with an internal temperature of 165°F, 10 to 12 minutes.
  • Finish the skillet: Add the garlic, thyme, salt, and black pepper to the pan with the caramelized onions and cook until fragrant, 1 to 2 minutes. Add the rice and toast, stirring frequently, until golden brown, 2 to 3 minutes. Pour in the broth, coconut aminos, and ½ cup of water and stir to combine. Bring the mixture to a simmer, then reduce the heat to medium-low. Cover and cook until the liquid is absorbed, and the rice is fluffy, stirring halfway through to prevent any sticking, 16 to 19 minutes. If the water has been fully absorbed before the rice is done cooking, add ½ cup water. If the liquid isn’t absorbing enough, turn the heat back to medium.
  • Reduce the heat to low, uncover, and place the cooked meatballs on top of the rice. If needed, season with more salt. Sprinkle the cheese all over the top. Cover and cook until the cheese is melted, 1 to 2 minutes. (Alternatively, transfer the uncovered pan to the oven and broil on high until the cheese is melted and golden, about 2 minutes.)
  • Spoon the rice and meatballs onto four plates. Garnish with the chopped parsley.

Notes

  • Store It: Refrigerate in a sealed container for up to 4 days or freeze for up to 3 months.
  • Reheat it: From refrigerator, microwave until warm, 1 to 2 minutes. From the freezer, thaw in the refrigerator overnight, then microwave in 30-second increments until warm.
  • Protein: Increase the protein in this dish by using beef bone broth instead of regular beef broth. 
  • Ground beef: Replace the ground beef for ground chicken if you’re not a red meat person!
  • Rice: To rinse rice, add the rice to a fine-mesh sieve and run under cold water for about 30 seconds. Let the water drain thoroughly, then gently shake the sieve to remove any remaining water. Cooking rice in less starchy water improves the texture, making it fluffy and less prone to sticking.

Did you make this recipe?

Snap a photo & tag @jenneatsgoood on INSTAGRAM

If you try out this recipe, I want to know! 
Leave a comment with a star rating below if you love it. 

26 Comments

  1. This one was not it, too much coconut aminos, salty, too much water and broth added into the rice. Sorry.

    1. Hi Bev! I’m sorry this one didn’t work out for you. I’d love to hear a little bit more about what you mean so I can troubleshoot with you. Did you cook your rice on the stovetop using the method directed? The rice should be in a lot of broth and water before it cooks, but after it’s been covered and cooked for the full 16 to 19 minutes that liquid is almost completely absorbed, leaving behind a bit for sauciness. There’s also just one tablespoon of coconut aminos in here.

  2. This was so good! Comforting and nutritious! I will try it with bone broth instead of regular broth next time to up the protein some more!

  3. Delicious – I shortcut with Trader Joe’s chicken meatballs (fridge section) but otherwise followed directions. Will definitely make again!

  4. This is a great recipe! I definitely added some salt and pepper at the end and it was really delicious. I’m picky about onions and I was glad all the crunch was gone when it was time to eat. Thank you!

  5. Great recipe! I used the chicken meatballs, bone broth, and tamari instead! I forgot to lower the salt so it was a bit salty, but I’ll make it correctly next time! Yes there will be a next time!!

  6. My whole loved this dish, including an 11 and an 8 year old! That is truly impressive. I will have to double it next time.

  7. looking forward to trying several of your recipes this week! Just wondering if you list macros for them anywhere?

  8. Hello,

    After adding the rice, it says to add the toast. I do not see that on the ingredients. Looking forward to making this!

    1. Hi, you toast the rice in the skillet before adding the broth (not a separate ingredient). Hope this helps!

    1. Hi Joanne! The only thing that might get a little weird when you freeze is the cheese on top, but otherwise this should freeze for up to 1 month!

  9. We loved this!! It’s easy to make with lots of time to get each element ready. The final product is rich and hearty without being too heavy and I am excited to have the leftovers tomorrow! I see a lot of comments about the salt but personally I didn’t have any issues using 50% sodium beef broth with kosher salt additions as written.

  10. CAn you make just the meatballs ahead and freeze them? Would you freeze them raw or cooked?

Leave a Reply

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

still hungry?

  • large bowl of Green Veggie Lemony Orzo Salad

    Green Veggie Lemony Orzo Salad

  • Bacon, Egg, and Cheese Protein Scones

  • 2 taco stuffed sweet potatoes topped with cheese, guacamole, salsa, cilantro, and pickled jalapeno, served with hot sauce and lime wedges

    Taco Stuffed Sweet Potatoes

  • bowl of green pea pasta topped with basil, lemon zest, and served with a lemon wedge

    Green Pea Pasta