This is one of the most popular recipes on my blog, and for a good reason: it’s thick, delicious, and loaded with tender white beans, soft-cooked veggies, and just the right amount of spice to satisfy any palate. Introducing my Hearty Tuscan White Bean Soup, a vegan-friendly soup recipe that will keep you fueled all winter long! It’s perfect for meal-prepping or enjoying on a cold and cozy winter night… preferably with a slice of thick, crusty bread.

Friends, I have to admit: I’ve been on a roll with my soup recipes this season. From my Healthy Baked Potato soup to my Hearty Broccoli Potato Soup, to my Cozy Lemon Chicken & Rice soup (aka avgolemono), I have been having SO much fun testing new soup recipes this season! I just know, come these cozy and cold winter months, I’m going to be so grateful that I have an arsenal of soup recipes to chose from, and I know you will be too!
One of the things that I love so much about soup is that it’s universal. Almost every culture (that I can think of!) has a soup recipe, and I’ve yet to meet anyone who said that they didn’t like soup! Soup truly is a universal love language, and I personally can’t get enough of it.
Plus, soups are SO easy to customize to meet any diet or lifestyle preference! This soup in particular is naturally gluten-free and vegan-friendly (as well as grain-free and sugar-free, and paleo-friendly), so it fits a wide range of different diets. I truly see this soup recipe as being a new staple in your winter cooking lineup, and I can’t wait to see how you all recreate it.


What Makes a Good Soup?
You might be wondering, what *truly* makes a good soup? And friends, do I have the answer for you! A good soup requires only a few simple steps to ensure that it turns out perfect, every time.
01. – Use a High Quality Broth
Contrary to popular belief, your broth can either make or break your soup. In my opinion, a good broth is essential to any soup recipe – I just won’t make soup without it!
Now, you have a few different options as for what constitutes a “good” broth. In general, I recommend using a high quality bone broth or a homemade veggie broth. I should also note that you can absolutely make your own bone broth too, but a pre-bottled bone broth works just fine.
The reason I recommend using a homemade veggie broth is for two reasons. First, because the flavors get more concentrated and you can really get that rich, veggie flavor. And two, because it’s so easy to make! Just take your veggie scraps that you save throughout the week, freeze them, and then, when you’re ready to make broth, simply simmer them for 3-4 hours in a pot of water on the stove.
It’s easy, delicious, requires no extra cost, and is the perfect staple to have on-hand!

02. – Season Sparingly
This one might seem counterintuitive, but hear me out. It’s actually better to slightly under season your soup, rather than over season it.
The reasoning behind this one? Because as the soup sits, the flavors will only develop stronger! And since most people tend to make soup in large batches, so that they have leftovers, over seasoning can make you run the risk of having a soup that’s too salty.
Now, don’t be afraid to season your soup – that’s not at all what I mean! Rather, just be mindful of your salt, your pepper, and your herbs. A little can go a long way!
03. – Double or Triple Soup Recipes
Like I mentioned in the last point, soup tends to develop over time, which means that soup leftovers are infinitely better than freshly made soup. This is just a fact, and I will stand by it!
Whenever I make soup, I always make sure that I at least double the recipe that I’m making. This ensures that I always have plenty of soup for leftovers for the next few days! And if you want to make even more and freeze it, that’s also another great option, too.


What You Need to Make This Hearty Tuscan White Bean Soup
- Olive Oil: Any neutral oil really works here, but I recommend olive oil. Why? It’s full of heart-healthy fats, and adds the absolute best flavor to this soup!
- 🧅 Onion: Any type of onion will work well in this recipe!
- Shallots: Shallots are one of my favorite ways to add flavor to a dish! Shallot is from the onion family, and I always use a large one and slice it thin!
- 🧄 Garlic: Garlic is another soup “must”! I fully believe that there’s no such thing as too much garlic… in soup, and in anything else!

- 🥕 Carrots: Carrots are rich in Vitamin A, and are delicious sliced up in this soup!
- Celery: Celery adds a bitterness, but in a gentle way that enhances the overall flavor of the soup.
- 🫘 Cannellini Beans: Cannellini Beans are full of healthy fats, vitamins, and plant-based protein, making them a triple threat and the perfect bean to include in this soup!
- Bay Leaves: Bay Leaves add a richness to the broth, but just make sure to remove them before you eat!
- Spices: In this recipe, we will be using a combination of Italian Seasoning, red pepper flakes, sea salt, and black pepper!
- 🍜 Vegetable Broth: Like I mentioned above, I recommend using a homemade veggie broth, if you have the time to make it. But if not, any veggie broth will do!
- 🥬 Spinach: Spinach is delicious, full of antioxidants, and also adds a beautiful vibrant green color to this soup!


How to Make This Cozy & Comforting White Bean Soup
To make this soup, start by heating the olive oil in a large soup pot or dutch oven, on the stove, over medium-low heat. Next, dice the onion, garlic, and shallots and add them to the hot oil. Stir and sauté them for 3-4 minutes, until the onion is translucent. Then, was and chop the carrots and celery and add them to the pot. Sauté for another 7-10 minutes – this is really important to ensure that the flavors build.
Prepare the beans. Rinse and drain the cannellini beans, and add them to the pot along with the bay leaves, Italian seasoning, red pepper flakes, vegetable broth, salt, and pepper. Bring the soup mixture to a boil, then reduce the heat to low, cover, and simmer for another 15 minutes. Next, remove the cover to pull out and discard the bay leaves.
Then, blend the soup. Transfer two cups of the soup to a high-speed blender and blend until it’s thick and creamy. Once the soup is blended, return it to the pot and stir generously. Finally, add in the spinach and stir until it’s wilted. Once the soup is done, transfer it into bowls. Garnish it with fresh chopped parsley, if desired, serve with crusty bread, and enjoy!

