Step 1: Make the Meatballs : In a large bowl, combine ground beef, ground pork, breadcrumbs, Parmesan, egg, garlic, parsley, salt, and pepper. Mix until just combined — avoid overmixing to keep meatballs tender. Roll into small 1-inch meatballs and place on a plate.
Step 2: Brown the Meatballs (Optional) : Heat 1 tbsp olive oil in a skillet over medium heat. Brown meatballs on all sides for 3–4 minutes (they don’t need to be fully cooked). Remove and set aside. Note: You can also skip browning and cook the meatballs directly in the soup.
Step 3: Sauté Vegetables : In a large soup pot, heat 1 tbsp olive oil over medium heat. Add chopped onion, carrots, and celery. Sauté for 5–6 minutes until softened.
Step 4: Add Broth and Meatballs : Pour in chicken broth and bring to a gentle boil. Carefully add meatballs to the broth. Reduce heat to a simmer, cover, and cook for 10 minutes.
Step 5: Add Pasta : Add small pasta to the soup and cook according to package instructions, usually 6–8 minutes, until tender.
Step 6: Add Spinach and Seasonings : Stir in chopped spinach, thyme, oregano, salt, and black pepper. Simmer for an additional 2–3 minutes until spinach is wilted.
Step 7: Serve : Ladle soup into bowls. Garnish with grated Parmesan and fresh parsley. Serve hot with crusty bread or a light salad.