This post may contain affiliate links. Please read our disclosure policy.

Get ready for another delicious soup to hit your rotation. My Tuscan Ribollita Soup is a hearty, rustic soup packed with veggies that I know you will love!

Tuscan Ribollita in three bowls. Toppings in bowls scattered around.

If you are not familiar, Ribollita Soup is a traditional Tuscan soup made with veggies, beans, and stale bread. While you can certainly omit the bread, it is a classic element of Ribollita and what sets it apart from other Italian veggie soups like minestrone.

Also, while most classic recipes add the stale bread chunks directly to the soup pot, I prefer to ladle my soup over a bowl filled with some stale bread chunks. I think the leftover soup keeps better this way and you get a better bite of each piece of bread with the soup, rather than it completely disintegrating into the soup but feel free to make however you prefer, just my preference here!

Tuscan Ribollita in bowls on tile background.

Tuscan Ribollita Soup Ingredients:

  • Extra Virgin Olive Oil 
  • Yellow Onion
  • Celery 
  • Carrot
  • Leek 
  • Garlic
  • Salt and Pepper
  • Crushed Red Pepper Flakes
  • Dry White Wine
  • Canned Whole Peeled Tomatoes
  • Low-Sodium Vegetable or Chicken Broth
  • Fresh Thyme
  • Dried Oregano
  • Bay Leaves
  • Parmesan Cheese Rind: Omit for dairy-free!
  • Russet Potato
  • Canned Cannellini Beans
  • Lacinato Kale
  • Swiss Chard
  • Stale Loaf of Bread: Sub gluten-free bread!
  • Freshly Grated Parmesan Cheese: Optional for serving

Tuscan Ribollita Soup Step-by-Step:

Step one: Start your soup base

In a large pot or Dutch oven, heat the oil over medium heat. Add the onion, celery, carrot, leek, garlic, salt, pepper, and red pepper flakes and cook, stirring, until the veggies are tender, 5 to 7 minutes. Next, add the white wine and cook until reduced by about half, 2 more minutes. 

Step two: Cook the Potatoes

Add the crushed tomatoes, the broth, thyme, oregano, bay leaves, and the cheese rind, if using. Bring the soup to a rapid simmer. Once the soup is simmering, reduce to a light, steady simmer. Add the potatoes, cover, and cook until the potatoes are just tender, about 15 minutes. 

Tuscan Ribollita in dutch oven with just soup base and potatoes.

Step three: Blend Some of the Soup

When the potatoes are tender, discard the bay leaves and cheese rind. Transfer 2 cups of the soup to a  blender along with 1 cup of the cannellini beans. Blend until the mixture is very smooth and add back to the soup along with the remaining cannellini beans, kale, and chard. Stir to combine and cook, uncovered and simmering, until the kale has just wilted and the beans are tender, about 10 more minutes, stirring occasionally. Taste the soup and add more salt and pepper, if desired. 

Tuscan Ribollita in dutch oven with blended portion being poured in.

Step Four: Serve over bread and enjoy!

To serve, tear or cut the bread into bite-sized pieces and place a handful of the bread pieces in the bottom of a soup bowl. Ladle the soup over the bread and top with a drizzle of extra virgin olive oil, a sprinkle of parmesan cheese (if using), and a few cracks of fresh ground black pepper. Enjoy! 

Tuscan Ribollita in white dutch oven.

Recipe FAQs:

Why do I need to hand-crush the tomatoes?

This gives, in my opinion, the perfect texture to the soup. Perfectly smooth with slight tomato chunks throughout! This is a trick my mom has always done in the kitchen with a variety of recipes.

I only have fresh bread, is that okay?

Yes! If your bread is fresh, I recommend toasting it in the oven first. Preheat the oven to 375℉. Tear the bread into bite-sized pieces and place on a sheet pan. Bake until just toasted and lightly golden, 8 to 10 minutes. I don’t put olive oil on it, it’s just to dry it out and make it a little stale!

Why do I need to add a parmesan rind to my soup?

While you can omit this if preferred, the parmesan rind helps to amplify the flavor of the soup and helps create a silky consistency.

Tuscan Ribollita in three bowls. Toppings in bowls scattered around.

For more Delicious Soup Recipes:

Easy Italian White Bean Soup

