Ingredients
8 oz lean ground beef (80 to 90% lean) for rich flavor and protein
8 oz ground pork (or additional beef if unavailable) for balancing fat and tenderness in the meatballs
1/2 cup fresh white bread crumbs made from fresh rustic bread for binding meatballs and adding soft texture
1/4 cup chopped fresh parsley for brightness and herb flavor to meatballs
1 1/2 tsp minced fresh oregano or 3/4 tsp dried oregano for classic Italian herb aroma
1/2 cup finely shredded Parmesan cheese for savory, salty depth inside the meatballs
1 egg for binding the meatball mixture
1 tsp salt for seasoning the meatball mix and broth
1/4 tsp black pepper for mild heat and balance
1 tbsp olive oil for browning meatballs and sautΓ©ing vegetables
1 1/4 cups chopped carrots for forming part of the soffritto for sweet, aromatic base
1 1/4 cups chopped onions for savory foundation and sweetness when softened
3/4 cup chopped celery for completing the aromatic trio for a balanced broth
4 cloves garlic minced (about 1 1/2 tbsp) for boosting savory and aromatic notes; classic Italian taste
5 cans (14.5 oz each) low-sodium chicken broth (approximately 8.75 cups) for creating the soup base and keeping salt in check
1 cup dry acini di pepe pasta or substitute with orzo, ditalini, pastina (stars), or macaroni for tiny pasta that cooks quickly and fits the bite-sized meatballs
6 oz roughly chopped spinach for color, vitamins, and a tender green finish
additional finely shredded Parmesan cheese for serving as a finishing garnish for savory richness
Instructions
1-First Step: Mise en place and meatball mix Gather and measure all ingredients before you start. Chop 1 1/4 cups carrots, 1 1/4 cups onions, and 3/4 cup celery. Mince 4 garlic cloves. Roughly chop 6 oz spinach and finely shred extra Parmesan for serving. In a large mixing bowl, combine 8 oz lean ground beef, 8 oz ground pork, 1/2 cup fresh white bread crumbs, 1/4 cup chopped fresh parsley, 1 1/2 tsp minced fresh oregano (or 3/4 tsp dried), 1/2 cup finely shredded Parmesan cheese, 1 egg, 1 tsp salt, and 1/4 tsp black pepper. Gently mix with your hands until evenly distributed; avoid overworking the meat to keep meatballs tender.
2-Second Step: Shape and brown the meatballs Form the mixture into very small meatballs about 3/4 inch to 1 inch in diameter. Place them on a plate as you go. Heat 1 tbsp olive oil in a large non-stick skillet over medium-high heat. Brown half the meatballs, turning occasionally for about 4 minutes so they color on multiple sides. Transfer browned meatballs to a paper towel-lined plate. Repeat with remaining meatballs. The goal is to brown, not fully cook, because they’ll finish in the soup.
3-Third Step: Build the soup base While you brown the meatballs, heat 1 tbsp olive oil in a large pot over medium-high heat. Add the chopped carrots, onions, and celery and sautΓ© until softened, about 6 to 8 minutes. Stir occasionally so the vegetables soften and release sweet flavors. Add the minced garlic and sautΓ© for 1 more minute until fragrant. This soffritto creates a savory backbone for the broth.
4-Fourth Step: Add broth, pasta, and meatballs Pour 5 cans (14.5 oz each) low-sodium chicken broth (about 8.75 cups) into the pot. Season lightly with salt and pepper, remembering the meatballs and Parmesan will add saltiness later. Bring the pot to a boil over medium-high heat. Add 1 cup dry acini di pepe (or your chosen small pasta) and the browned meatballs. Reduce heat to medium-low, cover the pot, and simmer. Stir occasionally so the pasta cooks evenly and nothing sticks to the bottom. Simmer until the pasta is tender and meatballs are fully cooked, about 10 minutes.
5-Final Step: Add greens and serve In the last minute of cooking, stir in 6 oz roughly chopped spinach so it wilts gently without overcooking. Taste and adjust salt and pepper. Ladle the soup into bowls and sprinkle additional finely shredded Parmesan cheese over each serving. Serve piping hot with crusty bread if desired.
Last Step:
Please leave a rating and comment letting us know how you liked this recipe! This helps our business to thrive and continue providing free, high-quality recipes for you.Notes
π₯© Brown the meatballs first instead of just simmering to add richer flavor and develop a beautiful crust that enhances the soup’s depth
πΏ Use fresh herbs like parsley and oregano to boost freshness – they make a noticeable difference compared to dried versions
π Choose tiny pasta like acini di pepe for the perfect bite-sized experience; if you prefer a brothier soup, reduce pasta to 3/4 cup and add extra broth
- Prep Time: 25 minutes
- Cook Time: 25 minutes
- Category: Soup
- Method: Simmering
- Cuisine: Italian
Nutrition
- Serving Size: 1 serving
- Calories: 396
- Sugar: 4 g
- Sodium: 362 mg
- Fat: 20 g
- Saturated Fat: 6 g
- Unsaturated Fat: 11 g
- Trans Fat: 0.5 g
- Carbohydrates: 25 g
- Fiber: 3 g
- Protein: 29 g
- Cholesterol: 85 mg
