
Packed with protein, veggies, and cozy comfort, this beef meatball soup is the ultimate fall or winter meal. Inspired by the rich flavors of a classic beef stew, it comes together much faster because we swap tender chuck roast for juicy, flavorful meatballs. Not only does this shortcut save time, but it also keeps the soup packed with protein, fiber-rich veggies, and wholesome, nourishing ingredients that feel like a warm hug in a bowl.
I don’t know how I didn’t think to do this sooner, but that’s ok because we have this insanely delicious recipe now! Perfect for a weeknight dinner or meal prep for the week ahead, this soup is both family-friendly and high-protein.

Meatball Soup for a Cozy, Healthy Dinner
Making this hearty meatball soup is easier than you might think—I swear!
The combination of grass-fed beef, fresh herbs, and gluten-free breadcrumbs makes tender, flavorful meatballs that cook quickly. The soup base is loaded with yellow potatoes, carrots, celery, and onions, all simmered in savory beef bone broth. And each bite is full of comforting flavor and satisfying texture. Plus, the vegetables provide fiber, vitamins, and antioxidants to help support overall health.
Add a splash of balsamic vinegar and coconut aminos for depth and a subtle natural sweetness without any added sugar, and you’ve got the cozies meatball soup of your dreams.

Nutritional Benefits of This Meatball Soup
Beyond being delicious, this soup is a powerhouse of nutrients. The ground beef supplies protein and iron to keep you energized, while the potatoes and carrots offer complex carbs and beta-carotene.
Using bone broth adds collagen and minerals for gut and joint support. So many things! Not to mention this recipe is naturally gluten-free and dairy-free, making it accessible for many dietary needs. Served with a slice of toasty bread or on its own, it’s a satisfying meal that warms you from the inside out. I hope you love it! Let me know what you think below.


Ingredients You’ll Need:
For the meatballs:
- Grass-fed ground beef
- Gluten-free panko breadcrumbs
- Egg
- Garlic cloves
- Fresh parsley
- Kosher salt
- Dried thyme
- Freshly ground black pepper
- Olive oil
For the soup:
- Yellow onion
- Carrot (about 1 large carrot)
- Celery (about 2 large stalks)
- Kosher salt
- Dried thyme
- Cassava flour
- Tomato paste
- Balsamic vinegar
- Coconut aminos
- Yellow potatoes (about 1 large potato)
- Beef bone broth (I like Kettle & Fire)
- Fresh thyme
- Frozen peas

How To Make Beef Meatball Soup
For the meatballs:
In a medium bowl, add the ground beef, panko, egg, garlic, parsley, salt, dried thyme, and pepper. Using your hands, mix together until combined.
Scoop the meatballs into 1 tablespoon-sized balls. Lightly wet your hands, and roll each ball into a smooth meatball. You will have 28-30 meatballs.
In a large Dutch oven, heat the olive oil over medium heat.
Once hot, add half of the meatballs. Cook, undisturbed, for 2 minutes before stirring, and continuing to brown the meatballs on all sides, about 6 minutes total. They do not have to be fully cooked through.
Transfer to a plate and repeat with the second batch, cooking until all the meatballs are deeply browned and crisped in places.






For the soup:
Add the remaining 1 tablespoon of olive oil to the pan. Add the onions, carrot, and celery. Season with salt, pepper, and dried thyme. Cook, stirring occasionally, until the onions are translucent, about 6 minutes.
Add the garlic, stir, and cook for an additional 1 minute.
Add the cassava flour and stir to combine, coating all of the veggies. Cook, undisturbed for 1 minute, allowing the flour to toast slightly.
Add the tomato paste and begin to stir, cooking until the tomato paste begins to meld into the veggie mixture.








Pour in the balsamic and the coconut aminos to deglaze the pan, scraping the bottom of the pan to release all of the browned bits. Add the potatoes and the meatballs. Stir to combine.
Pour the beef bone broth into the pot and add the fresh thyme sprigs. Increase the heat to medium-high and bring to a rapid simmer. Reduce the heat to low, cover, and cook for about 20 minutes, stirring occasionally, until the potatoes are fork-tender.
Remove the thyme sprigs and add the frozen peas. Cook, uncovered, for an additional 5 minutes, or until the peas are warmed through. Taste for seasoning and adjust if needed.
Serve in shallow bowls and garnish with extra parsley.







To Store:
To freeze leftovers, allow the soup to cool entirely before transferring into airtight containers. Make sure you leave about 1 inch of clearance at the top of the container before adding the lid. This will last in the freezer for up to 2 months.
To reheat, for best results, I like to thaw the soup in the fridge overnight and then reheat it on the stove.
Recipe Substitutions & Questions
Here are a few easy swaps to make this Beef Meatball Soup work for your taste, dietary needs, or whatever you have on hand:
- Ground beef: Swap for ground turkey, chicken, or lamb for a different flavor and leaner protein option.
- Gluten-free panko breadcrumbs: Depending on dietary needs, use regular panko, almond flour, or crushed gluten-free crackers to bind the meatballs.
- Yellow potatoes: Replace with sweet potatoes, Yukon gold potatoes, or even turnips for a lower-carb alternative.
- Carrots and celery: Substitute with parsnips, fennel, zucchini, or bell peppers for a similar veggie-packed texture.
- Bone broth: Use homemade or store-bought chicken or vegetable broth for a lighter version.
- Frozen peas: Swap for green beans, corn, or spinach added at the end of cooking.
- Balsamic vinegar: Use apple cider vinegar or red wine vinegar for a subtle tang without changing the soup’s balance.
- Coconut aminos: Substitute with low-sodium soy sauce or tamari if not avoiding gluten or soy alternatives.
For my kitchen, cooking, and baking essentials (& more!), shop my Amazon Storefront.

