This Vegan Pasta e Fagioli is a warm and satisfying Italian-inspired soup that’s perfect for any time of year. Not only is it completely plant-based, but it also combines tender beans, pasta, and vegetables in a rich, flavorful broth. As a result, you get a wholesome and filling meal that’s both nutritious and comforting.
Ingredients
2 tbsp olive oil
1 small onion, diced
2 cloves garlic, minced
2 carrots, diced
2 celery stalks, diced
1 can (14 oz) diced tomatoes
1 can (15 oz) cannellini beans, drained and rinsed
1 can (15 oz) kidney beans, drained and rinsed
4 cups vegetable broth
1 cup small pasta (like ditalini or elbow)
1 tsp dried oregano
1 tsp dried basil
½ tsp thyme
Salt and black pepper to taste
2 cups fresh spinach (optional)
Instructions
1. Sauté the Vegetables
First, heat olive oil in a large pot over medium heat. Then, add the diced onion, carrots, and celery. Cook for 5–7 minutes until softened. Next, stir in the garlic and cook for another minute until fragrant.
2. Build the Soup Base
Meanwhile, add the diced tomatoes, cannellini beans, and kidney beans to the pot. Then, pour in the vegetable broth and stir well to combine.
3. Add Seasonings
Next, add oregano, basil, thyme, salt, and black pepper. Afterward, bring the soup to a gentle boil.
4. Cook the Pasta
Now, add the pasta to the pot. Then, reduce heat and let it simmer for 10–12 minutes, or until the pasta is tender.
5. Finish the Soup
Finally, stir in the spinach and cook for 2–3 minutes until wilted. Taste and adjust seasoning if needed.
6. Serve and Enjoy
Serve the soup hot, optionally with crusty bread on the side. In addition, you can drizzle a little olive oil on top for extra richness.
Tips for Best Results
For a thicker soup, mash some of the beans before adding them.
Additionally, cook pasta separately if you plan to store leftovers to avoid it becoming too soft.
For extra flavor, add a splash of lemon juice before serving.
Why You’ll Love It
This dish is simple, nourishing, and packed with flavor. Moreover, it’s a one-pot meal that’s perfect for busy days and meal prep.
Tried this recipe? Leave a comment below and let us know how it turned out! Browse all our vegan recipes to keep enjoying ultimate delicious and healthy lifestyle.
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 Time
Cook Time
Total Time
Servings
Calories
10 mins
35 mins
45 mins
4
~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
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.
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.
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.
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.
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.
Simmer. Reduce the heat to low and simmer, partially covered, for 15 minutes, stirring occasionally. The soup will thicken noticeably as it cooks.
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.
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.
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)
Calories
Protein
Carbs
Fiber
Fat
~320 kcal
14g
42g
12g
10g
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!
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.