I absolutely love cozying up with a big bowl of this Hearty Meatball Soup with Spinach and Ricotta Recipe, especially on chilly evenings when you want something comforting but still packed with flavor. The combination of tender, juicy meatballs swimming in a rich, tomato-based broth with fresh spinach and a touch of creamy ricotta just hits all the right notes. It’s the kind of meal that warms you up from the inside out and leaves you feeling totally satisfied without being too heavy.

When I first tried this recipe, I was blown away by how the panade—a mix of egg, cream, and breadcrumbs—makes the meatballs incredibly tender. Plus, the spinach adds a fresh pop without overpowering that classic Italian flavor. If you’re looking for a one-pot meal that’s fuss-free to make but tastes like it took hours, this Hearty Meatball Soup with Spinach and Ricotta Recipe is a winner you’ll revisit again and again.

❤️

Why You’ll Love This Recipe

  • Tender Meatballs: The panade mix keeps meatballs juicy and tender every time.
  • Rich, Flavorful Broth: A blend of chicken and beef broth with tomato and seasonings creates a comforting depth.
  • Fresh Spinach & Ricotta: They add vibrant color and creamy goodness making the soup hearty yet balanced.
  • Simple One-Pot Meal: Easy cleanup and perfect for busy weeknights or meal prep.

Ingredients You’ll Need

The ingredients in this Hearty Meatball Soup with Spinach and Ricotta Recipe come together beautifully, combining familiar pantry staples with fresh produce to give you a nourishing meal. I always suggest using freshly grated Parmesan for more flavor, and lean meats for a good balance between taste and texture.

  • Olive oil: Essential for browning the meatballs and adding richness.
  • Egg: Acts as a binder to keep your meatballs together and moist.
  • Heavy cream: Makes the panade and soup silky; you can substitute with milk for a lighter option.
  • Italian breadcrumbs: A must in the panade for texture and moisture.
  • Parmesan cheese: Finely grated for the meatballs and topping, it adds umami depth.
  • Garlic: Both diced for flavor in meatballs and minced for the soup—the aroma is irresistible.
  • Salt and pepper: Basic seasonings that bring everything to life.
  • Ground beef and ground pork: A blend that balances flavor and fat content perfectly.
  • Butter: Used to sauté the veggies, adding a subtle richness.
  • Yellow onion: Slowly cooked for sweetness that mellows the tomato acidity.
  • Bell peppers: Adds color and a gentle sweetness; red and green both work well.
  • Tomato paste: Concentrates the tomato flavor in the broth.
  • Chicken broth and beef broth: The combo builds a complex, savory base.
  • Canned diced tomatoes: Blended to your liking to add body and texture to the soup.
  • Hot sauce: Optional but my secret weapon for subtle heat and flavor complexity.
  • Worcestershire sauce: A flavor enhancer that’s barely noticeable but makes a big impact.
  • Spinach: Fresh and added at the end for a pop of green and nutrition.
  • Dry pasta: I love cavatappi for its twists that hold the broth nicely, but any small pasta works.
  • Ricotta cheese: For serving, creamy and cooling against the rich soup.
  • Red pepper flakes: Optional to sprinkle on top if you like a little kick.
Note: You’ll find the complete list of ingredients, along with their exact measurements, in the printable recipe card at the bottom of this post.

Variations

One of the things I love about the Hearty Meatball Soup with Spinach and Ricotta Recipe is how easy it is to make your own with simple swaps or additions. Here are a few ways I’ve played around with it to fit different tastes and diets.

  • Meat Variations: I’ve tried swapping pork for turkey when I want something lighter, and it still turns out tender and flavorful.
  • Dairy-Free Option: Use coconut milk instead of heavy cream and leave out the ricotta for a dairy-free version that’s still creamy.
  • Veggie Additions: Adding mushrooms or zucchini makes it heartier if you want extra veggies in there.
  • No-Pasta Version: If you’re avoiding gluten or carbs, just omit the pasta and serve with crusty bread instead.

How to Make Hearty Meatball Soup with Spinach and Ricotta Recipe

Step 1: Prep the Meatball Mixture

