I am so excited to share with you my absolute favorite cozy meal: this Meatball Soup with Rotini, Spinach, and Parmesan Recipe. It’s a perfect harmony of tender meatballs, tender pasta, vibrant spinach, and creamy Parmesan goodness all swirled into a savory tomato broth that feels like a warm hug in a bowl. Whenever I make this, it just fills the kitchen with comforting aromas and my whole family gathers around the table eager to dig in. I promise, once you try it, it’ll be a regular in your meal rotation too!
Why You’ll Love This Meatball Soup with Rotini, Spinach, and Parmesan Recipe
What makes this soup so special to me is the incredible flavor balance. The savory meatballs provide a hearty bite, while the rotini pasta absorbs the rich tomato and chicken broth, mingling with the fresh garlic and Italian seasoning to create layers of comforting taste. I especially love how the spinach adds that fresh, vibrant pop of green and nutrition without overpowering the other flavors. It tastes both indulgent and wholesome at the same time—a rare combo that makes it endlessly satisfying.
In addition to how delicious it is, this Meatball Soup with Rotini, Spinach, and Parmesan Recipe is so easy to make. I usually use either my homemade meatballs or store-bought ones if I’m short on time, and the soup comes together quickly on the stove. It’s perfect for weeknight dinners when you want something warm and filling without fuss. Plus, it’s a crowd-pleaser for family dinners and casual get-togethers. This soup stands out because it’s not just good, it’s comforting, colorful, and versatile all at once.
Ingredients You’ll Need
The ingredients for this recipe are wonderfully straightforward yet essential to achieving that rich and comforting flavor and texture. Each one plays a key role—whether it’s building the broth’s depth or adding freshness and creaminess.
- Meatballs: I recommend homemade or thawed frozen meatballs for that juicy, flavorful protein base.
- Olive oil: This adds a lovely richness when cooking the onions and garlic.
- Yellow onion: Diced, it caramelizes to bring natural sweetness and depth.
- Garlic: Minced fresh garlic infuses the soup with robust flavor.
- Italian seasoning: A blend of herbs that gives the soup an authentic Italian flair.
- Tomato paste: Concentrated tomato flavor that intensifies the broth.
- Chicken broth: The savory liquid base that ties all the flavors together.
- Crushed tomatoes: Adds body, color, and tangy brightness to the soup.
- Rotini pasta: The spiral shape holds onto the broth perfectly, giving great texture.
- Baby spinach: Adds a fresh, leafy green element and nutrients.
- Heavy cream: Stirred in at the end to create a silky, luscious finish.
- Kosher salt and fresh cracked pepper: To season perfectly at every step.
- Parmesan and parsley for garnish: For that classic finishing touch and a burst of freshness.
Directions
Step 1: Start by making your meatballs if using homemade, or thaw and cook your frozen meatballs according to package directions so they are ready when the soup comes together.
Step 2: Heat 1 tablespoon of olive oil in a large pot over medium heat. Add the diced yellow onion with a few generous pinches of kosher salt and fresh cracked pepper. Cook, stirring occasionally, for 6 to 8 minutes until the onions begin to brown and caramelize—this step builds amazing flavor!
Step 3: Add the minced garlic, Italian seasoning, tomato paste, and another pinch of salt and pepper. Stir frequently and cook everything for about 1 minute until fragrant and the tomato paste darkens slightly.
Step 4: Pour in a few splashes of chicken broth and use a wooden spoon to scrape all those wonderful browned bits off the bottom of the pot. This deglazing will deepen your broth’s flavor.
Step 5: Add the rest of the chicken broth, crushed tomatoes, uncooked rotini pasta, and the cooked meatballs. Season again with salt and pepper, then bring everything to a simmer over medium-high heat.
Step 6: Once simmering, reduce the heat to low and cover the pot. Let it gently simmer for 12 to 15 minutes or until the pasta is perfectly al dente, tender but still with a slight bite.
Step 7: Stir in the baby spinach and heavy cream until the spinach wilts and the soup is warmed through, creating a creamy, vibrant finish.
Step 8: Taste the soup and adjust seasoning with salt and pepper as needed. Serve it hot, garnished generously with shaved Parmesan and freshly chopped parsley for a beautiful, tasty finish.
Servings and Timing
This Meatball Soup with Rotini, Spinach, and Parmesan Recipe makes about 8 hearty servings, which is perfect for feeding a family or having leftovers. The prep time typically takes around 10 minutes if you have meatballs ready, while the cook time is about 25 minutes, totaling roughly 35 minutes from start to serving. There is no additional resting time needed, letting you enjoy this comforting soup fresh and hot straight from the pot.
How to Serve This Meatball Soup with Rotini, Spinach, and Parmesan Recipe
I love serving this soup piping hot with some crusty garlic bread or a fresh green salad on the side to balance the richness of the soup. A loaf of crusty Italian bread or a simple Caesar salad are excellent options because they complement the deep tomato and cheesy flavors without overshadowing them. For a heartier meal, you can pair it with roasted vegetables or a tangy antipasto platter.
When it comes to presentation, I’m all about simple elegance. I ladle the soup into wide, shallow bowls, ensuring that every serving gets a bit of meatball, pasta, spinach, and plenty of the creamy broth. Then I top each bowl generously with shaved Parmesan and a sprinkle of fresh parsley. This little touch adds both color and a delightful cheesy sharpness that really brings everything together.
As for drinks, I enjoy pairing this soup with a chilled glass of light red wine like a Pinot Noir or even a crisp sparkling water with lemon for an easygoing meal. The soup’s warm, savory character makes it great for casual weeknight dinners but it also shines as a charming dish for holiday lunches or cozy weekend gatherings. I always recommend serving it hot so you get the full comforting effect with every spoonful.
Variations
If you want to customize this Meatball Soup with Rotini, Spinach, and Parmesan Recipe, there are so many fun ways to make it your own. For instance, you can swap out the rotini pasta for gluten-free pasta or even small shells if that’s what you have on hand. To boost the veggie factor, I sometimes add chopped zucchini or carrots along with the onion and garlic for extra color and sweetness.
For dietary modifications, this recipe adapts well by using vegan meatballs and substituting the heavy cream for coconut cream or a cashew cream blend. Using vegetable broth instead of chicken broth also makes it fully vegetarian. The key is to keep the seasoning bright and balanced since the meatiness shifts depending on what you choose.
If you want to try a different cooking method, making the soup in a slow cooker is a dream. Simply brown your onions and garlic first, then add everything (except the cream and spinach) to the slow cooker and cook on low for 4 to 6 hours. Stir in the cream and spinach just before serving for the same velvety finish. I’ve found this method makes the flavors even more melded and rich.
Storage and Reheating
Storing Leftovers
I always store leftover Meatball Soup with Rotini, Spinach, and Parmesan Recipe in airtight containers in the refrigerator. Glass containers with tight-fitting lids work best because they keep the soup fresh without absorbing odors. The soup will stay good for up to 3 to 4 days, so it’s perfect to enjoy for lunch or dinner the next day.
Freezing
Yes, you can freeze this soup, but I recommend leaving out the pasta if you plan to freeze it long-term as the pasta can get mushy. Freeze the soup portion (meatballs, broth, tomatoes, and spinach) in freezer-safe containers or heavy-duty freezer bags for up to 3 months. When ready, thaw overnight in the fridge and add fresh cooked pasta or heat with a bit of cream stirred in to refresh the texture.
Reheating
To reheat, I like warming the soup gently on the stove over low to medium heat, stirring occasionally to keep the cream from separating. If the soup is too thick, adding a splash of broth or water helps loosen it up. Avoid microwaving for long periods as the cream can curdle and the pasta can become overly soft. Stir in a little fresh Parmesan on top for a nice flavor boost after reheating.
FAQs
Can I use frozen meatballs for this soup?
Absolutely! Frozen meatballs are a great time-saver. Just be sure to thaw them overnight in the fridge or cook them according to package directions before adding to the soup, so they heat evenly and absorb the broth flavors beautifully.
What can I substitute for heavy cream?
If you want a lighter option, you can use half-and-half or whole milk, but the soup won’t be quite as rich and creamy. For a dairy-free version, coconut cream or cashew cream offers a wonderful creamy texture and mild flavor that complements the tomato base nicely.
Can I make this soup ahead of time?
Yes, the flavors actually improve if you make it a day ahead and refrigerate it. Just be sure to add any cream and spinach fresh at the time of reheating to keep the spinach vibrant and the cream from breaking down.
Is this soup spicy?
Not at all! This recipe is packed with warm Italian herbs and savory meatballs but is very mild and family-friendly. If you like a little heat, adding a pinch of crushed red pepper flakes during cooking is a great way to customize the spice level.
What other garnishes work well besides Parmesan and parsley?
I love experimenting with garnishes like a drizzle of good-quality olive oil, a sprinkle of red pepper flakes, or even some toasted pine nuts for crunch. Fresh basil leaves or a few dollops of ricotta cheese can also add a lovely fresh and creamy dimension.
Conclusion
I truly hope you give this Meatball Soup with Rotini, Spinach, and Parmesan Recipe a try soon. It’s one of those meals that feels like a special treat while being so approachable and homey. Whether you’re feeding a crowd or craving a comforting solo supper, this soup will welcome you with warmth and flavor every time. Happy cooking and savoring!
PrintMeatball Soup with Rotini, Spinach, and Parmesan Recipe
A hearty and comforting Italian Meatball Soup featuring tender homemade or store-bought meatballs simmered in a rich tomato and chicken broth base with pasta, spinach, and a creamy finish. Perfect for weeknight dinners, this flavorful soup combines classic Italian seasonings with wholesome ingredients for a satisfying meal that serves 8.
- Prep Time: 10 minutes
- Cook Time: 25 minutes
- Total Time: 35 minutes
- Yield: 8 servings
- Category: Soup
- Method: Stovetop
- Cuisine: Italian
Ingredients
Meatballs
- 1 recipe homemade meatballs or 18–20 oz. bag frozen meatballs, thawed
Soup Base
- 1 tablespoon olive oil
- 1 yellow onion, diced
- 6 cloves garlic, minced
- 1 tablespoon Italian seasoning
- 2 tablespoons tomato paste
- 32 oz. chicken broth
- 28 oz. can crushed tomatoes
- 8 oz. (about 2 1/2 cups) uncooked rotini pasta
- 2 cups baby spinach
- 1/2 cup heavy cream
- Kosher salt, to taste
- Fresh cracked pepper, to taste
Garnish
- Shaved Parmesan cheese
- Freshly chopped parsley
Instructions
- Prepare Meatballs: Make your choice of meatballs—either homemade Italian meatballs, air fryer meatballs, or thawed (and optionally cooked) frozen meatballs following package instructions.
- Sauté Onions: Heat olive oil in a large pot over medium heat. Add diced onion along with salt and pepper. Cook for 6-8 minutes stirring occasionally until onions soften and start to caramelize, enhancing their sweetness.
- Add Garlic and Seasoning: Stir in minced garlic, Italian seasoning, tomato paste, and additional salt and pepper. Cook for about 1 minute while stirring frequently to toast the garlic and prepare the flavor base.
- Deglaze Pot: Add a few splashes of chicken broth to the pot, scraping the bottom with a spoon to loosen any browned bits for extra flavor.
- Add Remaining Ingredients: Pour in the rest of the chicken broth, crushed tomatoes, uncooked rotini pasta, and the cooked meatballs. Season again with salt and pepper.
- Simmer Soup: Bring the mixture to a simmer over medium-high heat. Then reduce heat to low, cover the pot, and let it simmer gently for 12-15 minutes until the pasta is cooked al dente.
- Finish Soup: Stir in baby spinach and heavy cream. Cook just until the spinach wilts and the soup is heated through, blending the creamy texture with fresh greens.
- Season & Garnish: Taste and adjust seasoning with salt and pepper as needed. Serve soup garnished with shaved Parmesan and freshly chopped parsley for a bright, flavorful finish.
- Enjoy & Review: If you loved this recipe, leave a 5-star rating and review to share your experience!
Notes
- You can use frozen meatballs for convenience—just make sure to thaw or cook them per package directions before adding to the soup.
- Adjust the amount of broth if you prefer a thinner or heartier soup consistency.
- For a dairy-free version, substitute heavy cream with coconut cream or omit entirely.
- Use freshly grated Parmesan for the best flavor and texture in garnish.
- Leftovers store well in the refrigerator for up to 3 days and can be reheated gently on the stovetop.
