If a healthy, veggie-packed soup could achieve celebrity status, this Creamy White Bean Soup with Kale would be dodging paparazzi—its 500+ five star reviews confirm that this one is knock-your-socks-off good.
And it has earned the hype: it’s easy (one-pot and meal prep friendly!), wholesome (20g fiber + 17g protein!), and boasts a creamy texture, all without using dairy, coconut milk, or cashews.
And despite being so good for you, this soup doesn’t skimp on flavor. The soup is layered with lots of herby flavor thanks to a bouquet garni and a bright gremolata stirred in at the end.
The result? A luxurious, wholesome, A-list soup.
In this post:
Good for the body (and the tastebuds)
I’m on a lifelong quest to develop recipes that do good things for your body and even better things for your taste buds.
Which is why this soup is something of a personal triumph—it’s one of my most wholesome recipes (veggie-packed, protein- and fiber-rich) but it goes down like comfort food, thanks to:
- A creamy texture courtesy of protein-packed white beans and potatoes which, when partially blended, naturally thicken the soup (see my Creamy Vegan Broccoli Soup and Creamy Vegan Cauliflower Soup for more soups creamified by beans);
- Layers of robust flavor (a bouquet garni adds depth as the soup simmers);
- Gourmet vibes (shoutout to the gremolata and olive oil drizzle to finish!)
Oh, and did I mention this is a one-pot wonder? Add the fact that it’s allergen-friendly (free of nuts, soy, gluten, and dairy), meal prep friendly, and can be made in the Instant Pot (instructions in the FAQ section)…honestly, why am I still typing? Just go make this soup and thank me later.

🎥 Watch me make this soup!
With 1.6 million views on YouTube, this soup was a HUGE hit with my community. Click play to watch me walk through this soup from start to finish.
Ingredient notes

Fresh herbs
To make the bouquet garni, I use fresh sage and rosemary, plus dried bay leaves. All three pair really well with white beans.
Substitute: You can replace sage or rosemary with fresh thyme. While dried herbs can be used in a pinch, they simply do not add the same punch of flavor.
Cannellini beans
AKA white kidney beans. These are some of the creamiest beans out there. They’re also what make this Instant Pot Wild Rice Mushroom Soup stick-to-your-ribs comforting.
Substitute: If you can’t find them, use another white bean.
Yukon gold potatoes
When cooked down, potatoes naturally thicken this soup. I use just one medium Yukon gold potato, but if potatoes are your jam, feel free to add some more (you might want to add a bit more vegetable broth to compensate).
Substitute: If you only have sweet potatoes on hand, add a small sweet potato for a different flavor profile.
Lacinato kale
Also known as dino kale or Tuscan kale. This soup feels like it comes from the hills of Tuscany, so lacinato kale is the preferred option!
Substitute: Curly kale works but may take a few extra minutes to become tender. Baby spinach is fine too, but will add a softer texture.
Lemons
Lemon zest is a key element in gremolata and gives this soup its punchy finish. To prepare lemons for zesting, remove any produce stickers from the outside and scrub the peel very well before using. I prefer to use organic lemons for zesting.
Extra virgin olive oil
Because this soup is naturally low in fat, the olive oil at the end really takes it over the top, adding a rich and luxurious mouthfeel that’s often missing in plant-based soups.

Step-by-step instructions
Saute the vegetables. Heat the oil in a Dutch oven over medium-high heat. Once hot, sauté the onion, celery, and carrots until soft.
Next, add the garlic and red pepper flakes (you can leave these out if you don’t want the kick).
Deglaze the pot. Pour the vegetable broth into the pot and scrape up any stuck browned bits on the bottom.




Stir in the salt, pepper, bouquet garni, potatoes, cannellini beans, and artichokes.
Simmer the soup. Bring the soup up to a boil, then turn down the heat, cover with a lid, and simmer for 15 minutes.


Meanwhile, make the gremolata. Finely chop the parsley and basil. Grate the garlic over the herbs, then zest the lemon on top. Stir the garlic and lemon into the herbs. Chop the herbs once more until they’re finely minced. Finish with a sprinkle of sea salt.

Blend the soup. Once the potatoes are tender, turn off the heat and remove the bouquet garni.
Use an immersion blender directly in the pot to blend half of the soup (or transfer half of the soup to a stand blender and blend until smooth, and stir the blended soup back into the pot).
Add the chopped kale to the soup and simmer until tender. Adjust the seasonings.