Start by whisking the egg and heavy cream together in a large bowl. This panade is your secret to juicy meatballs! Next, stir in the Italian breadcrumbs and let the mixture sit for a minute so the breadcrumbs absorb the liquid, forming a paste. Add finely grated Parmesan, diced garlic, salt, and pepper, then gently fold in the ground beef and pork—be careful not to overmix, or the meatballs will get tough. Roll the mixture into 1-inch balls and set them aside.

Step 2: Brown the Meatballs

Heat olive oil in a large soup pot or Dutch oven over medium-high heat. Brown the meatballs in batches for about 2-3 minutes each side, adding small splashes of olive oil as you go to keep the pan well lubricated. The goal here is just to get a golden crust; the meatballs will finish cooking in the soup, so you don’t need to cook them through at this stage. Once browned, transfer the meatballs to a plate and set aside.

Step 3: Build the Soup Base

Now, blend the canned diced tomatoes in a bowl using an immersion blender until you reach your preferred texture (chunky or smoother). Melt butter in the pot over medium-low heat and gently cook the diced yellow onions for about 10 minutes, stirring occasionally. This slow cooking brings out their natural sweetness to balance the tomato’s acidity. Add the diced bell peppers and cook for another 4 minutes, then stir in the minced garlic, tomato paste, hot sauce, Worcestershire sauce, and dried herbs. Let this cook for just a minute to release those flavors.

Step 4: Simmer the Soup

Add the chicken and beef broths along with the blended tomatoes to the pot. Bring everything to a boil, then reduce to a simmer uncovered for about 15 minutes to let the flavors marry and the broth slightly thicken. If you want a thicker soup, let it simmer longer while stirring occasionally to prevent sticking.

Step 5: Finish with Meatballs, Pasta, and Spinach

Gently bring the soup back to a boil. Add in the browned meatballs and dry pasta, then cook until the pasta is tender—this might take a bit longer than package directions because of the gentle boil. Taste a noodle toward the end to check. Once pasta is cooked, reduce the heat to low and stir in the heavy cream. Finally, fold in the fresh spinach and cook for about a minute until just wilted.

Step 6: Serve with Ricotta and Parmesan

Ladle the soup into bowls and generously dollop ricotta cheese on top. I like to warm the ricotta in the microwave for 20 seconds beforehand so it softens and melts slightly into the soup. Sprinkle with extra Parmesan and red pepper flakes if you like a bit of heat. This finishing touch really elevates the flavors and makes it feel extra special.

👨‍🍳

Pro Tips for Making Hearty Meatball Soup with Spinach and Ricotta Recipe

  • Don’t Overwork the Meat: Mixing the meat too much makes meatballs dense, so fold gently for tender results.
  • Brown Meatballs in Batches: Avoid overcrowding the pan to get a nice sear on each meatball.
  • Caramelize Onions Slowly: Taking extra time releases sweetness that balances the tomato’s acidity beautifully.
  • Add Pasta Last or Separate: To avoid soggy noodles in leftovers, consider cooking pasta separately and adding during serving.

How to Serve Hearty Meatball Soup with Spinach and Ricotta Recipe

Hearty Meatball Soup with Spinach and Ricotta, Italian meatball soup, comforting tomato-based soup, easy one-pot Italian soup, hearty ground meat and spinach soup A white bowl is filled with a thick orange-red soup containing several browned meatballs that sit on top, slightly irregular in shape with a textured surface. The soup also has small curved pasta pieces in pale yellow, bright green leafy vegetables, and small chunks of red tomatoes scattered around. In the center, there is a dollop of smooth, white creamy cheese melting slightly into the soup. A shiny silver spoon rests inside the bowl, partially submerged in the soup. The bowl sits on a white marbled surface.

Garnishes

I love topping this soup with creamy ricotta and a generous sprinkle of freshly grated Parmesan. Red pepper flakes add that perfect hint of heat and a bit of color when served. Sometimes I’ll add a drizzle of good quality olive oil or fresh chopped basil for a fragrant finish that makes the presentation pop and adds a fresh dimension.

Side Dishes

