Spaghetti and Meatball Soup

Cozy Spaghetti and Meatball Soup with Tender Homemade Meatballs

I make this spaghetti and meatball soup on the first cold evening of every fall, usually when the windows start to fog and the kitchen needs something simmering on the stove. It started as a way to use up half a box of broken spaghetti and a pound of ground beef. It turned into the pot my family asks for by name.

What gets me is the smell. Garlic softens in olive oil, then tomatoes hit the pot and everything turns sweet and a little smoky. Small, tender meatballs bob in a rich red broth, and the spaghetti soaks up all that flavor. It tastes like Sunday dinner, but it comes together on a Tuesday.

Why You’ll Love This

  • It’s a full meal in one pot: protein, pasta, and vegetables, with very little cleanup.
  • The meatballs are small and cook right in the broth, so they stay juicy instead of drying out in an oven.
  • It reheats well and tastes even better the next day, which makes it a solid choice for meal prep.
  • Kids and adults both go for it, because it takes familiar spaghetti and meatballs and turns them into something warm and spoonable.
  • The ingredients are pantry-friendly, so you can often make it without a special grocery run.

The Backstory

My father-in-law has spent thirty years claiming he doesn’t like “soupy dinners.” He says soup is just a first course that got ideas. When he visited last winter, I made this spaghetti and meatball soup anyway, mostly out of stubbornness, and set a bowl in front of him without saying much. He took one spoonful, paused, and asked if there was more of the meatballs. By the end of the night he’d had two bowls, mopped up the last of the broth with a heel of bread, and asked me to write the recipe down. It’s now taped inside his kitchen cabinet.

What Makes It Special

  • Ground beef and pork blend: Beef brings deep, savory flavor, while pork keeps the meatballs soft and buttery.
  • Parmesan cheese: It adds a salty, nutty richness to the meatballs and melts into the broth when you stir in the rind.
  • Fresh garlic and onion: They build the sweet, aromatic base that makes the broth taste slow-cooked.
  • Crushed tomatoes: They give the soup body and a bright, tangy backbone.
  • Italian seasoning and smoked paprika: The herbs bring earthy warmth, and the paprika adds a faint smokiness.
  • Broken spaghetti: Short pieces fit on a spoon and cook evenly in the simmering broth.
  • Baby spinach: It wilts in at the end for a pop of vibrant green and a little freshness.

Making It Happen

Start with the meatballs. In a large bowl, combine the ground beef, ground pork, breadcrumbs, egg, grated Parmesan, minced garlic, parsley, salt, and pepper. Mix with your hands just until everything comes together. Overworking the meat makes it dense, so stop as soon as it looks uniform. Roll the mixture into small balls about the size of a walnut and set them on a plate.

Warm the olive oil in a large Dutch oven or soup pot over medium heat. Add the diced onion, carrot, and celery, and cook for about six minutes, stirring now and then, until the onion turns translucent and the edges begin to turn golden. Stir in the garlic, Italian seasoning, and smoked paprika, and let them sizzle for thirty seconds until the kitchen smells wonderful.

Pour in the crushed tomatoes and the broth. Add the Parmesan rind if you have one, and bring everything to a gentle boil. Lower the heat to a steady simmer, then drop the meatballs in one at a time. Don’t stir for the first few minutes, which lets the outsides set so they hold their shape. Simmer for about fifteen minutes, until the meatballs are cooked through and the broth has deepened to a rich brick red.

Raise the heat slightly, add the broken spaghetti, and cook according to the package time, usually eight to ten minutes, stirring occasionally so the pasta doesn’t stick. When the spaghetti is just tender, fold in the spinach and let it wilt for a minute. Taste, adjust the salt, and remove the Parmesan rind. Ladle into warm bowls and finish with fresh cheese and a crack of black pepper.

You Must Know

  • Break the spaghetti into two-inch pieces before it goes in the pot. It’s much easier to eat with a spoon.
  • Keep the simmer gentle. A hard boil can break the meatballs apart and turn the broth cloudy.
  • Wet your hands slightly when rolling the meatballs so the meat doesn’t stick to your fingers.
  • Salt in layers: season the meatballs, season the vegetables, then taste the broth at the end.
  • Add the pasta only when you’re nearly ready to serve, since spaghetti keeps absorbing liquid as it sits.

Serving Ideas & Pairings

This soup loves something crusty for dunking. Warm garlic bread, a baguette with salted butter, or cheesy focaccia all work well. A crisp green salad with lemon vinaigrette cuts through the richness nicely, and roasted broccoli with a little chili flake adds some vibrant heat on the side.

For drinks, a medium-bodied red like Chianti or Sangiovese matches the tomato base beautifully. If you’d rather skip alcohol, sparkling water with lemon or a cold glass of iced tea keeps things refreshing.

Make It Different

  • Turkey or chicken meatballs: Swap in ground turkey or chicken for a lighter version. Add an extra tablespoon of olive oil to the mix so they stay moist.
  • Gluten-free: Use gluten-free spaghetti and swap the breadcrumbs for certified gluten-free crumbs or finely ground oats. Cook the pasta separately to keep the broth clear.
  • Spicy version: Add red pepper flakes to the aromatics or stir in a spoonful of calabrian chili paste for real heat.
  • Creamier broth: Finish with a splash of heavy cream or a spoonful of mascarpone for a velvety, silky texture.
  • More vegetables: Add diced zucchini, white beans, or chopped kale in the last few minutes.
  • Dairy-free: Use a plant-based Parmesan alternative and leave out the cheese rind.