Serve. Ladle the white bean kale soup into individual bowls. Sprinkle a generous amount of the gremolata on top and finish with a drizzle of extra virgin olive oil. Enjoy!

Tips for making this recipe
Watch the lemon pith
The white pith underneath the lemon peel is quite bitter. Be sure to not zest too deeply, or you’ll end up with pith in your gremolata. A microplane like this (or like this) is the best tool for getting the zest but not the pith.
No kitchen twine for the herb bouquet?
You have a few options to make your bouquet garni if you don’t have kitchen twine:
- Add the herb sprigs into the pot and use tongs to remove them after cooking; or
- MacGyver it: tie the herbs using a leftover scallion or the string from a tea bag; or
- Chop the herbs (not the bay leaves) and sauté them when you add the garlic.
Blend the soup partially (not fully)
Make sure to not blend the entire batch. Blending half of the soup before adding the kale creamifies the soup yet it retains a good amount of texture.
One-pot option: Run an immersion blender until roughly half of the soup is pureed.
Stand blender: For the creamiest texture, transfer roughly half of the soup to your stand blender. Remove the center cap and cover the blender with a dish towel to allow steam to vent. Blend until pureed.
Deglaze with wine for a flavor boost
If you have an open bottle of dry white wine (think Pinot Grigio, Sauvignon Blanc, etc.), feel free to deglaze the pot with 1/4 to 1/3 cup for an extra depth of flavor.
The toppings are non-negotiable
In a veggie-packed soup, we need a bit of indulgence. The drizzle of extra virgin olive oil at the end is not optional IMO. It adds much needed-mouthfeel and richness.
The gremolata, too, shouldn’t be skipped, as it adds lots of bright, fun flavor and helps this soup stand out.
But feel free to add extra toppings
Feel free to garnish this soup with croutons or crunchy roasted chickpeas (see my recipe on page 236 of Big Vegan Flavor), a sprinkle of vegan parmesan cheese, or homemade cashew parmesan.
We love serving it with slabs of seeded whole grain bread for a balanced, wholesome meal.
Use these flavor techniques elsewhere.
Tuck a bouquet garni into your next pot of beans, or try it with my Mediterranean Lentil Soup.
Gremolata is a lovely topping for crostini, roasted or grilled vegetables, pizza, and pasta, like my Lemon Orzo Pasta Salad.

Frequently Asked Questions
Yes!
1) Select the Sauté setting on the Instant Pot and let the pot heat up for a few minutes before adding the olive oil (you may need more than 1 tbsp to prevent sticking). Once hot, add the onion, carrots, and celery and a pinch or two of salt. Cook for 6-8 minutes, or until the vegetables are softened.
2) Add the garlic and red pepper flakes, and cook for 1 minute, stirring frequently to prevent burning.
3) Pour in the broth to deglaze the pan and scrape up any browned bits on the bottom of the pot. Add the 1 teaspoon kosher salt, black pepper to taste, bouquet garni, potatoes, cannellini beans, and artichokes (if using). Stir well.
4) Select the Pressure Cook setting at high pressure for 7 minutes. While the soup cooks, make the gremolata.
5) Once the 7-minute timer goes off, allow a natural pressure release for 10 minutes and then manually release any remaining steam.
6) Transfer half of the soup to a stand blender and blend until thick and smooth. Then return this pureed soup back to the pot and stir to incorporate. Or, use an immersion blender throughout half of the soup, but be sure to not blend it all – you want to retain some texture.
7) Now stir in the kale. Select the Sauté setting and heat until the kale is wilted, about 3 minutes. Taste for seasonings, adding more salt as needed. When the soup is done, remove the bouquet garni. Transfer to bowls, top with gremolata and olive oil, and enjoy.
Technically no, but it’s recommended! It really makes this soup unique and shine in flavor. Plus, it takes like 5 minutes and you can easily make it while the soup is simmering.
You can use 1/2 pound (227g) dried white beans but you’d need to cook them plain ahead of time (this is a quick-simmering soup, so the dried beans won’t cook through in it).
Store leftovers in an airtight container in the fridge for up to 5 days.
If you are not eating all the soup now, store the gremolata in a small jar and drizzle with some extra virgin olive oil for better storage in the fridge. You can spoon this herby oil directly on your soup when ready to reheat and eat instead of finishing with olive oil.
Yes, it freezes well! Transfer the cooled soup to a few airtight containers. We love using these nifty Souper Cubes for single-serve portions that are quick to defrost.
Freeze for up to 3 months, then thaw in the fridge overnight. Reheat on the stove or in the microwave.
If freezing, do not add the gremolata. Instead, make the gremolata fresh when you are ready to reheat the soup.


