
This meatball soup recipe transforms simple ingredients into a hearty, comforting meal that's perfect for weeknight dinners or weekend gatherings. The tender homemade meatballs and flavorful broth create a restaurant-quality dish that will quickly become a family favorite.
I first made this meatball soup during a particularly cold winter when my family needed something warming but different from our usual stews. The rich tomato broth and tender meatballs were such a hit that it has become our go-to comfort meal whenever anyone is feeling under the weather or just needs some culinary love.
Ingredients
- Soft bread: fresh bread crumbs create lighter meatballs than dried varieties
- Ground beef: choose 80-85% lean for the perfect balance of flavor and texture
- Parmesan cheese: adds saltiness and depth to the meatballs; use freshly grated for best results
- Egg: acts as a binder to hold the meatballs together
- Italian seasoning: a convenient blend that adds classic Mediterranean flavors
- Carrots, celery, and onion: the aromatic vegetable base that builds flavor
- Tomato paste: concentrated flavor that adds richness and depth to the broth
- Garlic: fresh cloves provide aromatic punch
- Chicken broth: use low sodium to control the salt level
- Diced tomatoes: provides texture and acidity to balance the rich broth
- Parmesan rind: a secret ingredient that adds incredible umami to any soup
- Ditalini pasta: small pasta shape that cooks quickly and is perfect for soup
- Spinach: adds color, nutrition, and a mild flavor
- Marinara sauce: adds richness and pulls all the flavors together
Step-by-Step Instructions
- Prepare the Breadcrumbs:
- Process your slice of soft bread until you have fine crumbs. This creates a lighter texture in your meatballs than using store-bought crumbs and helps them stay tender in the soup.
- Mix the Meatballs:
- Combine breadcrumbs with ground beef, parmesan cheese, egg, Italian seasoning, salt, and pepper in a large bowl. Mix gently with your hands until just combined. Overmixing will result in tough meatballs. Allow mixture to rest for 10-20 minutes, which helps the breadcrumbs absorb moisture and results in more tender meatballs.
- Form and Brown the Meatballs:
- Shape the mixture into 1-inch balls, approximately 30-35 meatballs. Heat oil in your Dutch oven or soup pot over medium-high heat and brown the meatballs on two sides, about 2 minutes per side. They should develop a nice crust but don't need to be fully cooked. Remove and set aside.
- Create the Flavor Base:
- In the same pot with the flavorful meatball drippings, add carrots, celery, and onion. Sauté for about 5 minutes until they begin to soften. The vegetables will absorb all the browned bits from the meatballs, adding incredible depth to your soup.
- Build the Broth:
- Add tomato paste, garlic, Italian seasoning, salt, red pepper flakes, and bay leaf, cooking for 1 minute until fragrant. This brief cooking time allows the tomato paste to caramelize slightly and the spices to bloom, releasing maximum flavor.
- Combine and Simmer:
- Pour in chicken broth, diced tomatoes, and add the parmesan rind. Scrape the bottom of the pot to release any browned bits and bring everything to a gentle simmer. Allow to cook for 5 minutes, which begins to marry the flavors.
- Add Pasta and Meatballs:
- Stir in the uncooked pasta and return the meatballs to the pot. Cover and reduce heat to medium, cooking for 10 minutes until the pasta is al dente and the meatballs are cooked through. The pasta will absorb flavors from the broth as it cooks.
- Finish and Serve:
- Stir in the spinach and marinara sauce, allowing the spinach to wilt and the sauce to incorporate fully into the broth. Taste and adjust seasonings as needed, then serve immediately with additional grated parmesan if desired.

My favorite part of this recipe is watching the transformation that happens when you add the parmesan rind to the broth. It's almost magical how this often-discarded item creates such a rich savory base. I started saving rinds in my freezer specifically for this soup after I noticed how much more flavorful it was with this simple addition.
Frequently Asked Questions
- → Can I use frozen meatballs instead of fresh?
Yes, you can use frozen meatballs, but for best results, ensure they are thawed and cooked before adding them to the soup.
- → What type of pasta works best in this soup?
Small pasta shapes like ditalini, orzo, or elbow macaroni work best to complement the meatballs and broth.
- → Can I make this soup ahead of time?
Yes, you can make it ahead of time, but add the pasta and spinach just before serving to maintain their texture.
- → How can I make this soup vegetarian?
Replace the meatballs with vegetarian alternatives and use vegetable broth instead of chicken broth for a vegetarian version.
- → What can I serve with this soup?
This soup pairs well with crusty bread, a side salad, or garlic bread for a complete meal.