Go Back
A close-up of a hearty meatball soup recipe simmering in a blue Dutch oven, filled with meatballs, greens, and beans.

Hearty Italian-Style Meatball Soup

A comforting and flavorful soup packed with tender homemade meatballs, vibrant vegetables, and a rich tomato broth. This classic meatball soup is perfect for a cozy family meal and is sure to become a new favorite.
Prep Time 25 minutes
Cook Time 45 minutes
Total Time 1 hour 10 minutes
Servings: 6 servings
Course: Main Course
Cuisine: American, Italian
Calories: 380

Ingredients
  

For the Meatballs
  • 1 lb ground beef 80/20 or 85/15 lean
  • 1/2 cup panko breadcrumbs
  • 1 large egg
  • 1/4 cup grated Parmesan cheese
  • 2 tbsp milk
  • 1/2 tsp garlic powder
  • 1/2 tsp onion powder
  • 1/2 tsp dried oregano
  • 1/2 tsp salt
  • 1/4 tsp black pepper
  • 1 tbsp olive oil for searing meatballs
For the Soup
  • 2 tbsp olive oil
  • 1 large yellow onion diced
  • 2 medium carrots diced
  • 2 stalks celery diced
  • 3 cloves garlic minced
  • 1 28 oz can crushed tomatoes
  • 6 cups chicken or beef broth low sodium recommended
  • 1 tsp dried basil
  • 1 tsp dried oregano
  • 1 bay leaf
  • 1/2 tsp salt or to taste
  • 1/4 tsp black pepper or to taste
  • 1/2 cup small pasta such as ditalini, acini di pepe, or orzo
  • 3-4 oz fresh spinach roughly chopped (optional)
  • 1/4 cup fresh parsley chopped, for garnish
  • Grated Parmesan cheese for serving

Equipment

  • Large Pot or Dutch Oven
  • Large mixing bowl
  • Cutting board
  • Knife

Method
 

Prepare the Meatballs
  1. In a large mixing bowl, combine ground beef, panko breadcrumbs, egg, Parmesan cheese, milk, garlic powder, onion powder, dried oregano, 1/2 tsp salt, and 1/4 tsp black pepper. Mix gently with your hands until just combined; do not overmix.
  2. Roll the mixture into small, bite-sized meatballs, about 1-inch in diameter. You should get approximately 30-35 meatballs.
  3. Heat 1 tablespoon of olive oil in a large pot or Dutch oven over medium-high heat. Add meatballs in batches and sear until browned on all sides, about 3-5 minutes per batch. They don't need to be cooked through at this stage. Remove browned meatballs and set aside on a plate.
Start the Soup Base
  1. In the same pot, reduce heat to medium. Add the remaining 2 tablespoons of olive oil. Add the diced onion, carrots, and celery. Sauté for 5-7 minutes, until the vegetables begin to soften.
  2. Add the minced garlic and cook for another minute until fragrant, being careful not to burn it.
Simmer the Soup
  1. Stir in the crushed tomatoes, chicken or beef broth, dried basil, dried oregano, and the bay leaf. Season with 1/2 tsp salt and 1/4 tsp black pepper. Bring the soup to a gentle boil.
  2. Carefully add the seared meatballs back into the pot. Reduce heat to low, cover, and simmer for 15-20 minutes, allowing the flavors to meld and the meatballs to cook through.
Add Pasta and Finish
  1. Stir in the small pasta. Increase heat to medium and cook uncovered according to package directions, usually 8-10 minutes, or until the pasta is al dente. Ensure to stir occasionally to prevent pasta from sticking.
  2. Remove and discard the bay leaf. If using, stir in the fresh spinach and cook just until wilted, about 1-2 minutes.
  3. Taste and adjust seasoning as needed. You might want to add more salt or pepper.
Serve
  1. Ladle the hot meatball soup into bowls. Garnish generously with fresh chopped parsley and a sprinkle of grated Parmesan cheese.

Notes

This meatball soup tastes even better the next day as the flavors deepen! Store leftovers in an airtight container in the refrigerator for up to 3-4 days. You can also freeze portions without the pasta for up to 3 months; add freshly cooked pasta when reheating for best texture. For a lighter version, consider using ground turkey or chicken for the meatballs.