This Creamy Cannellini Bean Soup is the ultimate bowl of rustic comfort. It’s a simple, hearty, and incredibly flavorful soup that comes together in under 30 minutes using mostly pantry staples. Tender cannellini beans are simmered in a savory tomato and garlic broth, then finished with a touch of cream and Parmesan to create a luscious, velvety texture. It’s a nourishing and satisfying vegetarian meal that tastes like it’s been simmering all day.
Perfect for a busy weeknight or a cozy evening, this one-pot recipe is both elegant and effortless. It’s a soul-warming soup that’s packed with flavor and plant-based protein, making it a delicious and healthy choice for the whole family.
Why You’ll Love This Recipe
- Quick & Easy: A comforting, from-scratch soup that’s ready in under 30 minutes.
- Pantry Staples: Made with simple, easy-to-find ingredients you probably already have.
- Rich & Creamy: A luscious, velvety broth that’s incredibly satisfying without being too heavy.
- Hearty & Vegetarian: A filling meal packed with plant-based protein and fiber.
Ingredients
- 2 (15 oz) cans Cannellini Beans, rinsed and drained
- 1 (28 oz) can Crushed Tomatoes
- 4 cups Vegetable Broth
- 1/2 cup Heavy Cream
- 1/2 cup Grated Parmesan Cheese, plus more for garnish
- 1 Yellow Onion, chopped
- 4 cloves Garlic, minced
- 1 teaspoon Dried Italian Seasoning
- 1/2 teaspoon Red Pepper Flakes (optional)
- 2 tablespoons Olive Oil
- 5 oz Fresh Spinach
- Salt and Black Pepper, to taste
Step-by-Step Instructions
- Sauté Aromatics: Heat the olive oil in a large Dutch oven or pot over medium heat. Add the chopped onion and cook until softened, about 5-7 minutes. Add the minced garlic and cook for one more minute until fragrant.
- Build the Broth: Pour in the crushed tomatoes and vegetable broth. Add the Italian seasoning and red pepper flakes (if using). Season with salt and pepper. Bring the mixture to a simmer.
- Simmer the Beans: Add the rinsed cannellini beans to the pot. Let the soup simmer for 10-15 minutes to allow the flavors to meld together.
- Make it Creamy: Reduce the heat to low. Stir in the heavy cream and grated Parmesan cheese until the cheese is melted and the soup is creamy.
- Wilt the Spinach: Add the fresh spinach in batches, stirring until it has completely wilted into the soup.
- Serve: Taste and adjust seasoning if needed. Ladle into bowls and serve hot, garnished with extra Parmesan cheese.
Tips & Variations
- Pro Tip: For a naturally thicker soup, mash about half a cup of the cannellini beans against the side of the pot with a spoon before adding the cream.
- Add Protein: Stir in some pre-cooked Italian sausage or shredded rotisserie chicken for a heartier, non-vegetarian version.
- Make it Vegan: Substitute the heavy cream with full-fat canned coconut milk and the Parmesan with 3-4 tablespoons of nutritional yeast or a vegan Parmesan alternative.
- Different Greens: Kale can be used instead of spinach, but it should be added earlier with the beans as it takes longer to become tender.

Frequently Asked Questions (FAQ)
- Can I use other types of beans?
- Yes, Great Northern beans or chickpeas would also be delicious in this soup.
- How do I store leftovers?
- Store the soup in an airtight container in the refrigerator for up to 4 days. The flavors will continue to deepen overnight.
- Can I freeze this soup?
- Soups containing dairy can sometimes change texture when frozen. It’s best enjoyed fresh, but can be frozen for up to 2 months. For best results, freeze before adding the cream and Parmesan.
Serving Suggestions
- This soup is a complete meal, but it’s absolutely fantastic served with warm, crusty bread for dipping up every last drop of the creamy broth. A simple side salad with a light vinaigrette also pairs nicely.

Cannellini Bean Soup
Ingredients
Equipment
Method
- Blend one can of cannellini beans with liquid until smooth. Set aside.
- Heat olive oil in a large pot over medium heat. Sauté onion 4-5 minutes until translucent.
- Add garlic and cook for 40 seconds until fragrant.
- Add pureed beans, remaining whole beans (drained), cherry tomatoes, chili flakes, bay leaf, dried basil, dried rosemary, broth, salt, and pepper. Stir to combine.
- Bring to a simmer over medium-high heat. Cover and cook 25-30 minutes, stirring occasionally. Reduce heat as needed to maintain a gentle simmer.
- Remove from heat. Stir in fresh parsley, taste, and adjust seasoning as needed. Serve with olive oil drizzle, fresh pepper, and crusty bread.