
This creamy Italian meatball soup combines tender homemade meatballs, aromatic vegetables, and perfectly cooked pasta in a rich, tomato-infused broth. The addition of cream and Parmesan creates a velvety texture that transforms this from a simple soup into a luxurious meal that satisfies the soul.
I first created this soup when my Italian grandmother was visiting during a particularly cold winter. She watched over my shoulder, nodding approvingly as I added the finishing touch of cream. Now it's our family's go-to comfort food when we gather for Sunday dinners.
Ingredients
- Ground beef: The foundation of flavorful meatballs; use 80/20 for best flavor and texture, or substitute with a beef and pork mixture for extra richness
- Breadcrumbs: Help bind the meatballs without making them dense; choose plain or Italian seasoned
- Parmesan cheese: Adds savory depth to both meatballs and broth; always use freshly grated for best flavor
- Italian seasoning: Essential for authentic flavor; look for blends with oregano, basil, and thyme
- Heavy cream: The secret to transforming this from ordinary soup to luxurious comfort food; use full fat for best results
- Small pasta shapes: Ditalini or elbow macaroni capture the perfect amount of broth in each bite
- Fresh spinach: Adds color, nutrition, and a slight earthiness that balances the richness
- Diced tomatoes: Provides acidity and depth; choose fire-roasted for extra flavor
- Chicken or beef broth: Forms the foundation of your soup; homemade yields best results, but quality store-bought works well
Step-by-Step Instructions
- Prepare the Meatball Mixture:
- Combine ground beef, breadcrumbs, Parmesan, egg, minced garlic, Italian seasoning, salt, pepper, and parsley in a large bowl. Use your hands to gently mix just until ingredients are evenly distributed. Overmixing will result in tough meatballs. The mixture should feel cohesive but still light. Roll between your palms to form 1inch balls, approximately 24 total.
- Brown the Meatballs:
- Heat olive oil in a Dutch oven over medium heat until shimmering. Add meatballs in a single layer, leaving space between each. Work in batches if necessary. Cook for 2 minutes without moving them, then gently turn and cook another 2 minutes. They should develop a deep brown crust but remain slightly undercooked inside as they'll finish cooking in the soup. Transfer to a plate.
- Create the Flavor Base:
- Add diced onion and celery to the same pot, using the flavorful fond left from the meatballs. Cook for 3 minutes, stirring occasionally, until vegetables begin to soften. Add minced garlic and cook for 30 seconds until fragrant. This aromatic base infuses the entire soup with flavor.
- Build the Soup:
- Pour in diced tomatoes with their juice, using a wooden spoon to scrape up any browned bits from the bottom of the pot. Add broth, Italian seasoning, salt, and pepper. Return the meatballs to the pot, bringing the mixture to a gentle simmer. Cover partially and cook for 15 minutes, allowing the flavors to meld and the meatballs to finish cooking.
- Add Pasta and Finish:
- Add your chosen pasta directly to the simmering soup. Cook uncovered for the time indicated on the package instructions, stirring occasionally to prevent sticking. Once pasta is al dente, reduce heat to low and stir in heavy cream and Parmesan cheese. Allow the soup to heat through without boiling, which could cause the cream to separate.
- Final Touches:
- Gently fold in fresh spinach or basil and allow to wilt for about 1 minute. Taste and adjust seasonings, adding more salt, pepper, or a squeeze of lemon juice if needed. Ladle into warm bowls and garnish with additional Parmesan cheese, fresh herbs, and a sprinkle of red pepper flakes if desired.

My absolute favorite part of this recipe is watching the transformation that happens when the cream meets the tomato broth. I always pause to appreciate that moment when the soup turns from a clear broth to a beautiful orange hue. It reminds me of how my grandmother would say cooking is like magic if you pay attention to the small moments.
Storage and Reheating
This soup will keep in the refrigerator for up to 3 days in an airtight container. The pasta will continue to absorb liquid as it sits making the soup thicker over time. When reheating add a splash of broth or water to thin it back to your desired consistency. Heat gently on the stovetop over medium-low heat, stirring occasionally until hot throughout.
Clever Substitutions
This recipe welcomes adaptation based on what you have available. Ground turkey or chicken can replace beef for a lighter version. For a dairy-free option, substitute coconut cream for heavy cream and nutritional yeast for Parmesan. Gluten-free pasta and breadcrumbs work perfectly for those with sensitivities.
Serving Suggestions
This creamy meatball soup is substantial enough to serve as a complete meal but pairs wonderfully with a few simple sides. A crusty Italian bread or garlic bread is perfect for sopping up the rich broth. For a lighter accompaniment, serve with a simple arugula salad dressed with lemon vinaigrette which provides a bright contrast to the creamy soup.

This beautiful soup is a cozy crowd-pleaser that's sure to become a family favorite. Treat yourself to the warmth and richness of homemade comfort in every bowl.
Frequently Asked Questions
- → How can I prevent meatballs from falling apart in the soup?
Ensure the meatball mixture has a good balance of moisture and binding agents like breadcrumbs and egg. Mix gently and avoid overhandling the meat when forming the meatballs.
- → Can I make this soup ahead of time?
Yes, you can prepare the soup in advance. Refrigerate it without the pasta to prevent it from absorbing too much liquid. Add cooked pasta and heat just before serving.
- → What’s a good substitute for heavy cream?
You can use half-and-half, whole milk, or a non-dairy alternative like coconut cream for similar creaminess.
- → Can I freeze this soup?
Freezing is possible, but leave out the pasta and cream before freezing as they may not reheat well. Add these ingredients after thawing and reheating.
- → What type of pasta works best for this soup?
Small pasta shapes like ditalini, elbow macaroni, or orzo are ideal for this soup as they complement the small meatballs and broth without overpowering the dish.
- → Can I use ground chicken or turkey for the meatballs?
Yes, ground chicken or turkey can be used as a leaner alternative to beef or pork. Adjust the seasonings slightly to complement the flavor.
- → What can I use as a garnish for extra flavor?
Top the soup with grated Parmesan, fresh parsley, chopped basil, or a pinch of crushed red pepper flakes for added flavor and presentation.