Save The first time I made this soup, it was snowing sideways and I had nothing in the pantry but canned beans and a Parmesan rind I'd been saving. Sometimes the best meals start with what you have on hand and end up becoming the thing you crave on cold days forever.
My friend Sarah stayed over that snowy weekend and we ate this soup for three days straight, standing around the stove with spoons because we were too hungry to bother with proper bowls. That's when I knew this recipe was a keeper, the kind that feeds people comfortably without any fuss.
What's for Dinner Tonight? 🤔
Stop stressing. Get 10 fast recipes that actually work on busy nights.
Free. No spam. Just easy meals.
Ingredients
- 2 tablespoons olive oil: Use a good one here since it's the foundation, something fruity and peppery if you can find it
- 1 medium onion, finely chopped: I've learned to chop it smaller than I think I need to, so it melts into the soup
- 2 celery stalks, finely chopped: These add that classic mirepoix base flavor that makes it taste professionally made
- 2 medium carrots, peeled and diced: They bring natural sweetness that balances the savory beans
- 2 cloves garlic, minced: Add these after the other vegetables so they don't burn and turn bitter
- 2 cans cannellini beans: These creamy white beans are essential, though great northern beans work in a pinch
- 4 cups vegetable stock: I use a good quality store-bought one, but homemade makes it next level
- 1 bay leaf: Don't skip this, it adds this subtle depth you can't quite put your finger on
- 1/2 cup freshly grated Parmesan cheese: The real stuff makes all the difference here, not the powdered kind
- 1/2 teaspoon salt: Start here and adjust at the end, since Parmesan is already salty
- 1/4 teaspoon freshly ground black pepper: Freshly ground has way more flavor than pre-ground
- 1/4 teaspoon dried thyme: Optional but I always add it, gives it that classic Italian herb note
- 1/2 cup heavy cream: Totally optional but makes it restaurant smooth
- Chopped fresh parsley: Brightens everything up and makes it look fancy with zero effort
Tired of Takeout? 🥡
Get 10 meals you can make faster than delivery arrives. Seriously.
One email. No spam. Unsubscribe anytime.
Instructions
- Build your flavor base:
- Heat olive oil in a large pot over medium heat and add onion, celery, and carrots. Let them cook 6 to 8 minutes until softened and fragrant, stirring occasionally so nothing sticks.
- Add the aromatics:
- Stir in garlic and cook for just 1 minute until you can smell it, being careful not to let it brown or it will turn bitter.
- Simmer the soup:
- Add the beans, vegetable stock, bay leaf, thyme, salt, and pepper. Bring everything to a gentle simmer, then reduce heat to low, cover, and let it cook for 20 minutes so the flavors meld together.
- Make it silky smooth:
- Fish out the bay leaf and use an immersion blender to puree until creamy, or transfer batches to a regular blender if that's what you have.
- Finish with richness:
- Stir in Parmesan cheese and heavy cream if you're using it. Heat gently until the cheese melts and everything is hot through, then taste and adjust seasoning.
- Serve it up:
- Ladle into bowls and top with extra Parmesan and fresh parsley if you want it pretty. I always do.
Save My grandmother started asking for this soup every Sunday after I finally got the recipe right. She said it reminded her of something she had in Florence years ago, which might just be the best compliment I've ever received in the kitchen.
Still Scrolling? You'll Love This 👇
Our best 20-minute dinners in one free pack — tried and tested by thousands.
Trusted by 10,000+ home cooks.
Making It Your Own
Sometimes I'll stir in a handful of baby spinach at the very end, just until it wilts, for extra nutrition and color. A drizzle of really good olive oil on top before serving also makes it feel special.
What To Serve With It
This soup deserves something to dunk in it. I usually make garlic bread or just tear up a crusty baguette and toast it under the broiler with olive oil and salt. It's not fancy but it's perfect.
Storage And Make Ahead Tips
The soup actually tastes better the next day, so don't hesitate to make it ahead. I've made it on Sunday and eaten it for lunch all week long, and it never once got old.
- Keep it in the fridge for up to 5 days in an airtight container
- Freeze for up to 3 months without the cream, add that when reheating
- Reheat gently over low heat, stirring often to prevent scorching
Save There's something about a bowl of this soup that feels like a hug from the inside out, simple and nourishing and exactly what you need when you need it most.
Recipe FAQs
- → Can I make this ahead of time?
Absolutely. The flavors actually deepen when refrigerated overnight. Store in an airtight container for up to 4 days. Reheat gently over medium-low heat, adding a splash of stock if it thickens too much.
- → What's the best way to achieve the smoothest texture?
An immersion blender works perfectly right in the pot. For ultra-smooth results, pass the puréed soup through a fine-mesh sieve. The cream and Parmesan help create that luxurious velvety finish.
- → Can I use dried beans instead of canned?
Yes, soak 1 cup dried beans overnight, then simmer until tender (about 60-90 minutes) before proceeding with the recipe. This method adds about an hour but yields excellent texture and flavor.
- → What can I serve alongside?
Crusty bread, garlic focaccia, or warm rosemary focaccia make perfect companions. A simple green salad with bright vinaigrette balances the richness beautifully.
- → How do I make this vegan?
Replace Parmesan with nutritional yeast or vegan Parmesan alternative, and omit the heavy cream or use full-fat coconut milk. The result remains satisfying and flavorful.
- → Can I freeze this soup?
Freeze without the cream for up to 3 months. Thaw overnight in the refrigerator, reheat gently, and stir in fresh cream and Parmesan when serving. The texture remains excellent.