Storage & Reheating

Cool the soup to room temperature, then store it in airtight containers in the refrigerator for up to four days. The spaghetti will soften and absorb broth overnight, so the soup will look thicker the next day.

To reheat, warm it gently in a pot over medium-low heat, adding a splash of broth or water to loosen it. Stir occasionally until steaming hot. Microwaving works too: heat in one-minute bursts, stirring in between.

For freezing, I recommend freezing the soup without the pasta. Store the meatballs and broth for up to three months, thaw overnight in the fridge, and cook fresh spaghetti to add when you reheat. Pasta that freezes in soup turns mushy.

Success Tips

Browning the meatballs is optional, but it adds a deeper, roasted flavor. If you have ten extra minutes, sear them in a skillet first, then add them to the simmering broth.

Soak the breadcrumbs in a few tablespoons of milk for five minutes before mixing. This panade keeps the meatballs tender and moist. Keep the meatballs uniform in size so they cook at the same pace.

A tiny pinch of sugar can soften the acidity if your tomatoes taste sharp. A splash of balsamic at the end can also round out the broth. And don’t skip tasting at the end, because pasta soaks up salt and the soup may need a final adjustment.

Frequently Asked Questions (FAQ)

Can I use frozen meatballs?
Yes. Add them straight from the freezer and simmer for about 20 minutes, or until heated through. Homemade ones taste fresher, but store-bought saves time.

What type of pasta works best?
Broken spaghetti is classic, but small shapes like ditalini, mini shells, or orzo also work well. Adjust the cooking time to match the package.

Why did my soup turn thick?
Pasta absorbs liquid as it sits. Thin the soup with extra broth or water when reheating, and it will be good as new.

Can I make this in a slow cooker?
You can. Cook the meatballs and broth on low for six to seven hours, then add the pasta during the last 20 to 30 minutes on high.

How do I keep the meatballs from falling apart?
Don’t overmix, use an egg and breadcrumbs as binders, and keep the simmer gentle. Avoid stirring during the first few minutes after adding them.

Prep time: 25 minutes
Cook time: 35 minutes
Total time: 1 hour
Servings: 6
Category: Soup, Main Course
Difficulty: Easy
Cuisine: Italian-American
Yield: About 10 cups of soup
Equipment: Large Dutch oven or soup pot, mixing bowl, cutting board, chef’s knife, ladle, plate or tray for meatballs

Ingredients

For the meatballs:

  • 1/2 pound ground beef
  • 1/2 pound ground pork
  • 1/3 cup plain breadcrumbs
  • 1 large egg
  • 1/4 cup freshly grated Parmesan cheese
  • 2 cloves garlic, minced
  • 2 tablespoons chopped fresh parsley
  • 1 teaspoon salt
  • 1/2 teaspoon black pepper

For the soup:

  • 2 tablespoons olive oil
  • 1 medium yellow onion, diced
  • 1 medium carrot, diced
  • 1 celery stalk, diced
  • 4 cloves garlic, minced
  • 1 teaspoon Italian seasoning
  • 1/2 teaspoon smoked paprika
  • 1 can (28 ounces) crushed tomatoes
  • 6 cups low-sodium chicken or beef broth
  • 1 Parmesan rind (optional)
  • 6 ounces spaghetti, broken into 2-inch pieces
  • 3 cups fresh baby spinach
  • Salt and black pepper, to taste
  • Fresh grated Parmesan and chopped parsley, for serving

Directions

Step 1: In a large bowl, combine all the meatball ingredients. Mix gently until just combined, then roll into walnut-sized balls and set aside.

Step 2: Heat the olive oil in a large pot over medium heat. Cook the onion, carrot, and celery for about 6 minutes, until softened and lightly golden.

Step 3: Stir in the garlic, Italian seasoning, and smoked paprika. Cook for 30 seconds until fragrant.

Step 4: Add the crushed tomatoes, broth, and Parmesan rind. Bring to a boil, then reduce the heat to a gentle simmer.

Step 5: Carefully add the meatballs to the pot. Simmer for 15 minutes without stirring for the first few minutes.

Step 6: Increase the heat slightly, add the broken spaghetti, and cook for 8 to 10 minutes, stirring occasionally, until the pasta is tender.

Step 7: Stir in the spinach and cook for 1 minute until wilted. Remove the Parmesan rind, taste, and adjust the seasoning.

Step 8: Ladle into bowls and top with fresh Parmesan and parsley. Serve hot.

Notes

  • For the best texture, serve the soup right after the pasta is cooked.
  • If making ahead, cook the pasta separately and add it to individual bowls when serving.
  • You can swap the beef and pork blend for all beef if you prefer.
  • Freeze the soup without pasta for up to three months.

Nutrition

Approximate values per serving (1 of 6):

  • Calories: 420
  • Protein: 28 g
  • Carbohydrates: 32 g
  • Fat: 20 g
  • Saturated fat: 7 g
  • Fiber: 4 g
  • Sugar: 7 g
  • Sodium: 880 mg

Nutrition information is an estimate and will vary based on the specific ingredients and brands used.