Creamy Tuscan White Bean Soup with Parmesan and Spinach
As the onion, carrots, and celery soften in the Dutch oven, the kitchen starts to smell like the beginning of a good soup. I let them cook until they’re tender…
Tip: save now, cook later.As the onion, carrots, and celery soften in the Dutch oven, the kitchen starts to smell like the beginning of a good soup. I let them cook until they’re tender before adding the garlic, so it gets fragrant without burning. That gentle start gives this creamy Tuscan white bean soup a savory base before the broth and beans go in.
The soup gets its body from cannellini beans, not a flour thickener. Mashing some against the side of the pot gives the broth a creamy texture while leaving plenty of whole beans in every bowl. Heavy cream and Parmesan make the finish rich, and lemon juice keeps it from tasting too heavy. With spinach and sun-dried tomatoes tucked in, each spoonful is hearty, creamy, and bright.

Kitchen Note
Take the pot off the heat before stirring in the Parmesan and lemon juice. The cheese melts into the hot soup without being exposed to direct heat, and the lemon brings the creamy finish into balance.
Save this creamy Tuscan white bean soup for a cozy dinner — tender cannellini beans, Parmesan, spinach, and a bright finish of lemon.
Why the Beans, Not the Cream, Make This Soup Thick
Cream adds richness, but it isn’t what gives this soup its spoon-coating texture. Cannellini beans have a soft, creamy interior, and once some are mashed into the broth, their starch thickens the liquid naturally. That’s why the soup still feels substantial even though it starts with vegetable broth rather than a flour-thickened base.
Keep most of the beans whole and mash about a cup against the side of the pot. That balance matters: mash too few and the broth stays thin; mash nearly all of them and you lose the contrast between creamy broth and tender beans. The soup also thickens a little as it rests, so judge the texture while it’s hot in the pot rather than expecting it to look like a purée.
There’s no need to blend anything or add a separate thickener. The method uses the beans already in the pot, so their flavor stays front and center. The cream finishes the broth, while the mashed beans do the structural work.
Which Ingredients Give This Soup Its Tuscan Character

- Cannellini beans — Their tender skins and creamy centers work especially well when a portion is mashed into the broth. Canned beans are convenient and consistent; drain and rinse them so the canning liquid doesn’t cloud the soup. Great Northern beans are the closest easy swap and can replace them one-for-one by drained amount, though they’re a little firmer.
- Oil-packed sun-dried tomatoes — These bring concentrated, tangy tomato flavor that stands up to the cream and beans. An economical jar works well here; drain the tomatoes before chopping so excess oil doesn’t make the broth greasy. Dry-packed tomatoes have a chewier texture and need different preparation, so oil-packed is the straightforward choice for this version.
- Heavy cream — It gives the broth a smooth, full-bodied finish. Half-and-half can stand in at the same measure for a lighter soup, but the broth will be less rich and slightly thinner. Skip flavored coffee creamers; their sweetness doesn’t belong in this savory pot.
- Baby spinach — Its tender leaves wilt quickly into the soup without needing separate cooking. Fresh baby spinach is easy to stir in straight from the package. If using frozen chopped spinach instead, thaw it completely and squeeze out excess water before adding, or it can dilute the broth.
- Parmesan — Freshly grated cheese melts more evenly into the hot soup than coarse shreds. A wedge doesn’t need to be expensive, but choose real Parmesan for its nutty, salty depth; Pecorino Romano works in the same amount if you want a sharper, saltier finish.
- Italian seasoning and aromatics — The onion, carrots, and celery build a sweet-savory base, while dried Italian seasoning gives it a familiar herbal note. Inexpensive dried seasoning is fine here. Mince the garlic shortly before it goes into the pot so it releases its aroma during the brief cook without scorching.
Build the Broth Before Adding the Cream and Spinach
Soften the vegetables without browning them
Warm the olive oil in a 5- to 6-quart Dutch oven over medium heat, then add the diced onion, carrots, and celery. Cook for 6 to 8 minutes, stirring occasionally, until the vegetables have softened. They should look glossy and tender, not deeply browned. If the pot starts to sizzle aggressively, lower the heat so the vegetables soften evenly instead of catching on the bottom.
Wake up the garlic and dried seasoning
Stir in the minced garlic, Italian seasoning, crushed red pepper flakes, kosher salt, and black pepper. Cook for 30 seconds, stirring so the garlic and spices meet the warm oil. The garlic should smell fragrant, not toasted; it can turn bitter quickly if left in the pot too long. Keep the broth ready to add as soon as that short cook is up.
Simmer the beans with the tomatoes
Pour in the vegetable broth, then add the drained and rinsed cannellini beans and chopped sun-dried tomatoes. Bring the pot to a boil, then lower the heat and simmer uncovered for 15 minutes. Look for a gentle, steady simmer rather than a hard boil, which can break up the beans before you want them to. Leaving the pot uncovered lets the broth reduce slightly as the flavors come together.
Mash, then finish with cream and greens
Use the back of a spoon to mash about 1 cup of beans against the side of the pot, then stir the heavy cream and baby spinach into the soup. Simmer for 2 to 3 minutes, until the spinach is wilted and the broth looks creamy. Remove the pot from the heat before stirring in the freshly grated Parmesan and lemon juice. Stir until the cheese melts; the finished soup should be creamy with whole beans still visible.
Simple Swaps That Keep the Soup’s Creamy, Bean-Forward Feel
Make it dairy-free with oat cooking cream
Replace the heavy cream with the same amount of unsweetened oat-based cooking cream and leave out the Parmesan. Stir in nutritional yeast gradually after taking the pot off the heat for a savory note; the soup will still be creamy, though it won’t have quite the same cheesy finish.
Keep the heat gentle by leaving out the pepper flakes
Omit the crushed red pepper flakes for a milder bowl. The garlic, Italian seasoning, sun-dried tomatoes, and Parmesan still give the soup plenty of savory character, but you lose the little warm tingle at the back of each bite.
Use Great Northern beans for a slightly firmer bite
Swap in the same drained amount of Great Northern beans for the cannellini. They hold their shape a little more firmly, but still mash well enough to thicken the broth. Drain and rinse them before they go into the pot.
Storage and Reheating
- Refrigerator: Keep leftovers in an airtight container for 3 to 4 days. The beans absorb some broth as they sit, so the soup will be thicker the next day.
- Freezer: Freeze cooled portions in airtight, freezer-safe containers for up to 2 months. The cream may separate slightly after thawing, but stirring as it warms helps bring the soup back together.
- Reheating: Warm leftovers gently on the stovetop, stirring often, until they reach 165°F. Avoid a hard boil, which can make the cream separate; add a splash of vegetable broth if the soup is thicker than you like.
Questions That Come Up While Making This White Bean Soup

Creamy Tuscan White Bean Soup with Parmesan and Spinach
Ingredients
Equipment
Method
- Heat the olive oil in a 5- to 6-quart Dutch oven over medium heat.
- Add the onion, carrots, and celery, and cook for 6 to 8 minutes, stirring occasionally, until the vegetables are softened.
- Stir in the garlic, Italian seasoning, red pepper flakes, salt, and black pepper, and cook for 30 seconds, until fragrant.
- Add the vegetable broth, cannellini beans, and sun-dried tomatoes.
- Bring to a boil, then reduce the heat and simmer uncovered for 15 minutes.
- Mash about 1 cup of the beans against the side of the pot with a spoon to thicken the soup.
- Stir in the heavy cream and spinach.
- Simmer for 2 to 3 minutes, until the spinach is wilted.
- Remove the pot from the heat.
- Stir in the Parmesan and lemon juice until the cheese melts.