Frequently Asked Questions
You can! Just be sure to soak and rehydrate the beans overnight, to ensure that they’re ready to be added to this recipe.
You can use any broth of your choosing! While this recipe calls for vegetable broth in order to make it vegetarian-friendly, you can also substitute chicken broth, beef broth, or any broth of your choosing!
Yes! Simply prepare the soup as directed, then allow it to cool. Once cooled, transfer it to an airtight container or large mason jar and store it in the fridge for up to one week, or in the freezer for up to one month!
I recommend garnishing this soup with fresh chopped parsley and a side of crusty bread. Yum!
If you make this recipe, please be sure to leave a comment and rating below! And since I practically live on Instagram, be sure to tag me in your creations so I can see them and repost on my IG stories! Enjoy! xx
If you make this recipe, please be sure to leave a review and rating below! To see more recipes and behind the scenes, follow along on Instagram, TikTok, and Youtube! I’m also now on Pinterest, so stop by and take a look at what’s new.
** Photography by Gayle McLeod

Equipment
- Dutch Oven a sturdy dutch oven is perfect for making all of your cozy soup recipes!
Ingredients
- ¼ Cup Olive Oil, extra virgin
- 1 Small Onion, diced
- 2 Medium Shallots, chopped
- 4 Cloves Garlic, mashed
- 2 Carrots, chopped into coins
- 2 Celery Stalks, diced
- 3 15 Ounce Cans Cannellini Beans, drained and rinsed
- 2 Bay Leaves
- 1 Tablespoon Italian Seasoning
- ½ Teaspoon Red Pepper Flakes
- 5-6 Cups Vegetable Broth
- ½ Teaspoon Sea Salt
- ¼ Teaspoon Ground Black Pepper
- 3 Cups Fresh Spinach
Instructions
- To make this soup, start by heating the olive oil in a large soup pot or dutch oven, on the stove, over medium-low heat.
- Next, dice the onion, garlic, and shallots and add them to the hot oil. Stir and sauté them for 3-4 minutes, until the onion is translucent.
- Then, was and chop the carrots and celery and add them to the pot. Sauté for another 7-10 minutes – this is really important to ensure that the flavors build.
- Prepare the beans. Rinse and drain the cannellini beans, and add them to the pot along with the bay leaves, Italian seasoning, red pepper flakes, vegetable broth, salt, and pepper.
- Bring the soup mixture to a boil, then reduce the heat to low, cover, and simmer for another 15 minutes.
- Next, remove the cover to pull out and discard the bay leaves.
- Then, blend the soup. Transfer two cups of the soup to a high-speed blender and blend until it's thick and creamy.
- Once the soup is blended, return it to the pot and stir generously.
- Finally, add in the spinach and stir until it's wilted.
- Once the soup is done, transfer it into bowls. Garnish it with fresh chopped parsley, if desired, serve with crusty bread, and enjoy!
Rate & review
SELECT A RATING and tell me what you think!
What others are saying
I really loved this recipe! I added cherrywood bacon to my batch and instead of olive oil I used the bacon grease to stew up the onions and veggies. I also replaced a cup of veggie broth with one cup of chicken broth. I might have added too much liquid because the soup was a little too watery for my taste, so I added some flour to a cup of the soup snd blended it before mixing it back into the pot. The result made it thicken up and the texture was perfect. 100/10 going to make it again!
SO VERY DELICIOUS! Only change I made was to use homemade chicken broth instead of the vegetable broth.
Great recipe. Followed it mostly. I only used 2 cans of beans and sprinkled parmesan cheese on top with the parsley. I also used chicken stock. The red pepper gives it a kick that my husband liked too.
I try to avoid any oil when I cook, so instead of olive oil, I just sautee in water or broth. Nobody ever knows the difference. My kids really enjoyed it, but one is particularly picky about things being “too spicy” so I might try removing the red pepper next time for him. I might consider using navy beans in the future, one of my favorite beans to cook with. Otherwise, loved how simple, yet flavorful it is. I usually have all of those ingredients on hands so wouldn’t take a special trip to the store.
I added a little white wine, and chopped sundried tomatoes and put shaved parm on top! Wonderful!
That sounds delicious, Sally! Thank you for your review!
Soup was excellent. Only change I made was using kale instead of spinach as that was what was in the fridge. Excellent swap if you’re a kale fan! I shredded some parm on my second bowl and that was a great addition as well.
Family favorite! Thank you for sharing.
Family favorite! Thank you for sharing.
Made this today and it was delicious! Used kale instead of spinach and half chicken broth, half vegetable broth as that’s what I had on hand. Didn’t have Italian seasoning, so used Greek, dried dill, summer savoury, and basil. Followed the rest of the directions and had it with plain French bread and soft butter. Amazing.
This was really delicious, thank you. I made it yesterday and I’m going to make another batch today to freeze. I didn’t use a shallot because I don’t tend to keep those on hand, but maybe I will buy one at the store today, I can’t imagine how this could get any better but I’m excited to find out!
Definitely add the shallot, Anna! Thank you for your review!
This is a good solid soup. Easy and quick to make.
This is a good solid recipe. Quick and easy to follow. I used the spinach the recipe called for but think I would use Kale in the future if I had it on hand. Followed the recipe to a T with the exception of using roasted garlic broth instead of vegetable due to realizing too late that I didn’t have anything else.
Thanks so much Anne, glad you loved it!