Tuscan soup with cannellini beans is a hearty, one-pot meal packed with flavor. It combines Italian sausage, vegetables, creamy beans, and spices for a filling, satisfying dish. This soup is perfect for family dinners or meal prep—and it’s budget-friendly, too.

What’s great about this recipe
- Hearty one-pot meal – This soup is loaded with Italian sausage, vegetables, creamy cannellini beans, and spices for a complete, satisfying meal in a single pot.
- Budget-friendly – It’s an affordable option that works well for family dinners or meal prep.
- Flexible – Easily swap in other beans, greens, or sausage types, or go dairy-free if needed. It’s a great way to use what you have on hand without compromising flavor.
Ingredients

Oil – We use olive oil, however any oil that is suitable for sautéing will work. Use your favorite.
Sausage – Use mild or hot Italian sausage with the casings removed and torn into pieces, or use bulk sausage.
🧅Vegetables – Onions, carrots, and garlic make the flavor base. Potatoes and spinach make this meal filling and wholesome.
🌿Herbs and spices – We keep the spices simple by using Italian seasoning. Salt may be needed at the end.
🥫Pantry – Canned cannellini beans, also called white kidney beans, can be found in the canned beans aisle at most supermarkets. All-purpose flour gives the soup a little body.
Liquid – Use chicken broth for this soup; choose a reduced sodium variety if you are sensitive to salt. Half-and-half is used at the end to add a touch of creaminess to the soup.
See the recipe card for quantities and preparation.
How to make this Tuscan soup with cannellini beans

- Heat the olive oil in a large pot over medium-high heat. When the oil is hot but not smoking, add the sausage.
- Cook the Italian sausage for approximately 3-4 minutes until browned. Stir frequently, breaking up any large pieces with a wooden spoon or spatula.
- Lower the heat to medium and add the onions and carrots to the pot. Cook for 2-3 minutes until the onions are translucent, stirring frequently.
- Add the garlic and Italian seasoning. Cook for 1 minute, stirring frequently.

- Add the flour to the pot and cook for 1 minute, stirring constantly.
- Add the chicken broth to the pot while gently scraping any bits off the bottom. Raise the heat to high and bring the broth to a boil.
- Once the soup comes to a boil, lower the heat to medium-low and cover the pot. Simmer for 15 minutes, stirring occasionally.
- Add the potatoes and the cannellini beans, stir well. Raise the heat to medium-high and bring the soup to a full boil. Then, lower the heat to medium-low, cover and continue cooking the soup for 15-20 minutes, or until the potatoes are tender. Stir often at first to make sure the potatoes are not sticking to the bottom of the pot, then stir occasionally. Also, keep the broth simmering, raise or lower the heat as needed.

- Add the spinach to the soup. Heat gently until the spinach wilts, which will only take a minute or two. Stir occasionally.
- Remove the pot from the heat. Add the half and half, stirring until incorporated.
- Place the pot over low heat to warm through, but do not let it come to a boil.
- Taste and add salt if needed. As a reference, we didn’t add extra salt to ours. Serve with a generous piece of crusty bread, if desired and enjoy.
Variations and substitutions
Make it vegetarian: Use vegetable broth instead of chicken broth and skip the sausage. Add extra vegetables like diced zucchini, bell peppers, or mushrooms, along with an extra can of beans to keep the soup hearty and satisfying. A plant-based sausage or meat substitute can also be used if you want to keep a similar texture and flavor profile.
Make it dairy-free: Omit the half and half or use a dairy-free alternative like unsweetened coconut milk or unsweetened oat milk. The soup will still be rich, flavorful, and creamy.
Use different beans: Cannellini beans are creamy and mild—try them in this white bean soup. If needed, you can substitute them with navy beans or Great Northern beans, both of which have a similar texture and flavor.
Switch the greens: This recipe uses fresh spinach, but kale, Swiss chard, or a combination of greens will also work well.
Try a different protein: Instead of Italian sausage, try turkey or chicken-based Italian sausage, cooked chopped chicken, or your favorite plant-based meat substitute.

