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 made this soup tonight exactly as the recipe directed me. The soup was very well balanced and even though it used such simple ingredients it was very well rounded.
Definitely will be making again in the future!
I am so thrilled to hear that, Carrie! Thank you so much for your review!
Love the white bean Tuscan soup
I am so happy to hear that! Thank you so much, Sheila!
Love the white bean Tuscan soup. Awesome website
Thank you so much for your support, Sheila!
Love the simplicity of recipe, also listing ingredients w/ SOME of its nutritional value
I am so happy you enjoyed it, Lisa!
Delicious! I added more veggies and garlic. This one’s a keeper.
WOW YUMMY!! If you want a hearty filling soup without meat this is it! It is delicious, and so comforting on a cold day. I added 4 cans of beans (northern beans and butter beans too) and added zucchini to my soup. Delicious!!
My kids loved this! I replaced the vegetable broth with a chicken bone broth to add even more protein and nutrients. Amazing! So easy, so wholesome, nutritious and delicious!! Thank u so much awesome recipe!
Well Thought out,although I substertuted Kale for Spinach
That sounds delicious, Gari! Thank you for your review!
Making it now! Skipped the blender, used spinach. Added orzo and diced tomatoes. A cold night here so this soup should do the trick I hope!
Enjoy, Jane! Thank you for your support!
It’s January 2025 and quite the frigid day in Pennsylvania. I decided to make the soup today and it turned out excellent. I had leeks in my refrigerator that needed used up. I did not have shallots so that was my substitution for that. I only had about 3/4 of a can of canelli beans so I also had a bag of mixed beans that I had done in my ninja foodie. I used them up in this soup. I also had garbanzo beans and I added them too. My other substitution was chicken broth and I also added chicken. I did not have vegetable broth and I did not have bone broth. However I did have this homemade chicken broth so I used that instead. Then I had Marzetti seasoned croutons and I ate those with the soup. I found that those are an excellent combination with this soup. I felt like I was eating the soup in a upscale restaurant. It was that good and right now it’s cooling outside so I can prepare it to go in the freezer.
Roxanne, thank you so much for that beautiful story and review. I’m so happy you enjoyed it and I’m grateful for your support!
This was very, very good. Great flavor! I added kale instead of spinach since that was what I had on hand. How can you make this with an Instapot?
Trying it now! When blending the soup does that mean to also blend the beans? The picture shows whole beans in the soup bowl so I was confused