Italian Meatball Soup
This post may contain affiliate links. Please read my disclosure policy.
You’re going to love this Italian Meatball Soup. Easy and delicious, tender homemade beef meatballs and loaded with vegetables, it’s a quick, hearty meal to satisfy all appetites!

Italian Meatball Soup Recipe
For me, soup season is a 12-month commitment, which makes sense when you live in Alberta and winter basically refuses to leave. But honestly, I’d eat soup year-round anyway. It’s cozy, comforting, and this Italian Meatball Soup is exactly the kind of simple, satisfying meal that works just as well on a busy Tuesday night as it does for a casual dinner with friends.
Why You’ll Love This Soup
- Homemade meatballs – Juicy, tender and seasoned just right, no shortcuts here.
- Hearty and satisfying. With beans, veggies, and broth, this is a full meal in a bowl.
- Perfect for meal prep. Makes a big batch, and the leftovers taste even better the next day.
- One pot wonder. Fewer dishes, more flavor. Win-win!
Before You Start

The Meatballs – Tender, Juicy and Totally Worth It
- Use extra lean ground beef – you’ll get delicious meatballs without the greasy broth.
- Don’t overmix the meatball mixture. Less handling keeps the meatballs nice and tender, don’t treat them like you’re kneading dough.
- Use a cookie scoop or tablespoon – this makes shaping so much easier and also keeps them uniform which means they’ll all cook evenly.
Tip: Grate the onion instead of chopping it. Not only does this keep your meatballs super moist, but you also won’t get those big chunks of onions in your meatballs.
The Veggies – Mirepoix with a Mediterranean Makeover
- Onion, carrot, celery – the classic trio. Make sure you chop them about the same size so they cook evenly.
- Sauté until the onions are soft and the carrots start to smell sweet. That’s when you know it’s time for garlic.
- Don’t skip the garlic. Ever!
The Broth
- I always choose low sodium beef broth or no sodium added because this gives me control. You can always add more salt, but there’s no coming back from over-salted soup.
- Cannellini beans + diced tomatoes = texture and body.
- Italian seasoning ties everything together. Use fresh herbs if you’ve got them, but dry is perfectly fine.
Don’t Forget the Cheese
- Sprinkle Parmesan on top before serving, it melts slightly and adds a nice salty savory finish.
- Want to go big? Add a little grated Parm or even a Parmesan rind right in the soup for extra richness.
This is one of those soups that is hearty, comforting, full-on meal status and it’s all made in one pot. Here’s how to nail it like you’ve been making it for years (because I basically have).

In a large bowl, mix together your meatball ingredients: lean ground beef, onion, garlic, egg, Parmesan and seasoning. The trick here is to mix until just combined. Overmixing = tough meatballs.
- Want them extra juicy? Grate the onion instead of chopping, it blends in and adds moisture.
- A cookie scoop helps keep them evenly sized so they cook at the same rate.
- Chill in the fridge while you start the soup, they’ll hold their shape better when cooking.

Tip: This recipe makes about 25-30 meatballs, which sounds like a lot, until you realize you’ve eaten six straight from the pot.

Start with onion, carrots and celery, the holy trinity of soup flavor. Sauté them in olive oil until the onion is soft and the veggies are starting to caramelize.
- Don’t rush this step, this is where the soup starts getting good.
- Add garlic last so it doesn’t burn, 30 seconds is plenty.

Now pour in the beef broth, water, tomatoes, beans, Italian seasoning, salt, and pepper. Stir it all together and bring it to a boil.
- Use low sodium broth so that you can control the sodium. I can’t emphasize this enough.
- Don’t forget the beans, they bulk up the soup and make it feel more substantial.
- Taste the broth before adding the meatballs and adjust as needed.

Gently drop the meatballs into the soup one at a time. No stirring yet, let them set first or you’ll end up with meatball soup minus the meatballs.
- Once all the meatballs are in, reduce the heat to medium, cover, and let simmer for 20 minutes.
- Give it a gentle stir halfway through, they should hold their shape beautifully.
- If you want to be fancy, you can brown the meatballs first, but I never do it, because they cook perfectly right in the broth and stay super tender. Plus, I heard from an actual Italian nona that you never ever brown the meatballs first.
- Once the meatballs are fully cooked, you’re pretty much done. I love to sprinkle some fresh parsley before actually serving.

