This cozy Vegetable Meatball Soup is loaded with mini meatballs, ditalini pasta and plenty of vegetables — a satisfying bowl that eats like a full meal. Homemade meatballs, browned and finished in the simmering soup, add depth and heartiness. A parmesan rind simmered in the broth gives exceptional richness. This family-friendly soup is comforting, nutritious and freezer-friendly.

When chilly weather arrives, a hot bowl of soup brings instant comfort. This vegetable meatball soup was inspired by a favorite chunky Italian vegetable soup, but with extra protein from small, flavorful meatballs.
Mini meatballs, carrots, celery, onion, tomatoes, ditalini and spinach combine into a wholesome, balanced soup. Serve with crusty bread or dinner rolls for a complete meal.
Why You Will Love This Vegetable Meatball Soup
- Protein-packed: Adding meatballs turns a simple vegetable soup into a filling, protein-rich entrée — one serving provides substantial protein.
- Freezer-friendly: This soup freezes well, making it a convenient option for quick weeknight meals.
- All-in-one meal: Vegetables, pasta and meatballs make this soup a complete, balanced dish without extra sides.
- Flexible: Swap or add vegetables, change the meat, or tweak herbs and seasonings to suit your tastes.
Recipe Ingredients
For the Meatballs
- Ground beef: 85% lean works well. You can substitute ground turkey or a beef-pork blend if preferred.
- Parmesan: Freshly grated parmesan for the meatballs, and save the rind to simmer in the soup for extra flavor.
- Breadcrumbs: Plain or Italian; if plain, add extra Italian seasoning to the mix.
- Seasoning: Salt, cracked pepper, crushed red pepper flakes and Italian seasoning (or a blend of oregano, thyme, rosemary and basil).
- Garlic: Freshly minced for best flavor.
- Egg: One large egg to bind the meatballs; for an egg-free option, soak breadcrumbs in milk before adding to the meat.
- Parsley: Fresh chopped parsley is ideal, but dried works if needed.
- Optional: A splash of Worcestershire sauce brightens the meatball flavor.
For the Soup
- Vegetables: Carrots, celery and yellow onion are the base. Substitute parsnip for carrots if desired.
- Tomatoes: Use canned tomatoes — a combination of diced and crushed yields a pleasant texture (for example, two diced cans and one crushed).
- Parmesan rind: Simmering a rind in the broth adds deep, savory richness — highly recommended.
- Broth: Chicken or beef broth (low sodium preferred). Vegetable broth works too.
- Seasoning: Italian seasoning pairs nicely with the parmesan; add crushed red pepper for heat if you like.
- Garlic: Fresh minced garlic or garlic powder.
- Ditalini pasta: Small pasta that cooks quickly; elbow macaroni or other short pasta may be used instead.
- Spinach: Fresh baby spinach stirred in at the end; frozen is an acceptable substitute.
- Tomato paste: A few tablespoons help thicken and deepen the broth.
Step-by-Step Instructions




- Make the meatballs: Combine ground beef, parmesan, breadcrumbs, egg, parsley, garlic, salt, pepper and seasonings in a bowl. Mix gently until just combined. Form into small meatballs (about 3/4 inch). This yields roughly 50–60 meatballs depending on size.
- Brown the meatballs (stovetop): Heat a skillet over medium-high with a drizzle of olive oil. Brown meatballs in batches for 3–4 minutes, turning to color all sides. They do not need to be fully cooked — they’ll finish in the soup. Remove and set aside.
- Or broil the meatballs: Place meatballs on a parchment-lined sheet pan and broil on high 5–7 minutes until browned but not fully cooked. Remove and set aside.
- Start the soup: In a large pot or Dutch oven, heat a drizzle of olive oil. Sauté chopped carrots, celery and diced onion for 3–4 minutes until onions are translucent.
- Add broth, canned tomatoes, Italian seasoning, minced garlic, salt, pepper and the parmesan rind. Bring to a low boil, then reduce to a simmer and cook until carrots soften.
- Stir in the browned meatballs, ditalini pasta and fresh spinach. Simmer about 10 minutes, until the pasta is al dente and meatballs are cooked through. Remove from heat, stir in tomato paste, and let rest a few minutes. Discard the parmesan rind before serving.
Recipe Tips
- Do not overcook the pasta. Pasta will continue to soften after the pot is removed from heat; aim for just barely al dente.
- Make it gluten-free: Substitute gluten-free breadcrumbs and pasta as needed.
- Check meatball temperature: Ensure meatballs reach a safe internal temperature (165°F/74°C) before serving.
- Air-fryer option: Air fry meatballs in batches at 350°F for 4–6 minutes until golden if you prefer that method.