Introducing
Big Vegan Flavor
Techniques and 150 recipes to master vegan cooking.
Creamy White Bean Soup with Kale

Ingredients
- 2 tablespoons extra virgin olive oil
- 1 large yellow onion (or leek), diced
- 3 sticks of celery, diced
- 3 medium carrots, diced
- 6 cloves garlic, finely chopped
- ½ teaspoon red pepper flakes
- 3 ½ cups (840 mL) vegetable broth (see Note 2)
- ½ teaspoon Diamond Crystal kosher salt
- 1 medium (~6 oz or 170g) Yukon gold potato, peeled and finely diced
- 2 (15-ounce/425g) cans cannellini beans, drained and rinsed (or 3 1/2 cups cooked cannellini beans)
- 1 (14 ounce/400g) can artichoke hearts, drained and chopped finely (optional)
- Freshly cracked black pepper to taste
- Bouquet garni: 2 bay leaves + 1 large sprig of sage + 1 large or 2 small sprigs rosemary, tied tightly together with kitchen twine (see Note 3)
- 1 small head of lacinato kale, center rib removed and shredded (about 1 small bunch)
- 1 to 2 tbsp Good-quality extra virgin olive oil (for finishing)
Gremolata
- 1 loosely packed cup (12g) flat-leaf parsley leaves
- ½ loosely packed cup (8g) fresh basil leaves
- 1 clove garlic, left whole and peeled
- 2 medium lemons (I prefer organic since we're using the peel)
- Flaky sea salt
Instructions
- Heat the oil in a large Dutch oven or soup pot over medium-high heat. Once hot, add the onion, celery, and carrots, along with a pinch or two of salt. Cook until the vegetables are softened and starting to just turn brown, 8 to 10 minutes, stirring occasionally.
- Add the garlic and red pepper flakes, and cook another 1 to 2 minutes until very fragrant.
- Pour in a splash of vegetable broth to deglaze the pot as needed, stirring up any browned bits on the bottom of the pot. Add the remaining broth, potatoes, cannellini beans, and artichokes (if using), several cracks of pepper, and 1/2 teaspoon of kosher salt (1/4 tsp sea salt or table salt). Stir well. Nestle the bouquet garni into the soup.
- Bring the soup to a boil. Then reduce heat, cover the pot, and simmer the soup for 15 minutes, or until the potatoes are tender.
- While the soup is simmering, make the Gremolata. Finely chop the parsley and basil. Using a microplane, grate the garlic directly over the parsley and basil. Then zest the lemons on top of this mixture, taking care to not zest the white pith underneath the skin. Mix the garlic and lemon zest into the herbs and chop the herbs until they’re finely minced. Sprinkle with a bit of the coarse or flaky sea salt.
- When the soup is done simmering, remove the bouquet garni.Transfer half of the soup to a stand blender and blend until thick and smooth. Then return this pureed soup back to the pot and stir to incorporate. OR, for a one-pot option, use an immersion blender throughout half of the soup, but be sure to not blend it all – you want to retain some texture.
- Add the kale to the soup and simmer for 3 to 5 minutes, or until the kale is tender but still bright green. Taste for seasonings, adding salt to taste and a squeeze of lemon juice if desired.
- Serve the soup in bowls and sprinkle a generous amount of the Gremolata over each bowl and a drizzle of the extra virgin olive oil.If storing leftovers, add the gremolata to a jar, drizzle some olive oil in there, and refrigerate. Spoon this over leftover soup.
Video
Notes
- Instant Pot instructions can be found in the first FAQ in the blog post.
- Use 3 1/2 cups of broth (840 mL) if you want the soup to be very thicker; use 4 cups (960 mL) of broth for a slightly thinner but still chunky texture. If using low-sodium vegetable broth, you will need to use considerably more salt in step 3.
- Don’t have kitchen twine? You can do the following:
- Just add the herb sprigs into the pot and use tongs to remove them after cooking; or
- MacGyver it: tie the herbs using a leftover scallion, a long sturdy stem of parsley, or the string from a tea bag; or
- Chop the herbs (not the bay leaves) and sauté them when you add the garlic
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.
















I made this for dinner tonight and it was delicious!!! The gremolata is a Must!! Don’t skip it as I was tempted to do since I didn’t have basil. I made it with the parsley, Lemon, garlic and salt. The flavor was outstanding! Even my picky husband loved it. Thank you so much!
Yay, we’re thrilled the soup is picky husband approved! Thanks for taking the time to leave a review, Jackie 🙂
This was delicious and very filling. I was looking at the nutrition information and don’t think it’s quite 20 grams of protein of protein per serving, with 4 servings in the recipe. I could only get to about 15-16 grams per serving. with most of the protein coming from the beans which account for 56 grams of protein in the recipe. For 20 grams/serving and 4 servings, you’d need a total of 80 grams of protein in the entire recipe. What am I missing? Thank you
Hi Linda, we’re so glad you enjoyed the recipe!
Regarding the nutrition question: the calculator on our website provides an estimate and can sometimes be inaccurate. We really appreciate you bringing this to our attention—we’ll look into it and recalculate!
Nisha,
I just finished eating this wonderful soup— it was too tasty, nourishing. It was just freakin cusine! Thank you!!
Awesome, Kathleen. Thanks for your comment and for taking the time to review!
This is a great soup! I’ve made it twice now with some variations according to what I have on hand. I haven’t tried the gremolata yet because I’m lazy and fresh herbs aren’t in season where I live. I just squeeze lemon juice and drizzle olive oil on top. But a word to the wise: check the ingredients in your cannellini beans! I was super excited to find them at ALDI, but when I got home I realized they had a “firming agent” added to them, so they didn’t break down as easily. The soup was still delightful, but probably would be even silkier with an un-firmed bean.
Hi HRB, thanks for the comment. We’re happy to hear you enjoyed the soup 🙂 So interesting to hear about the firming agent, we appreciate you pointing that out for others!
Oh me! Oh my!!!
This soup is deeeeeelicious. I was hesitant about it, but I am so glad I made it. It has beat out my first place soup, minestrone. Unexpectedly and unbelievably good!!!
I added about 1/4 tsp ground turmeric to the entire recipe. The color was so beautiful, and the flavor was still so, so good. (I’m not a huge fan of turmeric, but with all the pepper I thought, meh, why not? good anti-inflammatory)
I didn’t have kale on hand, so I added spinach instead.
Thank you, Nisha!
Hi Dawn, Thank you so much for such a fantastic review! Appreciate you taking the time!
This is more than bean soup. It’s comforting deliciousness. Make the gremolata. Well worth your time!
We appreciate your feedback and support, V. Thank you for leaving a review!
Not to be dramatic but this is my all time favorite soup. I look forward to it being cold enough to make this all year. I recommend all of my friends and family to try it, and they all love it – even those who have a bias against meatless food! To all non-vegans, this doesn’t “taste vegan”. It’s just a good soup, plain and simple.
Your review made our day, Kaylee! Thank you for taking the time to share your thoughts with us 🙂 Lovely to hear the recipe is loved by all.
I made this recipe in my instant pot and served with the gremolata and a drizzle of oil. Great soup! I couldn’t find fresh sage in my area so I used dried, and I forgot to saute the garlic and red pepper flakes in step 2 so I just tossed them in after pouring in the broth. Still came out delightful! I love an idiot-proof meal!
We’re so happy that the soup turned out well for you, Donald. Thank you for taking the time to leave a comment and for trying out the recipe!
This was excellent, Nisha, and will be made again! The flavors were superb, and I never even made the Gremolata. It is the kind of soup that you would deliver to a friend in need! Thanks so much!.
Thank you for your lovely comment, Lorraine! It makes us happy to know that you enjoyed the recipe.
Excellent soup, really filling, we both loved it ! I didn’t have some of the ingredients but no matter, it was really tasty ! I have Big Vegan Flavor and made the tomato sauce which is soooo good too.
Thank you Nisha, for all your hard work 🙏😊
Thank you for your lovely comment, Dannie! It makes us happy to know that you both enjoyed the recipe, and thank you for the support of Big Vegan Flavor 🙂