white bean soup

Tuscan White Bean Soup — The Most Deeply Satisfying Italian Comfort Soup You Will Ever Make

tuscan white bean soup

There are soups that fill a bowl. And then there are soups like this Tuscan White Bean Soup — the kind that arrives at the table fragrant with rosemary and garlic and good olive oil, a deep golden broth thick with creamy cannellini beans and wilted Tuscan kale and sweet caramelized onion and tomato, and that produces, in the first spoonful, the specific satisfaction that only a genuinely great Italian bean soup can deliver — the satisfaction of something that is simultaneously humble and profound, simple and complex, rustic and deeply refined in the way that the best Tuscan food has always been. This is that soup. The one that belongs in a deep ceramic bowl with a thick slice of crusty bread laid across the rim for tearing and dunking. The one that fills the kitchen with the kind of fragrance — olive oil, garlic, rosemary, simmering beans — that makes whoever is cooking it feel, if only for the length of the pot’s slow simmer, like they are somewhere in the Tuscan countryside with an hour to spare and nothing to do but cook something extraordinary from whatever is in the pantry. The one that proves, more persuasively than perhaps any other recipe in the Mediterranean repertoire, that a soup built entirely on plants can be as deeply, profoundly satisfying as anything in European cooking.

This recipe builds a soup base of caramelized onion, celery, carrot, and garlic — the classic Italian soffritto — enriched with tomato paste and a generous pour of white wine, then adds cannellini beans in two forms: whole beans that give the soup its body and a portion that is mashed directly in the pot to thicken the broth into the silky, velvety consistency that distinguishes a great Tuscan bean soup from a merely acceptable one. A full bunch of Tuscan kale — the dark, crinkled lacinato variety — is stirred in near the end, and the whole thing is finished with a drizzle of excellent extra virgin olive oil and a generous scattering of fresh rosemary that perfumes the finished bowl in a way that no dried herb can replicate.

What makes this recipe so outstanding is the two-texture bean technique — reserving a third of the cooked beans and mashing them roughly before stirring back into the broth, which thickens the soup naturally into a body that is creamy and substantial without any cream, flour, or blending required. The resulting broth has exactly the right weight: thick enough to coat the spoon, light enough to still drink.

This recipe is 100% vegan, naturally dairy-free and gluten-free, ready in about 45 minutes, and produces a Tuscan white bean soup so deeply flavored, so warming, and so thoroughly satisfying that it works as a weeknight dinner, a dinner party first course, or a meal prep staple that reheats beautifully and tastes even better the next day as the flavors deepen overnight.


Recipe Information

Prep TimeCook TimeTotal TimeServingsCalories
10 mins35 mins45 mins4~320 kcal

Ingredients

For the Soup

  • 3 tbsp extra virgin olive oil, plus more for finishing
  • 1 large onion, finely diced
  • 3 stalks celery, finely diced
  • 2 medium carrots, finely diced
  • 6 cloves garlic, thinly sliced
  • 2 tbsp tomato paste
  • ½ cup (120ml) dry white wine (or substitute with extra vegetable stock)
  • 2 cans (2 × 400g) cannellini beans, drained and rinsed
  • 1 litre (4 cups) good-quality vegetable stock
  • 1 can (400g) diced tomatoes
  • 1 bunch (about 200g) Tuscan kale (lacinato/cavolo nero), stems removed and leaves roughly chopped
  • 2 sprigs fresh rosemary
  • 2 sprigs fresh thyme
  • 1 bay leaf
  • ½ tsp dried chilli flakes (optional, for warmth)
  • Salt and black pepper to taste

For Finishing

  • 3–4 tbsp excellent extra virgin olive oil, for drizzling
  • 1 sprig fresh rosemary, leaves picked and finely chopped
  • Freshly ground black pepper
  • Lemon zest (optional but recommended)

To Serve

  • Thick slices of crusty bread, sourdough, or ciabatta, toasted
  • Vegan Parmesan or nutritional yeast for finishing

Instructions

  1. Build the soffritto. In a large, heavy-bottomed pot or Dutch oven, heat the olive oil over medium heat until shimmering. Add the diced onion, celery, and carrot. Cook, stirring occasionally, for 10–12 minutes until the vegetables are soft, sweet, and beginning to turn golden at the edges. Do not rush this step — the soffritto is the flavor foundation of the soup, and properly caramelized vegetables give the broth a sweetness and depth that cannot be achieved any other way.
  2. Add the garlic and tomato paste. Add the sliced garlic and cook for 2 minutes until fragrant and lightly golden. Add the tomato paste and stir to coat the vegetables. Cook for 2 minutes, stirring constantly, until the tomato paste deepens to a brick-red color and begins to stick slightly to the bottom of the pot — this caramelization adds depth and sweetness to the finished soup.
  3. Deglaze with wine. Pour in the white wine and stir, scraping up any browned bits from the bottom of the pot. Allow to simmer for 2–3 minutes until the alcohol has cooked off and the wine has reduced by about half.
  4. Add the beans, stock, and tomatoes. Add the drained cannellini beans, vegetable stock, diced tomatoes, rosemary sprigs, thyme sprigs, bay leaf, and chilli flakes if using. Stir to combine. Bring to a gentle simmer.
  5. Mash a portion of the beans. Once the soup is simmering, use the back of a large spoon or a potato masher to roughly crush about one third of the beans directly in the pot against the side. This thickens the broth naturally into a creamy, body-rich consistency. Do not over-mash — you want a mix of whole beans and a thickened broth, not a puréed soup.
  6. Simmer. Reduce the heat to low and simmer, partially covered, for 15 minutes, stirring occasionally. The soup will thicken noticeably as it cooks.
  7. Add the kale. Stir in the chopped Tuscan kale. Cook for a further 5–7 minutes until the kale is fully wilted, tender, and has turned a deep, glossy dark green. Remove and discard the rosemary sprigs, thyme sprigs, and bay leaf.
  8. Season and finish. Taste and season generously with salt and black pepper. Add more chilli flakes if desired. Ladle into deep bowls. Drizzle each bowl generously with excellent extra virgin olive oil. Scatter fresh chopped rosemary over the top. Add a grating of lemon zest if using and a few turns of freshly ground black pepper.
  9. Serve. Serve immediately with thick slices of toasted crusty bread and vegan Parmesan or a dusting of nutritional yeast if desired.

