There are some meals that feel less like food and more like a warm, comforting hug in a bowl. This Easy Creamy Italian Meatball Soup is exactly that. It’s the recipe I turn to on a chilly evening when the day has been long and all I crave is something hearty, soulful, and deeply satisfying. It masterfully combines the classic, beloved flavors of Italian-American cooking—juicy, herb-infused meatballs and a rich, savory tomato base—with the luxurious, velvety texture of a cream soup. The first time I made this, my family was silent for the first few minutes of eating, a rare and telling sign of pure culinary bliss. The tender meatballs, simmered to perfection, practically melt in your mouth, while the creamy tomato broth, studded with tender vegetables and wilted spinach, is so good you’ll want to lick the bowl clean. It’s a one-pot wonder that feels gourmet and special but is surprisingly simple to whip up on a weeknight. This isn’t just a recipe; it’s an experience, a bowl of pure comfort that will have everyone asking for seconds. Get ready to add a new, undisputed champion to your family’s list of favorite dinners.
Ingredients
- For the Italian Meatballs:
- 1 lb lean ground beef (90/10 recommended) or ground chicken
- 1/2 cup Panko breadcrumbs
- 1/4 cup freshly grated Parmesan cheese
- 1 large egg, lightly beaten
- 2 cloves garlic, finely minced
- 1 tablespoon fresh parsley, finely chopped
- 1 teaspoon dried oregano
- 1/2 teaspoon dried basil
- 1/2 teaspoon salt
- 1/4 teaspoon black pepper
- For the Creamy Soup:
- 2 tablespoons olive oil
- 1 large yellow onion, finely diced
- 2 medium carrots, peeled and diced
- 2 celery stalks, diced
- 4 cloves garlic, minced
- 1 (28-ounce) can crushed tomatoes
- 4 cups low-sodium chicken or vegetable broth
- 1 teaspoon dried oregano
- 1 teaspoon dried basil
- 1/2 teaspoon red pepper flakes (optional, adjust to taste)
- 1 cup heavy cream, at room temperature
- 1/2 cup freshly grated Parmesan cheese
- 3 cups fresh baby spinach
- Salt and freshly ground black pepper to taste
- Fresh basil or parsley for garnish
Instructions
- Prepare the Meatballs: In a large mixing bowl, combine the ground beef (or chicken), Panko breadcrumbs, 1/4 cup grated Parmesan cheese, beaten egg, 2 minced garlic cloves, chopped parsley, 1 teaspoon dried oregano, 1/2 teaspoon dried basil, salt, and pepper. Use your hands to gently mix the ingredients until just combined. Be careful not to overwork the mixture, as this can lead to tough meatballs. Roll the mixture into 1-inch meatballs; you should get about 20-24. A small cookie scoop can help make them uniform in size.
- Sear the Meatballs: Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat. Once the oil is shimmering, carefully place the meatballs in the pot in a single layer, ensuring not to overcrowd it (work in batches if necessary). Sear the meatballs for about 2-3 minutes per side, until they are nicely browned all over. This step is crucial for developing a deep, savory flavor. The meatballs do not need to be cooked through at this stage. Once browned, use a slotted spoon to transfer the meatballs to a plate and set them aside.
- Sauté the Aromatics: Reduce the heat to medium. In the same pot, add the diced onion, carrots, and celery (this trio is known as a mirepoix). Sauté for 6-8 minutes, stirring occasionally, until the vegetables have softened and the onion is translucent. If the bottom of the pot has browned bits from the meatballs, scrape them up as the vegetables release their moisture; this is pure flavor!
- Build the Soup Base: Add the 4 minced garlic cloves to the pot and cook for another minute until fragrant, stirring constantly to prevent burning. Pour in the can of crushed tomatoes, the 4 cups of broth, 1 teaspoon of dried oregano, 1 teaspoon of dried basil, and the optional red pepper flakes. Stir everything together to combine, making sure to scrape up any remaining browned bits from the bottom of the pot.
- Simmer and Cook: Bring the soup to a gentle simmer. Carefully return the seared meatballs to the pot. Reduce the heat to low, cover the pot, and let it simmer for 15-20 minutes. This allows the meatballs to cook through completely and for all the delicious Italian flavors to meld together beautifully.
- Add the Creaminess: Turn the heat down to the lowest setting. It’s important that the soup is not boiling when you add the dairy. Slowly pour in the room-temperature heavy cream while stirring gently. Adding cold cream to a hot soup can cause it to curdle, so allowing it to come to room temperature first is a key step. Next, stir in the 1/2 cup of grated Parmesan cheese until it has completely melted into the soup, creating a velvety, rich texture.
- Wilt the Spinach and Final Seasoning: Add the fresh baby spinach to the pot, a handful at a time. Stir gently until the spinach has wilted into the soup, which should only take a minute or two. Taste the soup and season generously with salt and freshly ground black pepper as needed. The amount of salt will depend on the saltiness of your broth and Parmesan.
- Serve and Garnish: Ladle the hot, creamy soup into bowls. Garnish with a sprinkle of extra Parmesan cheese and some fresh, chopped basil or parsley. Serve immediately and enjoy the ultimate comfort food experience.
Nutrition Facts
This recipe offers a balanced and hearty nutritional profile, making it a satisfying all-in-one meal. It’s rich in protein from the meatballs and packed with vitamins from the tomatoes, carrots, and spinach. While it is a creamy and indulgent soup, using lean ground meat and controlling the amount of cheese helps maintain a reasonable balance. The following estimates are based on the recipe yielding 6 generous servings.
- Servings: 6
- Calories per serving: Approximately 580 kcal
- Protein: 32g
- Fat: 42g
- Carbohydrates: 18g
- Fiber: 4g
- Sodium: 950mg (can be reduced by using no-salt-added tomatoes and broth)
Preparation Time
Quick to whip up, this recipe fits easily into a busy weeknight schedule. The process is streamlined, with most of the cooking happening in a single pot, which also means less cleanup. The active preparation is minimal, and once the soup is simmering, it requires very little attention.
- Prep time: 20 minutes (dicing vegetables, mixing and rolling meatballs)
- Cook time: 40 minutes (searing, sautéing, and simmering)
- Total time: 60 minutes
How to Serve
This Creamy Italian Meatball Soup is a complete meal on its own, but pairing it with the right accompaniments can elevate it to a truly memorable feast. Here are some of our favorite ways to serve it:
- Crusty Bread: A non-negotiable for many! Serve with warm, crusty Italian bread, garlic bread, or focaccia for dipping into the rich, creamy broth.
- Side Salad: A simple green salad with a light vinaigrette provides a fresh, crisp contrast to the richness of the soup. An Arugula salad with lemon dressing works particularly well.
- Extra Toppings: Set out small bowls of extra grated Parmesan cheese, fresh chopped basil or parsley, and red pepper flakes so everyone can customize their own bowl.
- A Dollop of Ricotta: For an extra layer of creaminess and flavor, add a small spoonful of whole-milk ricotta cheese on top of each serving just before eating.
- Over Grains or Pasta: While not traditional for this soup, you could serve it over a small bed of cooked orzo, ditalini pasta, or even fluffy quinoa to make it even more substantial.
Additional Tips
- For the Tenderest Meatballs: The secret to tender, juicy meatballs is twofold: use Panko breadcrumbs, which are lighter than traditional breadcrumbs, and avoid overmixing the meat mixture. Mix with your hands only until the ingredients are just combined.
- Make-Ahead and Freezing Instructions: This soup is fantastic for meal prep. You can store it in an airtight container in the refrigerator for up to 4 days. It also freezes beautifully. For best results, let the soup cool completely and freeze it *before* adding the heavy cream and spinach. When you’re ready to serve, thaw it, reheat it gently on the stove, and then stir in the cream and spinach.
- Spice It Up: If you enjoy a bit of heat, don’t be shy with the red pepper flakes. You can also add a pinch to the meatball mixture itself for a spicy kick from within. Sautéing a bit of diced spicy Italian chicken sausage along with the mirepoix is another great way to add heat and flavor.
- Vegetable Variations: Feel free to add other vegetables to boost the nutritional content. Diced zucchini, mushrooms, or chopped red bell peppers can be sautéed along with the mirepoix. You can also substitute kale for the spinach, but be sure to add it a few minutes earlier as it takes longer to soften.
- Uniform Meatballs Made Easy: For perfectly uniform meatballs that cook evenly, use a small cookie or ice cream scoop. This not only ensures consistency in size but also speeds up the rolling process significantly.
Budgeting the Recipe
Creating a gourmet-tasting meal doesn’t have to come with a gourmet price tag. This Creamy Italian Meatball Soup can be a very budget-friendly dish with a few smart strategies. The largest cost is typically the ground meat. Keep an eye out for sales on lean ground beef or chicken at your local grocery store and buy it in bulk to freeze for later. When it’s not on sale, ground chicken or turkey is often a more economical choice than ground beef.
For the other ingredients, embrace store brands. Store-brand canned crushed tomatoes, broth, and Panko breadcrumbs are often identical in quality to their name-brand counterparts but at a fraction of the cost. You can save even more on broth by using bouillon cubes or powder mixed with water. When it comes to herbs, dried herbs are significantly cheaper and more shelf-stable than fresh, and this recipe is designed to work perfectly with them. Finally, use your vegetables wisely. If you have leftover carrots or celery from another recipe, this is the perfect place to use them up before they go bad, minimizing food waste and saving you money.
Frequently Asked Questions
Q: Can I make this soup dairy-free?
A: Absolutely! To make a dairy-free version, substitute the heavy cream with a can of full-fat coconut cream or a high-quality, unsweetened cashew cream. For the Parmesan cheese, you can use a store-bought vegan Parmesan alternative or simply add 2-3 tablespoons of nutritional yeast to impart a cheesy, savory flavor.
Q: Can I use pre-made frozen meatballs?
A: Yes, you can use your favorite brand of frozen, cooked meatballs to save time. While you will lose some of the deep flavor that comes from searing fresh meatballs in the pot, it’s a great shortcut for a busy night. Simply add the frozen meatballs to the soup during the simmering stage (step 5) and allow them to cook for about 20-25 minutes, or until heated through.
Q: How do I properly store and reheat leftovers?
A: Store any leftover soup in an airtight container in the refrigerator for up to 4 days. To reheat, gently warm it in a saucepan over medium-low heat, stirring occasionally until hot. Avoid boiling the soup, as high heat can cause the cream to separate. You can also reheat individual portions in the microwave.
Q: I’d like to add pasta. What’s the best way to do that?
A: If you want to add pasta like ditalini or small shells, it is best to cook it separately according to package directions. Add the cooked pasta directly to individual serving bowls before ladling the hot soup over top. Avoid cooking the pasta directly in the soup pot, as it will absorb too much of the broth and become mushy in the leftovers.
Q: My soup isn’t as thick and creamy as I’d like. How can I fix it?
A: There are a couple of easy ways to thicken the soup. First, you can simply let it simmer, uncovered, for an additional 10-15 minutes to allow some of the liquid to evaporate and concentrate the flavors. For a quicker method, create a cornstarch slurry by mixing 1 tablespoon of cornstarch with 2 tablespoons of cold water until smooth. Slowly whisk the slurry into the simmering soup and cook for another 1-2 minutes until it has thickened.
PrintEasy Creamy Italian Meatball Soup
- Total Time: 60 minutes
- Yield: 6 servings
Description
This recipe offers a balanced and hearty nutritional profile, making it a satisfying all-in-one meal. It’s rich in protein from the meatballs and packed with vitamins from the tomatoes, carrots, and spinach. While it is a creamy and indulgent soup, using lean ground meat and controlling the amount of cheese helps maintain a reasonable balance. The following estimates are based on the recipe yielding 6 generous servings. Quick to whip up, this recipe fits easily into a busy weeknight schedule. The process is streamlined, with most of the cooking happening in a single pot, which also means less cleanup. The active preparation is minimal, and once the soup is simmering, it requires very little attention.
Ingredients
For the Italian Meatballs:
Lean ground beef (90/10 recommended) or ground chicken: 1 lb
Panko breadcrumbs: 1/2 cup
Freshly grated Parmesan cheese: 1/4 cup
Large egg: 1, lightly beaten
Garlic: 2 cloves, finely minced
Fresh parsley: 1 tablespoon, finely chopped
Dried oregano: 1 teaspoon
Dried basil: 1/2 teaspoon
Salt: 1/2 teaspoon
Black pepper: 1/4 teaspoon
For the Creamy Soup:
Olive oil: 2 tablespoons
Large yellow onion: 1, finely diced
Medium carrots: 2, peeled and diced
Celery stalks: 2, diced
Garlic: 4 cloves, minced
Crushed tomatoes: 1 (28-ounce) can
Low-sodium chicken or vegetable broth: 4 cups
Dried oregano: 1 teaspoon
Dried basil: 1 teaspoon
Red pepper flakes: 1/2 teaspoon (optional, adjust to taste)
Heavy cream: 1 cup, at room temperature
Freshly grated Parmesan cheese: 1/2 cup
Fresh baby spinach: 3 cups
Salt and freshly ground black pepper to taste
Fresh basil or parsley for garnish
Instructions
1. Prepare the Meatballs: In a large mixing bowl, combine the ground beef (or chicken), Panko breadcrumbs, 1/4 cup grated Parmesan cheese, beaten egg, 2 minced garlic cloves, chopped parsley, 1 teaspoon dried oregano, 1/2 teaspoon dried basil, salt, and pepper. Use your hands to gently mix the ingredients until just combined. Roll the mixture into 1-inch meatballs; you should get about 20-24. A small cookie scoop can help make them uniform in size.
2. Sear the Meatballs: Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat. Once the oil is shimmering, carefully place the meatballs in the pot in a single layer. Sear the meatballs for about 2-3 minutes per side, until they are nicely browned all over. This step is crucial for developing a deep, savory flavor. The meatballs do not need to be cooked through at this stage. Once browned, use a slotted spoon to transfer the meatballs to a plate and set them aside.
3. Sauté the Aromatics: Reduce the heat to medium. In the same pot, add the diced onion, carrots, and celery (this trio is known as a mirepoix). Sauté for 6-8 minutes, stirring occasionally, until the vegetables have softened and the onion is translucent. If the bottom of the pot has browned bits from the meatballs, scrape them up as the vegetables release their moisture; this is pure flavor!
4. Build the Soup Base: Add the 4 minced garlic cloves to the pot and cook for another minute until fragrant, stirring constantly to prevent burning. Pour in the can of crushed tomatoes, the 4 cups of broth, 1 teaspoon of dried oregano, 1 teaspoon of dried basil, and the optional red pepper flakes. Stir everything together to combine, making sure to scrape up any remaining browned bits from the bottom of the pot.
5. Simmer and Cook: Bring the soup to a gentle simmer. Carefully return the seared meatballs to the pot. Reduce the heat to low, cover the pot, and let it simmer for 15-20 minutes. This allows the meatballs to cook through completely and for all the delicious Italian flavors to meld together beautifully.
6. Add the Creaminess: Turn the heat down to the lowest setting. It’s important that the soup is not boiling when you add the dairy. Slowly pour in the room-temperature heavy cream while stirring gently. Adding cold cream to a hot soup can cause it to curdle, so allowing it to come to room temperature first is a key step. Next, stir in the 1/2 cup of grated Parmesan cheese until it has completely melted into the soup, creating a velvety, rich texture.
7. Wilt the Spinach and Final Seasoning: Add the fresh baby spinach to the pot, a handful at a time. Stir gently until the spinach has wilted into the soup, which should only take a minute or two. Taste the soup and season generously with salt and freshly ground black pepper as needed. The amount of salt will depend on the saltiness of your broth and Parmesan.
8. Serve and Garnish: Ladle the hot, creamy soup into bowls. Garnish with a sprinkle of extra Parmesan cheese and some fresh, chopped basil or parsley. Serve immediately and enjoy the ultimate comfort food experience.
- Prep Time: 20 minutes (dicing vegetables, mixing and rolling meatballs)
- Cook Time: 40 minutes (searing, sautéing, and simmering)
- Category: Main Dish, Soup, Italian, Comfort Food
- Method: Searing, Simmering
- Cuisine: Italian-American
Nutrition
- Serving Size: 1 serving
- Calories: Approximately 580 kcal
- Sugar: N/A
- Sodium: 950mg (can be reduced by using no-salt-added tomatoes and broth)
- Fat: 42g
- Saturated Fat: N/A
- Unsaturated Fat: N/A
- Trans Fat: N/A
- Carbohydrates: 18g
- Fiber: 4g
- Protein: 32g
- Cholesterol: N/A