Can I make the meatballs ahead of time for this meatball soup?
Yes! You can prep the meatballs 1–2 days ahead of time and store them raw in the fridge until you’re ready to cook. They also freeze well—just roll them, place on a parchment-lined sheet pan, and freeze until solid before transferring to a freezer bag. When you’re ready to make the soup, cook them straight from frozen; just add a couple extra minutes of browning time. This is one of the best ways to make weeknight meatball soup even faster.
How do I keep the meatballs from falling apart in the soup?
To keep the meatballs tender but sturdy, avoid overmixing the meat mixture and make sure you use a proper binder such as gluten-free panko, almond flour, or crushed crackers. Searing the meatballs until browned on all sides also helps them hold their shape once they go into the broth. If you prefer extra-firm meatballs, you can chill them for 20–30 minutes before browning.
Can I make this soup in a slow cooker or Instant Pot?
Yes, with a few small adjustments. For the slow cooker, brown the meatballs and sauté the vegetables on the stovetop first, then transfer everything (except peas) to the slow cooker and cook on LOW for 4–5 hours. For the Instant Pot, use Sauté mode to brown the meatballs and veggies, then pressure cook on HIGH for 7 minutes with a quick release. Stir in the peas at the end in both versions so they don’t overcook.

More Cozy Soup & Comfort-Food Recipes
- Chicken & Wild Rice Soup
- Loaded Baked Potato Soup
- Lasagna Soup (High-Protein!)
- Sausage, White Bean & Kale Soup
- Rich & Creamy Potato and Leek Soup
Beef Meatball Soup

Equipment
- Dutch oven
Ingredients
For the meatballs:
- 1 lb. 85/15 grass-fed ground beef
- ½ cup gluten-free panko breadcrumbs
- 1 large egg
- 2 cloves garlic, minced
- 2 tablespoons finely chopped fresh parsley, plus more for serving
- 1 teaspoon kosher salt
- 1 teaspoon dried thyme
- ½ teaspoon freshly ground black pepper
- 2 tablespoons olive oil, divided
For the soup:
- 1 cup diced yellow onion (about 1 medium yellow onion)
- 1 cup peeled and diced carrot (about 1 large carrot)
- 1 cup diced celery (about 2 large stalks)
- 1 teaspoon kosher salt
- 1 teaspoon dried thyme
- 1 tablespoon cassava flour
- 2 tablespoons tomato paste
- 2 tablespoons balsamic vinegar
- 2 tablespoons coconut aminos
- 2 cups peeled and diced yellow potatoes (about 1 large potato)
- 4 cups beef bone broth, (I like Kettle & Fire)
- 6 sprigs fresh thyme
- ½ cup frozen peas
Instructions
For the Meatballs:
- In a medium bowl, add the ground beef, panko, egg, garlic, parsley, salt, dried thyme, and pepper. Using your hands, mix together until combined.
- Scoop the meatballs into 1 tablespoon-sized balls. Lightly wet your hands, and roll each ball into a smooth meatball. You will have 28-30 meatballs.
- In a large Dutch oven, heat the olive oil over medium heat.
- Once hot, add half of the meatballs. Cook, undisturbed, for 2 minutes before stirring, and continuing to brown the meatballs on all sides, about 6 minutes total. They do not have to be fully cooked through.
- Transfer to a plate and repeat with the second batch, cooking until all the meatballs are deeply browned and crisped in places.
For the Soup:
- Add the remaining 1 tablespoon of olive oil to the pan. Add the onions, carrot, and celery. Season with salt, pepper, and dried thyme. Cook, stirring occasionally, until the onions are translucent, about 6 minutes.
- Add the garlic, stir, and cook for an additional 1 minute.
- Add the cassava flour and stir to combine, coating all of the veggies. Cook, undisturbed for 1 minute, allowing the flour to toast slightly.
- Add the tomato paste and begin to stir, cooking until the tomato paste begins to meld into the veggie mixture.
- Pour in the balsamic and the coconut aminos to deglaze the pan, scraping the bottom of the pan to release all of the browned bits. Add the potatoes and the meatballs. Stir to combine.
- Pour the beef bone broth into the pot and add the fresh thyme sprigs. Increase the heat to medium-high and bring to a rapid simmer. Reduce the heat to low, cover, and cook for about 20 minutes, stirring occasionally, until the potatoes are fork-tender.
- Remove the thyme sprigs and add the frozen peas. Cook, uncovered, for an additional 5 minutes, or until the peas are warmed through. Taste for seasoning and adjust if needed.
- Serve in shallow bowls and garnish with extra parsley.
To Store:
- To freeze leftovers, allow the soup to cool entirely before transferring into airtight containers. Make sure you leave about 1 inch of clearance at the top of the container before adding the lid. This will last in the freezer for up to 2 months.
- To reheat, for best results, I like to thaw the soup in the fridge overnight and then reheat it on the stove.


