Pro Tips

  • Use excellent olive oil — in a soup this simple and this ingredient-forward, the quality of the olive oil matters enormously. A grassy, peppery, genuinely fruity extra virgin olive oil used both in the soffritto and as a finishing drizzle transforms the soup. A bland, low-quality oil produces a noticeably flatter result. Buy the best olive oil you can and use it generously here.
  • Caramelize the soffritto properly — the 10–12 minutes spent cooking the onion, celery, and carrot until genuinely golden is not optional time. It is the step that gives the broth its sweetness and depth. A pale, barely cooked soffritto produces a pale, barely flavored soup.
  • Use Tuscan kale specifically — lacinato kale (also called cavolo nero, black kale, or dinosaur kale) has a darker, richer, more mineral flavor than curly kale and holds its texture better during simmering. It is worth seeking out; it is increasingly available in supermarkets.
  • The mashing technique is the key — crushing approximately a third of the beans in the pot is what produces the characteristic thick, creamy consistency of a great Tuscan bean soup without any cream or blending. More mashing produces a thicker soup; less produces a brothier one. Adjust to your preference.
  • This soup is better the next day — like all bean soups, the flavor deepens considerably overnight as the beans absorb the broth and the spices meld. Make it a day ahead and reheat gently, adding a splash of stock if needed to loosen.

Ribollita: The Tuscan Tradition Behind the Soup

The soup in the Tuscan tradition most closely related to this recipe is ribollita — literally “re-boiled” in Italian — a dish that traces its origins to the peasant cucina povera of medieval Tuscany, when kitchen servants and farmworkers would collect the leftover bean and vegetable soups from the tables of the wealthy, bring them home, add stale bread to thicken them, and re-boil them the following day into something new and arguably better than the original. The bread thickened the soup into a dense, substantial porridge-like consistency that was deeply sustaining and that made the most of every scrap. Over centuries, ribollita evolved from a food of necessity into a food of genuine regional pride — one of the foundational dishes of Tuscan cooking, made intentionally and carefully rather than from necessity, and celebrated as the best expression of the cucina povera philosophy: that the most nourishing and satisfying food comes from the most honest and humble ingredients, cooked with patience and care. This Tuscan white bean soup takes the same ingredients and the same spirit — cannellini beans, kale, good olive oil, rosemary — and applies them in a form that celebrates the broth rather than the bread thickening.


Flavor Variations

  • Ribollita-Style: Add 4 thick slices of stale sourdough bread, torn into chunks, to the soup in the last 10 minutes of cooking. The bread will absorb the broth and thicken the soup into a dense, porridge-like ribollita that is one of the greatest things in Italian cooking.
  • Lemon and Herb Tuscan Bean Soup: Add the zest of one full lemon and a large handful of fresh flat-leaf parsley stirred in at the end for a brighter, more aromatic version.
  • White Bean and Sun-Dried Tomato Soup: Add ½ cup of oil-packed sun-dried tomatoes, roughly chopped, with the regular tomatoes for a deeper, more intensely tomato-flavored version with a slightly sweeter edge.

Nutritional Highlights (Per Serving)

CaloriesProteinCarbsFiberFat
~320 kcal14g42g12g10g

Storage

  • Refrigerator: Store in an airtight container for up to 5 days. The soup thickens considerably as it chills — add a splash of vegetable stock or water when reheating and stir well. The flavor genuinely improves over the first 24–48 hours.
  • Freezer: Freeze in portions for up to 3 months. Thaw overnight in the refrigerator. Reheat gently over medium-low heat, adding stock to adjust consistency. The kale may lose some of its texture after freezing but the flavor is unaffected.
  • Meal prep: This soup is an excellent meal prep option — make a full batch on Sunday and portion into containers for weekday lunches. It reheats well at work and pairs with any crusty bread or crackers.

Frequently Asked Questions

Can I use dried beans instead of canned?

Yes — use 350g (about 1¾ cups) dried cannellini beans, soaked overnight and simmered until tender before using (about 60–90 minutes). Dried beans have a superior texture and a creamier, more nuanced flavor than canned. The cooking liquid from the dried beans is deeply flavored and can replace some of the vegetable stock.

What can I use instead of white wine?

The white wine adds acidity and depth to the soffritto but is easy to replace — use an equal amount of additional vegetable stock with a squeeze of lemon juice, or a splash of white wine vinegar (2 tablespoons) added with the stock rather than during the soffritto stage.

Can I use regular curly kale instead of Tuscan kale?

Yes — curly kale works as a substitute and has a similar nutritional profile. The texture is slightly coarser and the flavor is less mineral and complex than lacinato kale, but the result is still very good. Spinach or Swiss chard are also good substitutes and require only 2–3 minutes of cooking rather than the full 5–7.


Tried this recipe? Leave a comment below and let us know how it turned out! Tag us on Instagram and Facebook — we love seeing your plant-powered creations. Looking for more addictive vegan snack and appetizer recipes? Browse all recipes on Easy Vegan Recipes — new recipes posted every single week!