This meatball and vegetable soup is my new favorite cozy soup recipe. It's loaded with homemade turkey meatballs, spinach, sun dried tomatoes, pesto, assorted vegetables, and parmesan cheese. The broth tastes like it's been cooking for hours, and it's so so wholesome and delicious.

This meatball and vegetable soup is perfect for a cold winter day. It's super comforting without being heavy. It is kind of like Italian wedding soup, but without pasta and with a more complex broth. It's also a great meal-prep soup because it tastes great for several days. If you want to speed things up a bit, you can even use pre-cooked meatballs.
If you like this soup, try our pantry rice and tomato soup, cauliflower and baked potato soup, or turkey lasagna soup.
Jump to:
Ingredients
To speed this meal up (and simplify it), feel free to buy pre-cooked meatballs and skip over the meatball ingredient list. We love Trader Joe's meatballs, for example!
For the meatballs:
- Lean ground turkey
- Mushrooms- We use baby bella, but use whatever mushroom is your favorite.
- Egg
- Onion
- Parmesan cheese
- Spices/seasonings- garlic, fresh basil, Worcestershire sauce, Italian seasoning, salt, black pepper, crushed red pepper flakes
For the soup:
- Tomato paste
- Pesto- You can use store bought or make your own. We have a great pesto recipe if you want to make your own!
- Celery
- Carrots
- Onion
- Sun dried tomatoes
- Chicken broth- We use bone broth, but regular chicken broth works fine too.
- Baby spinach
- Milk
- Fresh parmesan
- Other ingredients/spices- vegetable oil (we use avocado oil), garlic, crushed red pepper flakes, black pepper, Italian seasoning, salt, and lemon juice
See recipe card for amounts.

Instructions
Step 1: Make the meatballs. Combine the meatball ingredients in a large mixing bowl. Roll the mixture into 1-inch meatballs and set aside on a plate. Add oil to a large nonstick pan and sear the meatballs for 2-3 minutes on each side (about 10 minutes total), until all sides are golden brown. Remove the meatballs from the pan and set aside.
If you choose to buy pre-cooked meatballs, you can skip this step.



Step 2: Add oil to a large pot or dutch oven over medium heat. Add celery, onions, and carrots, and cook for 3-4 minutes, stirring occasionally, until the onions begin to soften.

Step 3: Add garlic, sun dried tomatoes, tomato paste, red pepper flakes, Italian seasoning, salt, and black pepper to the pot. Cook for 1 minute, stirring constantly. Then add chicken broth, water, lemon juice, and pesto. Turn the heat to high and bring to a boil.


Step 4: Once the soup is boiling, add the meatballs. Cook for an additional 15 minutes. After the 15 minutes, your meatballs should be fully cooked. If you're worried they're not, remove one from the pot and ensure that the internal temperature is 165°F.

Step 5: Add spinach to the pot and cook for 3 minutes. Then turn off the heat and stir in the milk and parmesan cheese. Serve immediately and top with extra parmesan!

Frequently asked questions
The most time-intensive part of this soup is making the meatballs. If you want to speed it up, buy pre-cooked meatballs and skip the entire meatball making step.
Sure! Adding pasta to this soup would make it more similar to Italian wedding soup. Any small tubular pasta should work. Just boil the pasta separately and add it to the soup at the end. Keep in mind that the pasta will absorb some of the broth, so you may want to add more liquid.
Sure! Kale would also work super well.

Sharie S. says
Very hearty and full of flavor!