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.
How To Make Italian Meatball Soup
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).
Make the Meatballs – Yes, From Scratch. You’ve Got This.

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.
Sauté the Veggies

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.
Build the Broth – Aka the Soul of the Soup

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.
Cook the Meatballs

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.

Frequently Asked Questions (FAQs)
1. Can I make this soup in a slow cooker?
Yes! Sauté the vegetables first on the stovetop, then add all ingredients including the formed meatballs to the slow cooker. Cook on low for 6-7 hours or on high for 3-4 hours until the meatballs are fully cooked and tender.
2. Can I use store-bought meatballs instead of homemade?
You can, but homemade meatballs are recommended for the best flavor and texture. If using store-bought, opt for uncooked meatballs and simmer them in the soup. Adjust cooking time if using pre-cooked meatballs to avoid overcooking.
3. Is this soup freezer-friendly?
Yes! Let the soup cool completely before transferring to freezer-safe containers. Freeze for up to 3 months. Reheat gently on the stovetop, adding broth or water if the soup has thickened.
4. Can I prepare the meatballs ahead of time?
Absolutely. You can form and refrigerate the meatballs up to 24 hours in advance or freeze them raw on a baking sheet, then transfer to a freezer bag. When ready to cook, add them directly to the soup from frozen, adding 5-10 extra minutes of cook time.
5. What type of beans can I use in this soup?
Cannellini beans are traditional and recommended for their creamy texture, but you can substitute with great northern or navy beans. Just be sure to drain and rinse canned beans before adding to the soup.