Crisp, buttery garlic bread or a warm baguette pairs perfectly with this soup for soaking up every last drop. A simple side salad with lemon vinaigrette can brighten the meal, especially if you want to keep things light. For something heartier, I sometimes serve roasted root vegetables or a cheesy polenta for a complete feast.

Creative Ways to Present

For special occasions, I like to serve the soup in small, oven-safe crocks topped with an extra dollop of ricotta and a sprinkle of herbs, then broil them just briefly for a bubbly, golden finish. It’s a lovely way to jazz up a simple soup and always impresses guests. You can also offer individual bowls filled with pasta on the bottom and soup on top to keep noodles from getting mushy.

Make Ahead and Storage

Storing Leftovers

I store leftovers in airtight containers in the fridge for up to 3 days. Because the pasta soaks up broth over time, I try to keep the soup and noodles separate if I know I want to reheat later. This helps keep the texture ideal and ensures you get that fresh, comforting experience all over again.

Freezing

This soup freezes really well if you leave out the pasta before freezing. Freeze the meatball soup base in freezer-safe containers or bags, then thaw overnight in the fridge before reheating. I add freshly cooked pasta to my bowl when serving leftovers after freezing—this keeps everything tasting fresh and avoids mush.

Reheating

Reheat gently on the stovetop over medium-low heat, stirring often. If the soup feels too thick, add a splash of broth or water to loosen it up. Avoid microwave reheating without stirring as it can cause uneven heating and toughen the meatballs.

FAQs

  1. Can I use pre-made meatballs for this Hearty Meatball Soup with Spinach and Ricotta Recipe?

    Absolutely! Using frozen or store-bought meatballs is a great shortcut that saves time. Just add them to the soup during the simmering stage and cook until heated through. The soup will still be flavorful and comforting, perfect for busy nights.

  2. What kind of pasta works best in this soup?

    I prefer short, curly pasta like cavatappi because it holds onto the broth and meatballs beautifully. Other good options include small shells, ditalini, or elbow macaroni. Avoid long pasta like spaghetti as it can become mushy in soup.

  3. Can I make this soup dairy-free or vegan?

    To make it dairy-free, substitute heavy cream with full-fat coconut milk and skip the ricotta cheese or use a dairy-free alternative. For a vegan version, use plant-based meatballs, vegetable broth, and dairy-free cream substitutes. Adjust seasonings accordingly for best flavor.

  4. How do I prevent the noodles from getting soggy in leftovers?

    I’ve found the best way is to cook the pasta separately and keep it aside, then add freshly cooked or warmed pasta to individual servings when reheating the soup. This keeps the noodles firm and the soup fresh-tasting.

Final Thoughts

This Hearty Meatball Soup with Spinach and Ricotta Recipe is one of those gems I always fall back on when I want comfort food that doesn’t disappoint. From the juicy, tender meatballs to the creamy broth and fresh pops of spinach and cheese, every spoonful feels like a hug in a bowl. I encourage you to try making it your own too—whether that’s swapping ingredients or serving it up for a crowd. It’s reliably delicious, easy to prepare, and represents everything I love about simple, hearty home cooking. Trust me, once you make it, it’ll become a favorite in your recipe rotation, just like it did in mine.

Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Hearty Meatball Soup with Spinach and Ricotta Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star 4.5 from 117 reviews
  • Author: Megane
  • Prep Time: 20 minutes
  • Cook Time: 50 minutes
  • Total Time: 1 hour 10 minutes
  • Yield: 13 cups of soup (serves approximately 6-8)
  • Category: Soup
  • Method: Stovetop
  • Cuisine: Italian-American

Description

This hearty Meatball Soup combines tender homemade beef and pork meatballs simmered in a flavorful tomato and broth base, enriched with creamy spinach and pasta for a comforting, satisfying meal. Perfect for a cozy dinner, this soup balances savory, creamy, and slightly spicy elements, topped off with ricotta and Parmesan cheeses for extra richness.


Ingredients

Units Scale

Meatballs

  • 1 egg, beaten
  • 1/2 cup heavy cream (can substitute milk)
  • 1/2 cup Italian breadcrumbs
  • 1/4 cup Parmesan cheese, finely grated into a powder
  • 3 cloves garlic, finely diced
  • 1 teaspoon salt
  • 1/2 teaspoon pepper
  • 1/2 lb. ground beef (80% lean)
  • 1/2 lb. ground pork