Storing and reheating instructions
Refrigerate: Store leftover soup in an airtight container in the refrigerator for 3 to 4 days.
Freeze: Cool the soup quickly, then transfer it to an airtight, freezer-safe container. Leave 1–2 inches at the top to allow for expansion. Label and date the container, and freeze for up to 2 months.
Reheat: Gently reheat the soup in a saucepan on the stovetop or in the microwave until hot all the way through.
Food safety tip: Leftovers should be reheated to at least 165°F. Do not leave cooked food out at room temperature for more than 2 hours—or 1 hour if the temperature is over 90°F. For more information on food storage and safety guidelines, visit the U.S. Department of Agriculture and foodsafety.gov.
Recipe tips and notes
- Things move quickly at the beginning of this recipe, so have all the ingredients prepped and ready to go before starting.
- Don’t add extra salt until the end (if needed). The sausage, broth, and beans all contain a good amount already. Use reduced sodium alternatives if you are sensitive to salt.
- Keep peeled and cut potatoes covered with cold water until ready to use. Potatoes brown quickly once they’re peeled and keeping them in water slows this down.
Frequently asked questions
Yes, but cook them separately following the package directions before adding them to the soup. Dried beans take longer to cook and need more liquid, so it’s best not to cook them directly in the soup.
This soup is satisfying on its own, but it pairs perfectly with crusty bread, garlic breadsticks, or a side salad with a simple citrus dressing to balance the richness. You could also serve it with roasted vegetables or a small antipasto plate for a more complete meal.
There are a few easy ways to make Tuscan soup a bit lighter. Use reduced-sodium chicken broth and leaner meat options like turkey or chicken sausage. You can also cut the sausage amount in half and increase the vegetables or beans to keep it filling. To reduce the richness, scale back the half and half or leave it out entirely—cannellini beans still give the soup a naturally creamy texture without dairy.
This Tuscan soup with cannellini beans is a favorite at our house—it’s hearty, full of flavor, and always hits the spot. If you’re looking for more delicious soup ideas, check out a few more comforting options we love: this flavorful sausage and lentil soup, easy and wholesome pinto bean soup, or our go-to easy potato soup for something classic and satisfying. Happy cooking!
Join Us
Subscribe to our Newsletter to get the latest recipes, cooking tips, and kitchen inspiration delivered straight to your inbox. Don’t forget to follow us on social media for daily recipe ideas and more!
📖 Recipe

Tuscan Soup with Cannellini Beans Recipe
Ingredients
- 1 teaspoon Olive Oil
- 1 pound Mild Italian Sausage casing removed (or use bulk sausage)
- 1 Medium Onion finely diced
- 1 Large Carrot peeled and diced (or 2 medium carrots)
- 3-4 Garlic Cloves minced
- 1 teaspoon Italian Seasoning
- 2 tablespoons All Purpose Flour
- 6 cups Chicken Broth
- 1 Large Potato peeled and cut into ½-1 inch cubes (about 12 ounces) We use russet potato, red or yukon will also work well
- 1 (15.5 ounce) can Cannellini Beans drained and rinsed
- ½ cup Half and Half
- 3 ounces Fresh Spinach kale or Swiss chard can be substituted
- Salt to taste if needed
Instructions
- Heat the olive oil in a large pot over medium-high heat. When the oil is hot but not smoking, add the sausage.
- Cook the Italian sausage for approximately 3-4 minutes until browned. Stir frequently, breaking up any large pieces with a wooden spoon or spatula.
- Lower the heat to medium and add the onions and carrots to the pot. Cook for 2-3 minutes until the onions are translucent, stirring frequently.
- Add the garlic and Italian seasoning. Cook for 1 minute, stirring frequently.
- Add the flour to the pot and cook for 1 minute, stirring constantly.
- Add the chicken broth to the pot while gently scraping any bits off the bottom. Raise the heat to high and bring the broth to a boil.
- Once the soup comes to a boil, lower the heat to medium-low and cover the pot. Simmer for 15 minutes, stirring occasionally.
- Add the potatoes and the cannellini beans, stir well. Raise the heat to medium-high and bring the soup to a full boil. Then, lower the heat to medium-low, cover and continue cooking the soup for 15-20 minutes, or until the potatoes are tender. Stir often at first to make sure the potatoes are not sticking to the bottom of the pot, then stir occasionally. Also, keep the broth simmering, raise or lower the heat as needed.
- Add the spinach to the soup. Heat gently until the spinach wilts, which will only take a minute or two. Stir occasionally.
- Remove the pot from the heat. Add the half and half, stirring until incorporated. Place the pot over low heat to warm through, but do not let it come to a boil.
- Taste and add salt if needed. As a reference, we didn’t add extra salt to ours. Serve with a generous piece of bread, if desired, and enjoy.
Notes
Nutrition
The nutritional information above is computer generated and is only an estimate. There is no guarantee that it is accurate. This data is provided as a courtesy for informational purposes only.
Premu Advani
Could I use cut up chicken instead of sausage. ? Substitute coconut milk instead of half and half.
Elizabeth Rodriguez
Yes, chicken will work well in this soup! Consider using dark meat, like boneless, skinless chicken thighs, for more flavor. You can also use coconut milk instead of half and half—just keep in mind that it will add a mild coconut flavor to the soup.
Irma
I made this soup for vegetarian friends. No sausage but added extra garlic, 2 mini sweet peppers and 2 cans of beans.
Delicious and healthy. Great base soup to add other meats and vegetables. Thanks for sharing the recipe.
Lisette
I followed the recipe exactly except I didn’t have the spinach. It was very good and easy to make. I will definitely make it again. I froze some to see how it turns out.