
Tuscan Vegetable and Bean Soup
A rustic, hearty Italian soup loaded with creamy cannellini beans, tender vegetables, and bright tomatoes. This one-pot meal is finished with fresh spinach and a generous drizzle of olive oil, making it perfect for weeknight dinners or meal prep. The flavors deepen as it sits, so it's even better the next day.
- Prep
- 15 min
- Cook
- 35 min
- Total
- 50 min
- Makes
- About 8 cups (1.9 L); serves 4 as a main course
Steps
Before you start
- Gather and prep all vegetables before you start cooking—this soup moves quickly once on the stove
- If using canned beans, drain and rinse them well to remove excess sodium and starch
- Have a sharp chef's knife ready for chopping vegetables
Sauté the aromatics
- Heat the olive oil in a large 5–6 quart (4.7–5.7 L) heavy-bottomed pot over medium heat for about 1 minute until shimmering.
- Add the diced onion, celery, and carrot, and sauté for 5–6 minutes, stirring occasionally, until the vegetables begin to soften and the onion becomes translucent.
+ Show details− Hide details
Ready when: Onion is translucent and vegetables have softened slightly
Tip: Stir occasionally so the vegetables cook evenly and don't brown; this builds a clean flavor base.
Add garlic and tomato paste
- Stir in the minced garlic and tomato paste.
- Cook for 2–3 minutes, stirring constantly, until fragrant and the tomato paste deepens in color.
- This step toasts the aromatics and develops savory depth.
+ Show details− Hide details
Ready when: Mixture is fragrant and tomato paste is noticeably darker
Tip: Keep stirring so the tomato paste doesn't stick or burn on the bottom of the pot.
Add tomatoes and broth
- Pour in the canned diced tomatoes with their juices and the vegetable broth (or water).
- Stir well to combine, scraping up any browned bits stuck to the bottom of the pot.
- Increase the heat to medium-high and bring the mixture to a gentle simmer.
+ Show details− Hide details
Ready when: Liquid is at a gentle simmer with small bubbles breaking the surface
Tip: Scraping the bottom releases caramelized flavors that deepen the soup's taste.
Add beans and simmer
- Stir in the drained and rinsed cannellini beans.
- Reduce the heat to medium-low and let the soup simmer gently for 15–20 minutes, stirring occasionally.
- The beans will warm through, and the flavors will meld together.
+ Show details− Hide details
Ready when: Beans are hot throughout and broth has slightly thickened
Tip: Keep the simmer gentle to avoid breaking the beans apart; medium-low heat is key.
Season and add spinach
- Taste the soup and season generously with sea salt and freshly ground black pepper.
- If desired, add a pinch of red pepper flakes for subtle heat.
- Stir in the fresh spinach in batches, allowing it to wilt into the hot broth.
- The spinach should be completely wilted and tender, about 2–3 minutes total.
+ Show details− Hide details
Ready when: Spinach is completely wilted and broth is at a gentle simmer
Tip: Add spinach in batches so you don't overcrowd the pot; it will shrink significantly as it wilts.
Finish and serve
- Divide the soup evenly among four bowls.
- Drizzle each bowl with a generous splash of good extra virgin olive oil.
- Top with fresh torn basil leaves and grated Parmigiano-Reggiano if desired.
- Serve immediately while hot.
+ Show details− Hide details
Tip: The quality of your finishing olive oil matters—use a good extra virgin oil here for the best flavor.
Good to know
Tips
- Fresh herbs finish a simple soup beautifully—torn basil, a sprinkle of parsley, or even oregano all work here. Don't skip the final drizzle of good olive oil; it adds polish and richness to each spoonful.
- If you prefer a thicker, more stewlike consistency, mash some of the beans against the side of the pot with a wooden spoon after they've simmered for 5 minutes. This releases their starch and naturally thickens the broth without adding cream or flour.
- Make this soup in a big batch and portion it into individual containers for meal prep. It reheats beautifully and tastes even better the next day as flavors deepen and meld.
- For a protein boost, serve with crusty bread, grilled bread rubbed with garlic (bruschetta-style), or even cooked sausage on the side.
Make ahead
This soup actually improves overnight as flavors develop. Prepare through step 5, then cool, cover, and refrigerate for up to 3 days. Reheat gently over medium heat on the stovetop, stirring occasionally, until warmed through (about 10 minutes). Add fresh basil and a drizzle of olive oil just before serving.
Storage & reheating
Room temperature: up to 2 hours. Refrigerator: up to 3 days in an airtight container. Freezer: up to 2 months in a freezer-safe container or zip-top bag (the texture of the spinach may soften slightly but the soup will still taste excellent). To reheat from frozen: thaw overnight in the refrigerator, then warm over medium heat on the stovetop for 10–15 minutes, stirring occasionally. Or reheat directly from frozen over medium-low heat, covered, for 20–25 minutes, stirring often.
Substitutions
- cannellini beans (or great northern beans) → Great northern beans, borlotti beans, or chickpeas. All have similar creamy texture and neutral flavor that works well in this soup. Use the same quantity.
- fresh spinach (loosely packed) → Kale (chopped and added 2–3 minutes earlier) or Swiss chard. Kale and chard have more structure than spinach, so they won't break down as much. Tear them into bite-sized pieces before adding.
- canned diced tomatoes (or crushed tomatoes) → Crushed tomatoes or tomato sauce (same quantity). Crushed tomatoes will create a smoother texture; tomato sauce is thicker, so you may need to add an extra ¼ cup (60 ml) of broth to adjust consistency.
- vegetable broth or water → Chicken broth or water. Chicken broth adds richer flavor; water works but use more salt to taste. Chicken broth will add about 180 mg sodium per cup.




