Ingredients
1 lb ground beef (80/20)
1/2 lb ground pork
1/2 cup breadcrumbs
1/4 cup grated Parmesan cheese
1 large egg, lightly beaten
2 cloves garlic, minced (for meatballs)
2 tbsp fresh parsley, chopped (for meatballs)
1 tbsp fresh basil, chopped (for meatballs)
1/2 tsp salt (for meatballs)
1/4 tsp black pepper (for meatballs)
2 tbsp olive oil, divided
1 large onion, chopped
2 carrots, chopped
2 celery stalks, chopped
3 cloves garlic, minced (for soup base)
1 tsp dried Italian seasoning
8 cups (2 quarts) beef or chicken broth
1 (28 oz) can crushed tomatoes
1 bay leaf
1 cup small pasta (ditalini, acini di pepe, or orzo)
2 cups fresh spinach, stems removed and chopped
1/4 cup fresh parsley, chopped (for garnish)
1/4 cup fresh basil, chopped (for garnish)
Instructions
Step 1: In a large bowl, combine ground beef, ground pork, breadcrumbs, Parmesan cheese, egg, 2 cloves minced garlic, 2 tablespoons chopped fresh parsley, 1 tablespoon chopped fresh basil, 1/2 teaspoon salt, and 1/4 teaspoon black pepper. Mix gently until just combined, being careful not to overmix.
Step 2: Roll the mixture into 1-inch meatballs. You should get about 35-40 meatballs. Place them on a baking sheet.
Step 3: Heat 1 tablespoon olive oil in a large Dutch oven or soup pot over medium-high heat. Working in batches, brown the meatballs on all sides until lightly golden. Remove browned meatballs and set aside.
Step 4: In the same pot, add the remaining 1 tablespoon olive oil if needed. Add chopped onion, carrots, and celery. Sauté for 5-7 minutes until the vegetables begin to soften. Season with 1/2 teaspoon salt and 1/4 teaspoon black pepper.
Step 5: Stir in the remaining 3 cloves minced garlic and dried Italian seasoning. Cook for 1 minute until fragrant.
Step 6: Pour in beef or chicken broth, crushed tomatoes, and add the bay leaf. Bring the mixture to a simmer.
Step 7: Gently add the browned meatballs back into the simmering broth. Add the small pasta. Reduce heat to low, cover, and simmer for 15-20 minutes, or until the pasta is al dente and the meatballs are cooked through.
Step 8: Stir in the fresh spinach. Cook for another 2-3 minutes until the spinach is wilted. Add the remaining 1/4 cup chopped fresh parsley and 1/4 cup chopped fresh basil.
Step 9: Taste and adjust seasoning as needed. Remove the bay leaf before serving.
Step 10: Serve hot, garnished with extra fresh herbs and grated Parmesan cheese, if desired.
Notes
For best results, use a mix of ground beef and pork for tender meatballs. This soup stores well; refrigerate leftovers in an airtight container for up to 3-4 days or freeze for up to 3 months. The pasta will absorb more liquid over time, so you might need to add a splash of broth when reheating leftovers.
- Prep Time: 30 minutes
- Cook Time: 40 minutes
- Category: Main Dishes & Savory Recipes
- Cuisine: American
Nutrition
- Serving Size: 1.5 cups
- Calories: 350 kcal
- Sugar: 5 g
- Sodium: 850 mg
- Fat: 18 g
- Saturated Fat: 7 g
- Unsaturated Fat: 9 g
- Trans Fat: 0.5 g
- Carbohydrates: 30 g
- Fiber: 4 g
- Protein: 25 g
- Cholesterol: 90 mg