This soup came together during a week when I was trying to eat a little lighter after a stretch of heavier meals, but I still wanted something that felt warm and satisfying rather than like I was missing out. I had a few cans of white beans in the pantry and some wilting spinach in the crisper drawer, and this soup was the result of trying to use both up before they went to waste. It turned out so rich and comforting that it never actually felt like a “lighter” meal at all, and it’s stayed in my regular rotation ever since.
This Creamy Tuscan White Bean Soup is hearty, full of flavor, and comes together with mostly pantry staples — white beans, sun-dried tomatoes, spinach, and a parmesan-cream broth that ties everything together. It’s become one of my regular cold-weather soups, right alongside heartier options like my Lasagna Soup Recipe and my Creamy Chicken and Wild Rice Soup, especially on nights when I want something a little lighter but just as comforting.
Why This Recipe Works
Mashing a portion of the beans before adding them to the broth is what gives this soup body and a naturally creamy texture, without needing to lean too heavily on cream — it’s a similar principle to how a roux thickens a broth in something like the lasagna soup, just using the beans themselves instead of flour and butter.
Stirring in the parmesan and cream toward the end, off higher heat, keeps the soup smooth rather than grainy, the same careful approach that matters in any cream-finished soup, including a rich, creamy chicken and rice soup. Sun-dried tomatoes bring a concentrated, slightly tangy sweetness that balances the richness of the cream and cuts through the earthiness of the beans.
Ingredients You’ll Need
- 2 tablespoons olive oil
- 1 small yellow onion, diced
- 2 carrots, peeled and diced
- 2 celery stalks, diced
- 4 cloves garlic, minced
- 3 cans (15 oz each) cannellini or great northern beans, drained and rinsed, divided
- 4 cups vegetable broth (or chicken broth)
- ⅓ cup sun-dried tomatoes, chopped (oil-packed, drained)
- 1 teaspoon dried Italian seasoning
- ½ teaspoon crushed red pepper flakes (optional)
- 1 teaspoon salt, plus more to taste
- ½ teaspoon black pepper
- 3 cups fresh baby spinach
- ½ cup heavy cream
- ½ cup grated parmesan cheese
Step-by-Step Instructions
1. Cook the Vegetables
Heat the olive oil in a large pot or Dutch oven over medium heat. Add the onion, carrots, and celery, and cook for 6–8 minutes, until softened. Stir in the garlic and cook for another 30 seconds, until fragrant.
2. Mash Some of the Beans
Set aside about 1 cup of the beans. Add the remaining beans to a bowl and mash roughly with a fork or potato masher, leaving some texture. This helps thicken the soup naturally once it’s added to the pot.
3. Build the Soup
Add the mashed beans, whole reserved beans, vegetable broth, sun-dried tomatoes, Italian seasoning, red pepper flakes if using, salt, and pepper to the pot. Bring to a gentle boil, then reduce the heat and simmer for 15–20 minutes, stirring occasionally.
4. Add the Spinach
Stir in the spinach a handful at a time, letting it wilt down into the soup, about 2–3 minutes.
5. Finish with Cream and Parmesan
Reduce the heat to low and slowly stir in the heavy cream and parmesan cheese, mixing until the parmesan is fully melted and the soup is smooth. Taste and adjust seasoning as needed before serving.
Tips From My Kitchen
- Mashing a portion of the beans is what gives this soup its creamy texture without relying too heavily on dairy.
- Add the cream and parmesan off higher heat to keep the soup smooth instead of grainy.
- This soup thickens as it sits, so add a splash of extra broth when reheating leftovers.
- Serve with crusty bread for dipping — this soup practically asks for it.
Nutrition Information
Estimated values per serving, based on 6 servings:
- Calories: approximately 280–310
- Protein: 13–15g
- Carbohydrates: 32–34g
- Fat: 11–13g
- Sugar: 4–5g
For a lighter version, use half-and-half in place of heavy cream and reduce the parmesan slightly — the soup will still be creamy thanks to the mashed beans, just a bit less rich.
Storage and Reheating
Store leftovers in an airtight container in the fridge for up to 4 days. Reheat gently on the stovetop over low heat, adding a splash of broth to loosen the soup as needed, since it thickens as it sits. This soup freezes reasonably well — for the best texture, freeze it before adding the cream and parmesan, then stir those in fresh after reheating.
Frequently Asked Questions
Can I use a different type of bean?
Cannellini and great northern beans both work well for their creamy texture, but navy beans or chickpeas can be substituted if that’s what you have on hand.
Can I make this vegan?
Yes, use vegetable broth, swap the heavy cream for a full-fat coconut milk or unsweetened plant-based cream, and use a plant-based parmesan alternative or nutritional yeast in its place.
Can I make this ahead of time?
Yes, the soup base can be made a day or two ahead and stored in the fridge. Reheat gently and add the cream and parmesan fresh if you made the base without them, for the best texture.
Can I freeze this soup?
It freezes reasonably well, though it’s best to freeze it before adding the cream and parmesan. Add those fresh after reheating to avoid any separation issues.
Final Thoughts
This Creamy Tuscan White Bean Soup has become one of my favorite ways to make something that feels indulgent using mostly what’s already in the pantry. It’s rich, comforting, and just as satisfying as any heartier soup I make, without ever feeling heavy. I hope it becomes a regular in your kitchen too.
