I love this soup because it’s rich and filling yet incredibly easy to make. The combination of juicy meatballs, tender veggies, and creamy broth gives it the perfect balance of texture and flavor. It’s also versatile—I can use ground beef or turkey, swap in my favorite greens, or adjust the pasta type. I like how it works equally well for a weeknight dinner or as an impressive dish for guests. Plus, it reheats beautifully, making it a great meal prep option.
Ingredients
(Note: All ingredient amounts are listed in the recipe card below.)
For the Meatballs: 1 lb ground beef or ground turkey ½ cup breadcrumbs 1 egg, lightly beaten 2 tablespoons grated Parmesan cheese 2 teaspoons Italian seasoning 2 cloves garlic, minced ½ teaspoon salt ¼ teaspoon black pepper
For the Soup: 2 tablespoons olive oil 1 small onion, finely chopped 2 carrots, diced 2 celery stalks, diced 3 cloves garlic, minced 6 cups chicken or vegetable broth 1 cup heavy cream 1 cup small pasta (such as ditalini or orzo) 1 cup spinach or kale, chopped 1 teaspoon dried basil 1 teaspoon dried oregano Salt and pepper, to taste Fresh parsley and grated Parmesan cheese, for garnish
Directions
I start by preparing the meatballs. In a large bowl, I combine the ground meat, breadcrumbs, egg, Parmesan cheese, Italian seasoning, minced garlic, salt, and pepper. I mix gently until everything is just combined, being careful not to overwork the meat. Then I shape the mixture into small, bite-sized meatballs, about an inch in diameter, and set them aside.
Next, I heat one tablespoon of olive oil in a large pot over medium heat. I brown the meatballs in batches until they’re golden on all sides. They don’t need to be fully cooked at this point since they’ll finish in the soup. Once browned, I remove them and set them aside.
To build the soup base, I add the remaining olive oil to the same pot and sauté the onion, carrots, and celery for about 5–7 minutes until softened. Then I stir in the minced garlic, dried basil, and oregano, letting them cook for about a minute until fragrant.
I pour in the chicken or vegetable broth and bring it to a boil. Then I add the pasta and cook according to the package instructions, lowering the heat to medium once it starts to simmer. After that, I return the browned meatballs to the pot and let them cook in the soup for another 10 minutes to soak up all those wonderful flavors.
To finish, I stir in the chopped spinach and heavy cream, cooking for an additional 2–3 minutes until the spinach wilts and the soup is rich and creamy. Finally, I season to taste with salt and pepper and garnish with fresh parsley and a sprinkle of Parmesan cheese before serving.
Servings and Timing
This recipe makes 6 servings. Prep Time: 20 minutes Cook Time: 30 minutes Total Time: 50 minutes
Variations
I like experimenting with different versions of this soup. Sometimes I swap the spinach for kale or Swiss chard, or I use ground chicken instead of beef for a lighter version. When I want extra richness, I stir in a bit of cream cheese or mascarpone along with the heavy cream. For a gluten-free option, I use gluten-free pasta and breadcrumbs. I also enjoy adding chopped sun-dried tomatoes or roasted red peppers for a deeper, slightly sweet flavor.
Storage/Reheating
I store leftover soup in an airtight container in the refrigerator for up to 4 days. When reheating, I warm it on the stovetop over medium heat, stirring occasionally. If it thickens too much, I add a splash of broth or milk to bring back the creamy consistency. For longer storage, I freeze the soup (without pasta, which can get mushy) for up to 2 months. I thaw it overnight in the fridge before reheating and add freshly cooked pasta before serving.
FAQs
Can I use store-bought meatballs?
Yes, I sometimes use frozen or pre-cooked meatballs when I’m short on time—just simmer them directly in the soup.
Can I make this soup dairy-free?
I replace heavy cream with coconut milk or a dairy-free creamer for a lighter, dairy-free version.
What kind of pasta works best?
I like using small shapes like ditalini, orzo, or small shells so they blend nicely with the meatballs.
Can I make the meatballs ahead of time?
Yes, I often make and freeze the uncooked meatballs, then cook them directly in the soup when needed.
How can I make this soup thicker?
I let it simmer uncovered a bit longer, or I mash a few of the cooked vegetables for natural thickening.
Can I add cheese to the soup?
Definitely—I sometimes stir in shredded mozzarella or a bit of Parmesan for extra creaminess.
Can I use other greens besides spinach?
Yes, kale, escarole, or even arugula all work beautifully in this soup.
How do I prevent the pasta from getting too soft?
I cook the pasta just until al dente and avoid over-simmering once it’s added.
Can I make this soup in a slow cooker?
Yes, I cook the meatballs first, then add everything except the cream and pasta to the slow cooker. I stir those in near the end of cooking.
What side dishes go well with this soup?
I like serving it with crusty bread, garlic toast, or a fresh green salad to make it a full meal.
Conclusion
This Creamy Italian Meatball Soup has become one of my go-to comfort meals because it’s hearty, creamy, and full of flavor. I love how easy it is to customize while still delivering that classic Italian warmth in every bowl. It’s perfect for cozy nights, family dinners, or anytime I want something that feels both satisfying and special. Each bite reminds me why homemade soup will always be the best kind of comfort food.
A hearty, comforting soup filled with tender Italian meatballs, creamy broth, vegetables, and pasta. This Creamy Italian Meatball Soup delivers rich flavor and cozy satisfaction in every spoonful.
Ingredients
For the Meatballs:
1 lb ground beef or ground turkey
½ cup breadcrumbs
1 egg, lightly beaten
2 tablespoons grated Parmesan cheese
2 teaspoons Italian seasoning
2 cloves garlic, minced
½ teaspoon salt
¼ teaspoon black pepper
For the Soup:
2 tablespoons olive oil
1 small onion, finely chopped
2 carrots, diced
2 celery stalks, diced
3 cloves garlic, minced
6 cups chicken or vegetable broth
1 cup heavy cream
1 cup small pasta (such as ditalini or orzo)
1 cup spinach or kale, chopped
1 teaspoon dried basil
1 teaspoon dried oregano
Salt and pepper, to taste
Fresh parsley and grated Parmesan cheese, for garnish
Instructions
Preheat the oven to 375°F (190°C).
In a large bowl, mix ground meat, breadcrumbs, egg, Parmesan cheese, Italian seasoning, garlic, salt, and pepper until combined. Form into 1-inch meatballs and set aside.
Heat 1 tablespoon olive oil in a large pot over medium heat. Brown the meatballs in batches until golden on all sides. Remove and set aside.
Add remaining olive oil to the pot and sauté onion, carrots, and celery for 5–7 minutes until softened.
Stir in minced garlic, dried basil, and oregano; cook for 1 minute until fragrant.
Pour in chicken or vegetable broth and bring to a boil. Add the pasta and cook according to package directions, reducing heat to medium once simmering.
Return browned meatballs to the pot and simmer for 10 minutes to finish cooking and absorb flavor.
Stir in chopped spinach and heavy cream; cook for 2–3 minutes until spinach wilts and the soup turns creamy.
Season with salt and pepper to taste. Garnish with fresh parsley and grated Parmesan before serving.
Notes
Substitute ground chicken or turkey for a lighter version.
Use gluten-free pasta and breadcrumbs for a gluten-free soup.
Replace heavy cream with coconut milk for a dairy-free alternative.
Add sun-dried tomatoes or roasted red peppers for deeper flavor.
Freeze soup without pasta for up to 2 months and add cooked pasta before serving.