This Parmesan Tomato Cannellini Bean Soup is one of those cozy, soul-warming bowls I crave when the weather cools down or I need a little comfort in a spoon. Creamy and hearty, yet packed with bright tomato flavor and a savory richness from Parmesan and herbs, this soup is everything I want in a satisfying meal. The cannellini beans add body and protein, while spinach gives it a vibrant finish.
Why You’ll Love This Recipe
I love this soup because it brings together the best of creamy and savory, without being heavy. The fire-roasted tomatoes add depth and smokiness, the parmesan rind infuses every spoonful with umami, and the cannellini beans make it filling enough for lunch or dinner. It comes together in one pot, and I can easily adjust it to fit whatever I have in my pantry. It’s wholesome, comforting, and totally crave-worthy.
Ingredients
(Here’s a tip: Check out the full list of ingredients and measurements in the recipe card below.)
- 1 tbsp olive oil
- 1 sweet onion, diced
- 4 garlic cloves, minced
- Kosher salt and pepper, to taste
- 1 tbsp tomato paste
- 1 tsp dried basil
- 1/2 tsp dried oregano
- 1/4 tsp dried thyme
- 14 oz fire-roasted tomatoes
- 28 oz cannellini beans, drained and rinsed
- 4 cups vegetable or chicken stock
- 1 parmesan rind
- 1 cup heavy cream
- 1/2 cup finely grated Parmesan cheese, plus more for topping
- 5 oz fresh spinach (or frozen)
- Crushed red pepper, for topping
Directions
- Heat olive oil in a large pot over medium heat.
- Add diced onion and garlic with a pinch of salt and pepper. Sauté for about 5 minutes until softened and fragrant.
- Stir in tomato paste, basil, oregano, and thyme. Cook for 5 minutes, stirring frequently, until the tomato paste darkens and spices become fragrant.
- Add fire-roasted tomatoes, cannellini beans, stock, and the parmesan rind.
- Bring the soup to a gentle boil, then reduce heat to low. Cover and simmer for 20 minutes, stirring occasionally.
- In the last 10 minutes, keep the lid on to allow the parmesan rind to fully infuse.
- Remove the lid and stir in the heavy cream, grated Parmesan cheese, and spinach.
- Let it simmer for another 5–10 minutes until the cheese melts and the spinach wilts.
- Taste and adjust seasoning with more salt and pepper if needed.
- Serve hot with extra Parmesan and a sprinkle of crushed red pepper on top.
Servings and timing
This recipe makes 4–6 servings, depending on portion size. It takes about 10 minutes to prep and 30–35 minutes to cook, so I usually have it ready to serve in around 45 minutes.
Variations
When I want a meatier version, I stir in cooked Italian sausage or shredded rotisserie chicken. I’ve also added small pasta like ditalini or orzo for a heartier texture. For a dairy-free version, I skip the cream and use full-fat coconut milk instead—it still turns out rich and delicious. And if I don’t have spinach on hand, kale or Swiss chard works just as well.
Storage/Reheating
I store this soup in an airtight container in the fridge for up to 4 days. It reheats well on the stovetop or in the microwave—just add a splash of broth or water if it thickens too much. It also freezes beautifully (minus the spinach, which I prefer to add fresh when reheating). I let it cool, freeze in portions, and thaw overnight before reheating.
FAQs
Can I use dried beans instead of canned?
Yes, I sometimes cook dried cannellini beans ahead of time and use them in the soup. They just need to be soft and fully cooked before adding.
What’s the purpose of the parmesan rind?
The rind infuses the broth with a deep umami flavor and creamy texture. I always save my parmesan rinds just for soups like this.
Can I make it vegetarian?
Absolutely. I use vegetable stock and double-check that my Parmesan is vegetarian-friendly. The soup is just as rich and comforting.
Is there a substitute for heavy cream?
Yes, I’ve used half-and-half, whole milk, or coconut milk for a lighter or dairy-free version. It still turns out creamy and satisfying.
How can I make this soup thicker?
If I want a thicker texture, I mash some of the beans in the pot or blend a small portion of the soup before stirring in the cream and cheese.
Conclusion
This Parmesan Tomato Cannellini Bean Soup is a delicious balance of creamy comfort and bold flavor that I never get tired of. It’s easy to make, full of wholesome ingredients, and endlessly customizable to fit what I have on hand. Whether I serve it with crusty bread, a salad, or all by itself, it always hits the spot.
PrintParmesan Tomato Cannellini Bean Soup
Parmesan Tomato Cannellini Bean Soup is a creamy, hearty one-pot soup made with fire-roasted tomatoes, cannellini beans, Parmesan cheese, and fresh spinach. Infused with Italian herbs and finished with a parmesan rind for rich umami flavor, this easy soup is perfect for a comforting lunch or dinner.
- Prep Time: 10 minutes
- Cook Time: 35 minutes
- Total Time: 45 minutes
- Yield: 4–6 servings
- Category: Soup, Dinner
- Method: Stovetop
- Cuisine: Italian-Inspired, American
- Diet: Vegetarian
Ingredients
- 1 tablespoon olive oil
- 1 sweet onion, diced
- 4 garlic cloves, minced
- Kosher salt and black pepper, to taste
- 1 tablespoon tomato paste
- 1 teaspoon dried basil
- ½ teaspoon dried oregano
- ¼ teaspoon dried thyme
- 14 oz fire-roasted tomatoes
- 28 oz cannellini beans, drained and rinsed
- 4 cups vegetable or chicken stock
- 1 parmesan rind
- 1 cup heavy cream
- ½ cup finely grated Parmesan cheese (plus more for topping)
- 5 oz fresh spinach (or use frozen)
- Crushed red pepper flakes (for topping, optional)
Instructions
- In a large pot, heat olive oil over medium heat.
- Add diced onion and garlic. Season with salt and pepper. Sauté for 5 minutes until softened.
- Stir in tomato paste, basil, oregano, and thyme. Cook for 5 minutes, stirring frequently.
- Add fire-roasted tomatoes, cannellini beans, stock, and parmesan rind.
- Bring to a gentle boil, then reduce heat and cover. Simmer for 20 minutes, stirring occasionally.
- During the last 10 minutes, leave the lid on to allow the parmesan rind to fully infuse.
- Remove lid. Stir in heavy cream, grated Parmesan, and spinach.
- Simmer for 5–10 more minutes, until cheese melts and spinach wilts.
- Taste and adjust seasoning.
- Serve hot with extra Parmesan and crushed red pepper flakes if desired.
Notes
- Add Italian sausage or shredded rotisserie chicken for a meatier version.
- Substitute kale or Swiss chard for spinach.
- Use coconut milk for a dairy-free alternative.
- To thicken, mash some beans or blend part of the soup before adding cream.
- Store in fridge for up to 4 days or freeze (without spinach) for up to 2 months.
Nutrition
- Serving Size: 1 bowl
- Calories: 370
- Sugar: 5g
- Sodium: 720mg
- Fat: 20g
- Saturated Fat: 10g
- Unsaturated Fat: 9g
- Trans Fat: 0g
- Carbohydrates: 30g
- Fiber: 6g
- Protein: 16g
- Cholesterol: 45mg