How To Serve
This isn’t one of those dainty soups that needs a dozen sides, this one holds its own. But if you’re in the mood to round out the meal (or just want an excuse to dip bread in something), I love to serve this with freshly grated Parmesan cheese, and I mean a generous sprinkle, and a good glass of red wine. Here are some sides that go with it as well:
No Knead Bread
Easy Tossed Salad
Cheesy Breadsticks
Italian Potato Salad
Frequently Asked Questions
Can I make this in the slow cooker?
Absolutely! Sauté the veggies first on the stovetop. Mix and form your meatballs. Add all the ingredients to the slow cooker along with the meatballs and cook on low for 6-7 hours or high for 3-4 hours until the meatballs are fully cooked and tender.
Can I use store-bought meatballs?
You can…but I’m going to gently nudge you toward homemade. Homemade meatballs are quick to make and taste so much better. However, if you’re in a pinch, go for uncooked, good quality beef or turkey meatballs and simmer them right in the soup. Fully cooked ones work too but cut back on the simmer time so they don’t turn rubbery.
Can I freeze this soup?
Yes, and it freezes beautifully. Here’s how:
– Let the soup cool completely before transferring it to freezer-safe containers.
– Freeze for up to 3 months.
– Reheat gently on the stovetop. You can add a splash of broth or water if it’s thickened up too much.
Can I make the meatballs ahead of time?
Definitely. Form and refrigerate the meatballs up to 24 hours in advance. Or freeze them raw on a baking sheet, then transfer to a ziploc bag. When ready to eat, drop them straight into the soup from frozen, just add 5 to 10 extra minutes of cook time.

Try These Soups Next
- Instant Pot Chicken Noodle Soup
- Creamy Loaded Potato Soup
- Homemade Chicken Noodle Soup
- Buffalo Chicken Wing Soup
- French Onion Soup
- Lasagna Soup
- Minestrone Soup
- Hamburger Soup
Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps our business thrive & continue providing free recipes.

Italian Meatball Soup
Video
Ingredients
Meatballs
- 1 pound ground beef (extra lean)
- 1 small onion (chopped or shredded)
- 2 cloves garlic (minced)
- 1 tablespoon Italian seasoning
- 1 large egg
- ½ teaspoon salt
- ¼ teaspoon pepper
- ⅓ cup Parmesan cheese (grated)
For Soup
- 2 tablespoon olive oil
- 1 medium onion (chopped)
- 2 medium carrots (diced)
- 3 stalks celery (chopped)
- 3 cloves garlic (minced)
- 4 cup beef broth (low sodium)
- 2 cups water
- 29 ounce diced tomatoes ((1 large can))
- 29 ounce cannellini beans (drained and rinsed (1 large can or 2 small ones))
- 1 teaspoon salt (or to taste)
- ½ teaspoon pepper (or to taste)
- 1 tablespoon Italian seasoning
- ⅓ cup Parmesan cheese (for sprinkling over the top)
Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps our business thrive & continue providing free recipes.
Instructions
- In a large bowl, add together all of the meatball ingredients; mix well until well incorporated. Shape the meatballs so they are about 1 inch in diameter. This should produce about 25 – 30 meatballs – depending on how big you make them. Place the meatballs onto a plate and place them in the fridge until ready to use.
- In a large dutch oven, heat the olive oil over medium high heat. Add in the onion, carrots, and celery and saute for about 5 minutes, until the onion and veggies are soft. Next, stir in the garlic and let cook for another 30 seconds.
- Add the broth and water to the dutch oven, followed by the tomatoes, cannellini beans, salt and pepper and Italian seasoning; bring everything to a boil.
- Remove meatballs from the fridge and add them to the soup 1 at a time. Once all the meatballs are in the dutch oven, reduce to medium heat, cover the pot, and let cook for about 20 minutes or until the meatballs are cooked through.
- When meatballs are fully cooked through, remove from heat and serve in individual bowls. Garnished with parmesan cheese and voila!
Notes
- In an airtight container this soup will last 3 – 4 days.
- Meatballs – Use extra lean beef so the soup stays light and not greasy. Don’t overmix the mixture or the meatballs will be tough. Chill them briefly to help them hold their shape.
- Grated Onion – I like to grate the onion into the meatball mix for extra moisture and to help them stay tender (plus, no big onion chunks!).
- Beans – Cannellini beans are classic, but great northern or navy beans work just fine. Drain and rinse before adding.
- Soup Base – The combo of beef broth, tomatoes, and Italian seasoning gives you a rich base without hours of simmering.
- Parmesan – Stir some into the soup or just sprinkle on top. Freshly grated is best for flavor and melt factor.
Nutrition Information
Notice: Nutrition is auto-calculated for your convenience. Where relevant, we recommend using your own nutrition calculations.