Soup

  • 1 tablespoon butter
  • 1 yellow onion, diced
  • 1/2 cup bell peppers, diced (red, green, or both)
  • 3 cloves garlic, minced
  • 2 tablespoons tomato paste
  • 3 cups chicken broth
  • 1 1/2 cups beef broth (can substitute chicken broth)
  • 2 (14.5 oz.) cans diced tomatoes, undrained
  • 1 teaspoon hot sauce (optional)
  • 1 teaspoon Worcestershire sauce
  • 1/2 cup heavy cream
  • 2 cups spinach
  • 1 cup dry pasta (cavatappi recommended)

Seasonings

  • 1 teaspoon dried oregano
  • 1 teaspoon dried basil
  • 1 teaspoon dried parsley
  • 1 teaspoon mustard powder
  • 1 pinch red pepper flakes
  • Salt and pepper to taste

For Serving

  • 8 oz. Ricotta Cheese
  • 1/2 cup Parmesan Cheese
  • Red Pepper Flakes

Instructions

  1. Prepare the Meatball Panade: In a large bowl, combine the whisked egg and heavy cream. Add the Italian breadcrumbs and stir for 1-2 minutes until a paste forms, called a “panade,” which keeps meatballs tender and flavorful. Mix in the Parmesan cheese, diced garlic, salt, and pepper.
  2. Form the Meatballs: Gently combine the panade mixture with ground beef and ground pork without overworking the meat. Roll into 1-inch balls and set aside.
  3. Brown the Meatballs: Heat olive oil in a 4.5-quart soup pot or Dutch oven over medium-high heat. Brown the meatballs in batches for 2-3 minutes each side, adding a splash of olive oil as needed and reducing heat slightly to avoid burning. The inside will finish cooking in the soup. Remove and set aside.
  4. Blend the Tomatoes: Place diced tomatoes in a large bowl and use an immersion blender to blend to your preferred texture, leaving some chunks if desired. Alternatively, use a blender. Set aside.
  5. Sauté Vegetables: In the same soup pot, melt butter over medium-low heat. Add diced onions and cook for 10 minutes to release sweetness and reduce acidity. Stir occasionally to prevent burning.
  6. Add Peppers and Seasonings: Add diced bell peppers and cook for 4 minutes. Stir in minced garlic, tomato paste, hot sauce (if using), Worcestershire sauce, dried oregano, basil, parsley, mustard powder, and red pepper flakes. Cook for 1 minute until fragrant.
  7. Add Liquids and Tomatoes: Pour in chicken broth, beef broth, and blended diced tomatoes. Bring the soup to a boil, then reduce to a simmer. Let simmer uncovered for 15 minutes to allow flavors to meld and thicken.
  8. Add Meatballs and Pasta: Stir the soup and bring to a gentle boil. Add the browned meatballs and dry pasta. Cook at gentle boil until the pasta is cooked through, checking package instructions—may take longer due to gentle boiling. Taste test a noodle for doneness.
  9. Finish with Cream and Spinach: Reduce heat to low. Stir in heavy cream until fully incorporated. Add spinach and cook until wilted, about 1 minute.
  10. Serve: Ladle soup into bowls and top each serving with ricotta cheese, grated Parmesan, and red pepper flakes. Optionally warm ricotta in the microwave before adding.

Notes

  • While onions cook to caramelize, measure out seasonings and other soup ingredients.
  • Frozen meatballs can be substituted to save time.
  • Add Parmesan or Romano cheese rind to the soup as it simmers for added flavor.
  • Use 28 oz. crushed tomatoes instead of diced tomatoes if preferred.
  • For leftovers, consider boiling pasta separately and adding to servings to prevent noodles from absorbing too much broth during storage.
  • This recipe yields approximately 45 one-inch meatballs.
  • The hot sauce provides subtle flavor enhancement without noticeable heat; Frank’s Hot Sauce is recommended.
  • This recipe appears on page 25 of the cookbook “Let’s Eat!”

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star