Ingredients
– ½ pound ground beef (85% lean)
– ½ pound ground pork
– 1 beaten egg
– ½ cup breadcrumbs
– ¼ cup grated Parmesan cheese
– 3 cloves minced garlic for meatballs
– 1/3 cup finely chopped fresh parsley
– ¾ teaspoon salt
– ¼ teaspoon pepper
– 1 tablespoon olive oil
– 1 diced yellow onion
– 1¼ cups diced carrots
– 2 diced celery ribs
– 3 cloves minced garlic for soup base
– 8 cups chicken broth
– 2 teaspoons Italian seasoning
– ¾ cup uncooked acini de pepe pasta
– 4 to 5 cups fresh spinach
Instructions
1-Preparation Phase: First, prepare all ingredients by chopping onions, dicing carrots and celery, mincing garlic, and washing spinach. Having everything ready before you start cooking makes the process much smoother and more enjoyable. This preparation step should take about 15-20 minutes, and it’s worth every second for the stress-free cooking experience that follows.
2-Creating the Meatballs: In a large bowl, combine the ground beef and ground pork. Add the beaten egg, breadcrumbs, grated Parmesan cheese, 3 cloves of minced garlic, chopped fresh parsley, salt, and pepper. Mix the ingredients until well blended, being careful not to overwork the meat which can make the meatballs tough. The mixture should hold together easily when shaped. Roll the mixture into small meatballs, approximately ¾ inch in diameter. This size is perfect for spoonable soup and ensures each bite contains a little bit of everything. Place the formed meatballs on a plate or baking sheet until ready to cook. The secret to tender meatballs is gentle handling. Mix just enough to combine the ingredients, and roll them lightly between your palms without compressing them too tightly.
3-Browning the Meatballs: Heat 1 tablespoon of olive oil in a large pot or Dutch oven over medium-high heat. Add the meatballs in batches, being careful not to crowd the pot. Brown them on all sides, which should take about 3-4 minutes per batch. You don’t need to cook them all the way through at this stage, as they’ll finish cooking in the soup. Remove the browned meatballs from the pot and set them aside on a plate. This browning step is crucial for developing deep, savory flavors. The fond (the browned bits left in the pot) will become part of your soup base, adding incredible depth to the final dish. Don’t skip this step if you want restaurant-quality results!
4-Building the Soup Base: In the same pot you used for the meatballs (no need to wash it), add the diced yellow onion, carrots, and celery. Cook over medium heat, stirring occasionally, until the vegetables have softened, about 5-7 minutes. This classic mirepoix forms the aromatic foundation of your soup. Add the remaining 3 cloves of minced garlic and cook for another minute until fragrant. Stir in the Italian seasoning, allowing it to bloom in the heat and release its aromatic oils. Pour in the chicken broth, scraping up any browned bits from the bottom of the pot as the liquid heats up. Those browned bits are liquid gold!
5-Simmering the Soup: Bring the broth to a boil, then reduce the heat to a gentle simmer. Carefully add the browned meatballs back into the pot. Let the soup simmer for about 10 minutes to allow the meatballs to finish cooking and the flavors to meld together. The meatballs should be cooked through and tender. Meanwhile, cook the acini de pepe pasta separately in a pot of boiling salted water until al dente, according to package instructions. Cooking the pasta separately prevents it from absorbing too much broth and becoming mushy, especially important if you plan to have leftovers. Once cooked, drain the pasta and set it aside.
6-Adding the Finishing Touches: Stir the fresh spinach into the simmering soup and cook until just wilted, which should only take 1-2 minutes. You want the spinach to retain its vibrant color and fresh flavor, not become overcooked and mushy. To serve, place a portion of cooked pasta in each bowl and ladle the hot soup with meatballs over it. This method ensures the pasta stays perfectly textured and doesn’t continue cooking in the hot broth. Garnish with freshly grated Parmesan cheese and a sprinkle of fresh parsley for a beautiful presentation. Serve with crusty bread for a complete, satisfying meal.
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
⚖️ Roll small, uniform meatballs about 3/4 inch for even cooking.
🍳 Browning meatballs adds flavor and helps them hold shape.
🍝 Cooking pasta separately prevents it from absorbing broth during storage for leftovers.
- Prep Time: 25 minutes
- Cook Time: 25 minutes
- Category: Soup, Main Dish
- Method: Simmering, Browning
- Cuisine: Italian
Nutrition
- Serving Size: 1 bowl
- Calories: 328 kcal
- Sodium: 1755 mg
- Fat: 16 g
- Carbohydrates: 24 g
- Protein: 23 g
