Ingredients
Equipment
Method
- Mix the meatballs: In a bowl, combine meat, breadcrumbs, Parmesan, egg, garlic, parsley, Italian seasoning, salt, pepper, and milk. Mix gently. Don’t overmix.
- Roll the meatballs: Roll into 1-inch balls (about 24–28). Keep them similar in size so they cook evenly.
- Build the soup base: Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery. Cook 6–8 minutes until soft. Add garlic and cook 30 seconds.
- Add broth and seasonings: Stir in tomato paste, then broth, diced tomatoes (if using), bay leaf, Italian seasoning, and red pepper flakes. Bring to a gentle boil.
- Cook the meatballs in the broth: Lower heat to a steady simmer. Drop meatballs in carefully. Simmer 12–15 minutes until cooked through (no pink inside).
- Add pasta or rice: Stir in pasta and cook until tender, usually 8–10 minutes (check package). Stir often so pasta doesn’t stick.
- Finish with greens: Stir in spinach for 1–2 minutes until wilted. Taste and adjust salt and pepper.
- Serve: Ladle hot meatball soup into bowls. Top with Parmesan and a squeeze of lemon if you like.
Notes
I cook meatball soup on busy nights because it tastes like a slow-simmered meal, even when I move fast. I roll small meatballs so they cook evenly and stay tender in the broth. I keep the pot at a gentle simmer, not a boil, and I taste at the end to balance salt. When I store leftovers, I keep pasta separate so the soup stays brothy and fresh the next day.