Hey y'all! If you're looking for a soul-warming dinner that's both comforting and packed with Mediterranean flair, this Cozy Tuscan White Bean Soup with Meatballs is exactly what you need. With juicy homemade meatballs, creamy white beans, and rustic Tuscan flavors, every spoonful feels like a cozy hug. This soup is a fantastic choice for family dinners, meal prep, or even when you just need a little comfort. Let’s get cooking!
Why You'll Love This
- Hearty and filling, thanks to tender meatballs and beans
- Quick and easy—on the table in under an hour
- Perfect for meal prep or freezing for later
- Gluten-free option with simple swaps
- Big Tuscan flavors with everyday ingredients
Ingredients
- 1 pound ground beef (or turkey or chicken)
- ¼ cup grated Parmesan cheese
- ¼ cup breadcrumbs (use gluten-free if needed)
- 1 large egg
- 2 garlic cloves, minced (divided)
- 1 teaspoon dried oregano (divided)
- ½ teaspoon salt
- ½ teaspoon black pepper
- 2 tablespoons olive oil
- 1 medium yellow onion, finely diced
- 2 carrots, peeled and diced
- 2 celery stalks, diced
- 6 cups low-sodium chicken broth
- 2 (15-ounce) cans cannellini or great northern beans, drained and rinsed
- 1 (14.5-ounce) can crushed tomatoes
- 1 teaspoon dried thyme
- 1 teaspoon dried basil
- ½ teaspoon crushed red pepper flakes (optional)
- 3 cups chopped fresh spinach or kale
- Salt and pepper to taste
- Fresh parsley, grated Parmesan, and crusty bread for serving
Directions
Step 1: Make the Meatballs
- In a large bowl, combine the ground beef, Parmesan, breadcrumbs, egg, 1 minced garlic clove, ½ teaspoon dried oregano, ½ teaspoon salt, and ½ teaspoon black pepper. Mix gently until just combined.
- Roll the mixture into 1-inch meatballs and set aside on a plate.
Step 2: Brown the Meatballs
- Heat 1 tablespoon olive oil in a large Dutch oven or soup pot over medium heat. Add meatballs in batches and brown on all sides for 4-5 minutes. Transfer browned meatballs to a plate (they don’t need to be fully cooked—they’ll finish in the soup).
Step 3: Sauté the Veggies
- Add the remaining 1 tablespoon olive oil to the pot. Add onion, carrots, celery, and a pinch of salt. Sauté for 5 minutes until softened. Add the remaining garlic and cook for 1 minute, stirring.
Step 4: Build the Soup
- Stir in remaining ½ teaspoon oregano, thyme, basil, and crushed red pepper flakes (if using). Pour in chicken broth, crushed tomatoes, and beans. Bring to a gentle simmer.
Step 5: Simmer with Meatballs
- Return meatballs to the pot. Cover and simmer for 20 minutes, until meatballs are cooked through and flavors combine.
Step 6: Add Greens & Finish
- Stir in spinach or kale and simmer for 2-3 more minutes, just until wilted. Taste and adjust seasoning with salt and pepper.
Step 7: Serve & Enjoy!
- Ladle soup into bowls, sprinkle with fresh parsley and more Parmesan, and serve with crusty bread. Enjoy immediately.
Notes
- Don’t overmix the meatball mixture—gentle hands make tender meatballs.
- If you prefer a thicker broth, mash some beans in the pot before adding the meatballs.
- Swap spinach for kale if you want a heartier green, or use both.
Variations
- Vegetarian: Skip the meatballs and add extra beans or cooked plant-based meatballs.
- Spicy: Add a diced jalapeño or double the red pepper flakes.
- Rustic Style: Add small pasta shapes (like ditalini) along with the meatballs for extra heartiness.
Required Equipment
- Large Dutch oven or soup pot
- Mixing bowls
- Wooden spoon or spatula
- Chef’s knife and cutting board
- Ladle
Storage Instructions
- Refrigerate cooled soup in an airtight container for up to 4 days.
- Freeze in freezer-safe containers for up to 2 months—thaw overnight in the fridge and reheat gently.
- Reheat soup on the stove over medium-low heat, stirring occasionally.
Serve With & Pairings
- Crusty Italian or sourdough bread for dunking
- A simple green salad with lemon vinaigrette
- Chilled pinot grigio or sparkling water with lemon
Pro Tips
- Shape meatballs evenly so they cook at the same rate.
- Let the soup simmer gently for deep, layered flavor—avoid rapid boiling.
- Add greens at the very end to retain color and freshness.
FAQ
- Can I use store-bought meatballs instead of homemade?
- Yes! Just brown them briefly before adding to the soup for maximum flavor.
- What’s the best bean for Tuscan soup?
- Cannellini beans are traditional, but great northern beans work beautifully too.
- How do I make this ahead of time?
- Prepare the soup up to 3 days in advance and reheat gently, adding the greens just before serving.
Prep Time: 20 minutes
Cook Time: 35 minutes
Total Time: 55 minutes
Serves: 6
Ingredients
- 1 pound ground beef (or turkey or chicken)
- ¼ cup grated Parmesan cheese
- ¼ cup breadcrumbs (use gluten-free if needed)
- 1 large egg
- 2 garlic cloves, minced (divided)
- 1 teaspoon dried oregano (divided)
- ½ teaspoon salt
- ½ teaspoon black pepper
- 2 tablespoons olive oil
- 1 medium yellow onion, finely diced
- 2 carrots, peeled and diced
- 2 celery stalks, diced
- 6 cups low-sodium chicken broth
- 2 (15-ounce) cans cannellini or great northern beans, drained and rinsed
- 1 (14.5-ounce) can crushed tomatoes
- 1 teaspoon dried thyme
- 1 teaspoon dried basil
- ½ teaspoon crushed red pepper flakes (optional)
- 3 cups chopped fresh spinach or kale
- Salt and pepper to taste
- Fresh parsley, grated Parmesan, and crusty bread for serving
Instructions
-
1In a large bowl, combine the ground beef, Parmesan, breadcrumbs, egg, 1 minced garlic clove, ½ teaspoon dried oregano, ½ teaspoon salt, and ½ teaspoon black pepper. Mix gently until just combined.
-
2Roll the mixture into 1-inch meatballs and set aside on a plate.
-
3Heat 1 tablespoon olive oil in a large Dutch oven or soup pot over medium heat. Add meatballs in batches and brown on all sides for 4-5 minutes. Transfer browned meatballs to a plate (they don’t need to be fully cooked—they’ll finish in the soup).
-
4Add the remaining 1 tablespoon olive oil to the pot. Add onion, carrots, celery, and a pinch of salt. Sauté for 5 minutes until softened. Add the remaining garlic and cook for 1 minute, stirring.
-
5Stir in remaining ½ teaspoon oregano, thyme, basil, and crushed red pepper flakes (if using). Pour in chicken broth, crushed tomatoes, and beans. Bring to a gentle simmer.
-
6Return meatballs to the pot. Cover and simmer for 20 minutes, until meatballs are cooked through and flavors combine.
-
7Stir in spinach or kale and simmer for 2-3 more minutes, just until wilted. Taste and adjust seasoning with salt and pepper.
-
8Ladle soup into bowls, sprinkle with fresh parsley and more Parmesan, and serve with crusty bread. Enjoy immediately.
Approximate Information for One Serving
Nutrition Disclaimers
Number of total servings shown is approximate. Actual number of servings will depend on your preferred portion sizes.
Nutritional values shown are general guidelines and reflect information for 1 serving using the ingredients listed, not including any optional ingredients. Actual macros may vary slightly depending on specific brands and types of ingredients used.
To determine the weight of one serving, prepare the recipe as instructed. Weigh the finished recipe, then divide the weight of the finished recipe (not including the weight of the container the food is in) by the desired number of servings. Result will be the weight of one serving.
Did you make this recipe?
Please consider Pinning it!






Leave a Reply