Sausage, Fennel, and White Bean Soup

Spring Green Minestrone

Whole30 Zuppa Toscana

Tuscan Ribollita in white dutch oven.
5 from 5 votes

Tuscan Ribollita Soup

Dairy-Free (if modified), Gluten-Free (if modified), Vegetarian
Total: 1 hour 2 minutes
Servings: 8

Ingredients 

  • 3 tablespoon extra virgin olive oil plus more for serving
  • 1 cup finely diced yellow onion or ½ onion
  • 1 cup finely diced celery or 2 stalks
  • 1 cup finely diced carrot or 1 carrot
  • 1 leek halved, rinsed well and thinly sliced (white parts only)
  • 4 garlic cloves minced
  • 1 teaspoon Kosher salt plus more to taste
  • ½ teaspoon fresh ground black pepper plus more for serving
  • ½ teaspoon crushed red pepper flakes
  • ½ cup dry white wine
  • 28- ounce can whole peeled tomatoes, crushed by hand, see note, preferably San Marzano
  • 8 cups low-sodium vegetable or chicken broth
  • 2 tsp fresh thyme leaves
  • 1 teaspoon dried oregano
  • 2 bay leaves
  • 1 parmesan cheese rind (optional)
  • 4 cups medium-diced russet potato, about 2 large potatoes
  • 2 [15-ounce] cans cannellini beans, drained and rinsed
  • 1 bunch lacinato kale, de-ribbed and roughly chopped
  • 1 bunch swiss chard, de-ribbed and thinly sliced (sub another head of kale if preferred)
  • 1 loaf stale bread Ciabatta is my favorite to use here; sub gluten-free bread (*see note)
  • Freshly grated parmesan cheese (optional for serving)

Instructions 

  • In a large pot or Dutch oven, heat the oil over medium heat. Add the onion, celery, carrot, leek, garlic, salt, pepper, and red pepper flakes and cook, stirring, until the veggies are tender, 5 to 7 minutes.
  • Add the white wine and cook until reduced by about half, 2 more minutes.
  • Add the crushed tomatoes, the broth, thyme, oregano, bay leaves, and the cheese rind, if using. Bring the soup to a rapid simmer.
  • Once the soup is simmering, reduce to a light, steady simmer (about medium-low heat). Add the potatoes, cover and cook until the potatoes are just tender, about 15 minutes.
  • When the potatoes are tender, discard the bay leaves and cheese rind. Transfer 2 cups of the soup to a blender along with 1 cup of the cannellini beans. Blend until the mixture is very smooth and add back to the soup along with the remaining cannellini beans, kale, and chard.
  • Stir to combine and cook, uncovered and simmering, until the kale has just wilted and the beans are tender, about 10 more minutes, stirring occasionally. Taste the soup and add more salt and pepper, if desired.
  • To serve, tear or cut the bread into bite-sized pieces and place a handful of the bread pieces in the bottom of each soup bowl. Ladle the soup over the bread and top with a drizzle of extra virgin olive oil, a sprinkle of parmesan cheese (if using), and a few cracks of fresh ground black pepper.

Notes

For the Crushed Tomatoes: Pour the can of tomatoes, undrained, into a large bowl. Using your hands, crush the tomatoes until they reach a pulp-like consistency. 
For the Stale Bread: If your bread is fresh, I recommend toasting it in the oven first. Preheat the oven to 375℉. Tear the bread into bite-sized pieces and place on a sheet pan. Bake until just toasted and lightly golden, 8 to 10 minutes. I don’t put olive oil on it or anything, it’s really just to dry it out and make it a little crisp/stale!

Nutrition information is automatically calculated, so should only be used as an approximation.

Additional Info

Servings: 8

Photography and styling by Eat Love Eats.



Welcome! I’m Alex.

I’m a food lover sharing healthy, simple, delicious, recipes from my kitchen to yours. Here you’ll find lots of Whole30, lots of healthy, and a little indulgence here and there because…it’s all about balance y’all!


Similar recipes

Leave a comment

Your email address will not be published. Required fields are marked *

Recipe Rating




5 Comments

  1. 5 stars
    This recipe is INCREDIBLE!!!!! Don’t skip out on the Parmesan rind! It has major minestrone vibes but also feels different enough where I can alternate between the two.