Storage
Refrigerate leftovers in an airtight container for 3–4 days. To freeze, cool the soup completely, transfer to freezer-safe containers and freeze up to 3 months. Thaw overnight in the refrigerator before reheating.
What to Serve With This Soup
This soup pairs beautifully with a slice of crusty bread, dinner rolls or a grilled cheese. For a lighter meal, serve with a simple salad such as arugula with apples or a roasted pear salad. Appetizers like stuffed mushrooms or small pastry bites also complement the soup nicely.
Other Soups To Try

Soups & Chilis
Easy Rotisserie Chicken Noodle Soup

Soups & Chilis
Sausage Gnocchi Soup

Soups & Chilis
Tomato Tortellini Soup

Soups & Chilis
Chicken Lemon Orzo Soup
HUNGRY FOR MORE? Subscribe to the newsletter and follow social accounts for more recipes and updates.
Vegetable Meatball Soup

Ingredients
For the Meatballs:
- 1 lb ground beef (about 85% lean)
- ⅓ cup parmesan cheese
- ½ cup breadcrumbs
- 2 tsp Italian seasoning
- ¼ tsp crushed red pepper
- 1 lightly beaten egg
- 1 T fresh parsley, chopped
- 2–3 garlic cloves, minced
- ½ tsp sea salt
- ½ tsp cracked pepper
For the Soup:
- 4 carrots, chopped
- 3–4 celery stalks, chopped
- 1 yellow onion, diced
- 3 cans tomatoes (approx. 15 oz each) — two diced, one crushed
- 1 parmesan rind
- 8 cups chicken or beef broth, low sodium
- 2–3 garlic cloves, minced
- 1 T Italian seasoning
- ½ tsp sea salt
- ½ tsp pepper
- 1 cup ditalini pasta, uncooked
- 2 cups fresh baby spinach
- 3 T tomato paste
Instructions
- Prepare the meatballs: Combine all meatball ingredients in a bowl and mix gently. Roll into small 3/4-inch meatballs (about 50–60).
- Brown the meatballs: Heat olive oil in a large skillet over medium-high heat. Brown meatballs in batches 3–4 minutes until the outsides are colored. Set aside.
- Or broil: Arrange meatballs on a parchment-lined sheet pan and broil 5–7 minutes until browned but not cooked through. Set aside.
- Prepare the soup: In a large pot or Dutch oven, heat olive oil and sauté carrots, celery and onion 3–4 minutes until translucent.
- Add broth, tomatoes, Italian seasoning, garlic, salt, pepper and the parmesan rind. Simmer until carrots soften and the broth reaches a low boil.
- Add meatballs, spinach and ditalini. Simmer about 10 minutes until pasta is al dente and meatballs are fully cooked. Remove from heat, stir in tomato paste, let rest a few minutes and discard the parmesan rind before serving.
Notes
Do not overcook the pasta. It will keep softening after the soup is removed from heat — stop when it’s just barely al dente.
Gluten-free option: Use gluten-free breadcrumbs and pasta if needed.
Air fryer option: Air fry meatballs at 350°F for 4–6 minutes in batches until golden.
Nutrition
Nutrition information is an approximation.
Shop This Post
Dutch Oven Pot
Ladle
Garlic Press
Sheet Pan
Mixing Bowls