This hearty Italian meatball soup is full of juicy meatballs, pasta, and tender vegetables simmered in a rich tomato broth. It's a simple, healthy, and delicious soup for every night of the week.
This soup is substantial enough to enjoy for Sunday dinner but simple enough to fit into that busy weeknight time gap. Homemade meatballs sound intimidating, but they come together and bake in 15 minutes, while you're getting the soup going, then finish cooking with the vegetables and pasta in a rich tomato broth.
The broth cooks the pasta and all of the flavors from the ingredients seep into the broth. Building flavors is one of the hallmarks of a great dish and that's exactly what we're doing in this meatball soup recipe.
Learn how long to bake meatballs so they're tender and juicy every time.
Reasons to Love Italian Meatballs Soup
These might be the most bullet points I've ever written for reasons to love a recipe. There are just so many perks to this meal! Here are some of the reasons, and I'm sure you'll find more.
- Just like Italian wedding soup — but with a rich tomato broth.
- Hearty and substantial enough to eat on its own (without a side dish).
- Done in under 30 minutes.
- Soup in general is great for meal prep, and this recipe is especially good.
- Freezer-friendly (before and after cooking).
- Great for the whole family. Kids love this because you can separate the meatballs and pasta and top everything with cheese!
- Full of veggies, and can easily add more, like spinach or kale.
- Easy to make gluten-free and dairy-free.
- Translates well to the slow cooker for a dump-and-go meal.
Grab These Key Ingredients
Here are the main ingredients in this comforting soup. Skip down to the recipe card below for the full recipe and exact measurements.
- Panko bread crumbs: we used a gluten-free panko, just like in our gluten-free meatballs, because it binds them together well. A traditional panko or Italian breadcrumbs work too. Used crushed Simple Mills crackers to keep them grain-free.
- Milk: any milk or milk alternative will work.
- Beef: we like to use an 80% lean ground beef for our meatballs. You could also do half beef and half pork for extra flavor.
- Egg: this binds the meatballs together along with the milk and breadcrumbs.
- Seasoning and herbs: Italian seasoning, garlic powder, salt, red pepper flakes, fresh thyme, and basil add tons of Italian flavor.
- Parmesan cheese: freshly grated cheese adds texture and flavor to the meatballs. We're also simmering the rind in the soup and topping it with extra cheese. It's an optional ingredient if you want to keep this dairy-free, but it's really delicious.
- Vegetables: celery, onion, and carrots are the base of this recipe and add nutritional value.
- Tomatoes: a combination of diced tomatoes and tomato sauce gives this a thick and rich tomato flavor.
- Beef broth: a low sodium beef broth or stock is ideal, but chicken broth is another great option.
- Basil pesto: this is the secret ingredient we added to give this soup the most flavorful broth! We have a dairy-free pesto recipe or you can buy any store-bought pesto.
- Short-cut pasta: our favorite pasta for Italian meatball soup is fussili. We used a grain-free fussili to keep it gluten-free.
Make the Homemade Meatballs First
Add all of the meatball ingredients to a bowl and use a spoon or clean hands to mix well, making sure all of the eggs, breadcrumbs, cheese, and spices are incorporated into the ground beef.
Use a tablespoon to scoop out the meatballs and roll them into 1-inch-sized balls. You may need to wet your hands slightly if the meatballs are sticking to your hands. Drop them on a baking sheet and bake in the preheated oven for 10-12 minutes, until the meatballs reach an internal temp of just below 165°F. They will continue cooking when you take them out of the oven and while they simmer in the soup.
How to Make Italian Meatballs Soup
This is an overview with step-by-step photos, to make this Italian meatball soup recipe. Full printable instructions are in the recipe card below. You can also view the video tutorial below to watch instead of reading.
While the meatballs are cooking, start the soup. Add the olive oil to the bottom of a large pot or dutch oven over medium-high heat. When it’s hot and shimmering, add the onion, celery and carrots and cook for 3-4 minutes until they’re soft and the onion is translucent. Add the minced garlic and thyme and cook for another minute.
Pour in diced tomatoes, tomato sauce, and 4 cups of beef broth. Stir it well, then add the basil pesto, red pepper flakes, parmesan rind, and cooked tender meatballs. Increase the heat to high to bring the soup to a boil.
Once it's boiling, add the uncooked pasta and cook for 8-10 minutes, until al dente. Pasta cook time will vary based on the pasta you use. Check the package directions and adjust cook time as needed. Stir the soup occasionally to make sure the pasta isn’t sticking to the bottom of the pot.
When done, remove the parmesan rind, turn the heat down to medium-low, and stir in basil. Taste and add salt and pepper as needed. Serve the soup warm with fresh grated parmesan cheese and a little bit of fresh parsley or basil.
Tips for Success
- Make the meatballs smaller and the same size: Smaller meatballs will be easier to eat in a soup and will also cook more evenly.
- Season the meatballs well: Use a variety of herbs and spices to give the meatballs plenty of flavor.
- Use a good-quality broth: The broth is a key component of the soup, so be sure to use a high-quality chicken, beef, or vegetable stock.
- Add the vegetables at the right time: Vegetables such as carrots and celery will take longer to cook, so be sure to add them to the pot at the appropriate time.
- Don't overcook the pasta: If you're adding pasta to the soup, be sure to cook it just until it is al dente. Overcooked pasta can become mushy and unappealing.
- Adjust the seasoning to taste: Taste the soup before serving and adjust the seasoning as needed. You may need to add more salt, pepper, or herbs to balance the flavors.
Dietary Modifications + Recipe Variations
More veggies: add bell peppers and use the spinach, or try Italian kale
More fiber: throw in a can of drained and rinsed cannellini beans.
Gluten-free: use gluten-free panko bread crumbs in the mini meatballs and gluten-free pasta in the soup. Gluten-free noodles tend to fall apart easier, especially cassava flour and bean-based pasta, so they will likely fall apart when you store them.
Dairy-free: swap the parmesan in the recipe for nutritional yeast and use almond milk and dairy-free pesto.
Leftovers and Storage
This hearty meatball soup is ideal for leftovers, and may even be better the next day! Here are a few tips to store, freeze and reheat this recipe.
Storage: let it cool to room temperature and then transfer it to an airtight container and store it in the fridge for 3-4 days.
Freezer: let it cool to room temperature and then transfer it to a freezer-safe container or a heavy-duty freezer bag. Squeeze out as much air as possible before sealing the bag or container to prevent freezer burn. Store it flat in the freezer to save space for up to 3 months.
Reheat: When you're ready to eat the soup, thaw it in the refrigerator overnight. Transfer the soup to a pot and heat it over medium heat until it is hot and bubbly. If the soup is too thick, you may need to add a little water or broth to thin it out.
If you make this recipe, I’d love for you to give it a star rating ★ below. You can also tag me on Instagram so I can see it!
More Soup Recipes
- Instant Pot Tacos Soup
- Whole30 Zuppa Toscana
- Creamy Sausage Gnocchi Soup
- Creamy Chicken Tortilla Soup
- Instant Pot Lasagna Soup
Italian Meatball Soup
- ½ cup panko bread crumbs gluten-free if needed
- ¼ cup almond milk or whole milk
- 1 lb ground beef we used 85% lean
- 1 large egg
- 2 teaspoons Italian seasoning
- 1 teaspoon garlic powder
- ½ teaspoon kosher salt
- ½ cup finely grated parmesan cheese or nutritional yeast (for dairy-free option)
- 2 tablespoons olive
- 2 celery ribs chopped
- 3 medium carrots peeled and sliced
- 1 small onion diced
- 3 cloves garlic minced
- 1 tablespoon fresh chopped thyme
- 1 14.5-ounce can diced tomatoes
- 1 15-ounce can tomato sauce
- 4-6 cups of beef stock
- ¼ cup basil pesto homemade or store-bought
- 1 parmesan rind (the end of the parmesan wedge) optional*
- ¼ teaspoon red pepper flakes
- 1 ½ cups dry uncooked fusilli pasta or other shortcut pasta gluten-free if needed
- 2 tablespoons fresh chopped basil
- 3 cups fresh packed spinach optional
- Salt & pepper to taste
- Toppings: parmesan cheese, fresh basil and/or parsley
- Large Pot or Dutch Oven
- Sheet Pan
- Preheat the oven to 400°F and line a large baking sheet with parchment paper.
- Add the meatball ingredients to a large bowl and use a spoon or clean hands to mix well. Use a tablespoon to scoop out the meatballs and roll them into ¾ - 1 inch balls. Wet your hands slightly if the meatballs are sticking to your hands.
- Drop them on the prepared baking sheet and bake in the preheated oven for about 15 minutes, until the meatballs reach an internal temp of 165.
- While the meatballs are cooking, start the soup. Add the olive oil to the bottom of a large stock pot or dutch oven over medium-high heat. When it’s hot and shimmering, add the chopped onion, celery and carrots and cook for 3-4 minutes until they’re soft and the onion is translucent. Add the minced garlic and thyme and cook for another minute.
- Pour in the diced tomatoes, tomato sauce, and 4 cups of beef broth. Stir it well then add the basil pesto, red pepper flakes, and parmesan rind if using.When the meatballs are done cooking, carefully transfer them to the soup.
- Increase the heat to high to bring the soup to a boil. Once it's boiling, add the uncooked pasta and cook for 8-10 minutes, until al dente. Pasta cook time will vary based on the type of pasta you’re using. Check the package directions and adjust cook time as needed, being careful not to overcook the pasta. Stir the soup occasionally to make sure the pasta isn’t sticking to the bottom of the pot.
- When it’s done, remove the parmesan rind and turn the heat down to medium-low and stir in basil and spinach, if using. Taste and add salt and pepper as needed. Add up to 2 cups more beef stock if needed to reach your desired consistency.
- Serve the soup warm with parmesan cheese, more fresh basil and crusty bread if desired.