This Vegan Tuscan White Bean Soup Will Ruin Every Other Soup for You

You know that feeling when you take one bite of something and immediately think, why haven’t I been making this my whole life?

That’s what happened the first time I made this soup.

It’s thick, creamy, deeply savory, and loaded with white beans, wilted greens, and the kind of flavor that makes you think someone spent hours in the kitchen. The secret? You didn’t. It comes together in about 35 minutes.

And the whole family devours it. Every. Single. Time.

What You’ll Need

For the Soup Base

  • 2 cans (15 oz each) cannellini beans, drained and rinsed
  • 1 can (14.5 oz) diced tomatoes
  • 4 cups vegetable broth (low sodium)
  • 1 cup canned full-fat coconut milk
  • 3 cups fresh baby spinach, packed
  • 1 medium yellow onion, diced
  • 6 garlic cloves, minced
  • 2 stalks celery, chopped
  • 2 medium carrots, peeled and sliced into rounds
  • 3 tablespoons olive oil
  • 2 tablespoons tomato paste
  • 1 teaspoon dried thyme
  • 1 teaspoon dried oregano
  • 1/2 teaspoon smoked paprika
  • 1/2 teaspoon red pepper flakes (optional but worth it)
  • Salt and black pepper to taste

To Finish

  • 1 tablespoon fresh lemon juice
  • Zest of 1 lemon
  • Fresh parsley, chopped (for garnish)
  • Crusty bread or sourdough for serving

Tools You’ll Need

  • Large Dutch oven or heavy-bottomed soup pot (5-6 qt)
  • Cutting board and sharp chef’s knife
  • Wooden spoon or silicone spatula
  • Can opener
  • Ladle
  • Immersion blender (optional, but changes everything)
  • Measuring spoons and cups
  • Vegetable peeler
  • Microplane or zester (for lemon zest)

Pro Tips

Here are a few things that took this soup from good to ridiculously good for me.

  1. Blend half the soup. Use an immersion blender directly in the pot and blend just about half the beans and broth. This makes it creamy and thick without adding any cream. It’s a game-changer.
  2. Toast your tomato paste. After sauteing the onions, push them to the side, add the tomato paste directly to the dry spot in the pan, and let it cook for 60-90 seconds before stirring. This deepens the flavor significantly.
  3. Add lemon at the end, not the beginning. Acid added too early dulls everything. Squeeze your lemon in right before serving and it wakes the whole pot up.
  4. Don’t skip the smoked paprika. It adds this subtle depth that makes people say, “what IS that?” in the best way possible.
  5. Use full-fat coconut milk. Not the light version. The fat is what gives this soup its silky body. You won’t taste coconut at all, just richness.

Substitutions & Variations

Beans: Great northern beans or navy beans work just as well as cannellini.

Greens: Swap spinach for kale, Swiss chard, or even arugula. If using kale, add it 5 minutes earlier so it has time to soften.

Coconut milk: Cashew cream works beautifully here if you prefer. Or a splash of oat milk for a lighter version.

Spice level: Skip the red pepper flakes for kids. Add a full teaspoon for adults who love heat.

No tomato paste? Double the diced tomatoes and let the soup simmer a bit longer to reduce.

Add pasta: Stir in a cup of small cooked pasta (like ditalini or orzo) at the end to make it heartier. This is the Italian-American version and honestly it hits different.


Make-Ahead Tips

This soup is one of those rare things that tastes better the next day. The beans absorb more flavor overnight and the broth thickens up beautifully.

  • Make it up to 3 days ahead and store in an airtight container in the fridge.
  • Skip the lemon juice if making ahead. Add it fresh when reheating.
  • If adding pasta, cook and store it separately to prevent it from getting mushy.

Instructions

Step 1: Saute the aromatics. Heat olive oil in your Dutch oven over medium heat. Add diced onion, carrots, and celery. Cook for 6-7 minutes, stirring occasionally, until softened and the onion turns translucent.

Step 2: Add garlic and toast the tomato paste. Add the minced garlic and cook for 1 minute. Push the vegetables to the edges. Add tomato paste to the center of the pot and let it cook undisturbed for 60-90 seconds until it darkens slightly. Then stir everything together.

Step 3: Add spices. Stir in the thyme, oregano, smoked paprika, red pepper flakes, and a generous pinch of salt and pepper. Let the spices bloom for 30 seconds.

Step 4: Add the liquids and beans. Pour in the diced tomatoes (with their juices), vegetable broth, and drained cannellini beans. Stir to combine. Bring to a boil, then reduce heat and simmer uncovered for 15 minutes.

Step 5: Blend (optional but highly recommended). Using an immersion blender, blend about half the soup directly in the pot. You want some chunks, some creaminess. This takes about 10 seconds of blending. Don’t over-blend.

Step 6: Add coconut milk and spinach. Pour in the coconut milk and stir. Add the spinach by the handful. It will wilt down in 1-2 minutes. Taste and adjust salt.

Step 7: Finish with lemon. Squeeze in the lemon juice and add the lemon zest. Give it a final stir. Ladle into bowls, top with fresh parsley, and serve with crusty bread.


Nutritional Info (Per Serving, Serves 6)

Nutrient Amount
Calories ~310 kcal
Protein 13g
Carbohydrates 38g
Fiber 10g
Fat 12g
Sodium ~480mg
Iron ~4mg (22% DV)

White beans are one of the most protein-dense plant foods out there. A single cup has more protein than two eggs. Not bad for something that costs about $1.50 a can.


Meal Pairing Suggestions

  • Serve with a simple arugula salad dressed with olive oil and shaved parmesan (or vegan parm)
  • Pair with garlic-rubbed sourdough toasts
  • A glass of light-bodied red wine (Chianti or Barbera) if you’re doing a proper dinner night
  • For the kids: crusty rolls cut into dippers work perfectly

Leftovers & Storage

Fridge: Keeps well for up to 4 days in an airtight container.

Freezer: Freeze in individual portions for up to 3 months. This soup freezes beautifully just leave out the spinach before freezing and stir in fresh spinach when reheating.

Reheating: Warm on the stovetop over medium-low heat. The soup thickens as it sits, so add a splash of broth to loosen it back up. Always add a fresh squeeze of lemon before serving leftovers.


FAQ

Can I use dried beans instead of canned? Yes! Soak 1 cup of dried cannellini beans overnight, then cook until tender before adding to the soup. Expect to add about 45 minutes to your prep time.

Is this soup actually filling enough as a main? Completely. Between the fiber from the beans, the healthy fats from coconut milk, and the vegetables, most people are full on two bowls. Serve with bread and it’s a proper dinner.

My soup is too thin. What do I do? Blend more of it. The more you blend, the creamier and thicker it gets. You can also let it simmer uncovered for another 10 minutes to reduce.

Can I make this in a slow cooker? Yes. Saute the aromatics on the stovetop first (don’t skip this step), then transfer everything except the spinach and coconut milk to the slow cooker. Cook on low for 6-8 hours. Stir in the coconut milk and spinach during the last 20 minutes.

Can I leave out the coconut milk? You can, but the texture will be thinner and less rich. If you want to skip it, blend more of the beans to compensate for the creaminess.

My kids don’t like spicy food. Help. Skip the red pepper flakes entirely and reduce the black pepper. The soup is still full of flavor without the heat.

Is this soup gluten-free? Yes, the soup itself is completely gluten-free. Just serve with gluten-free bread if that’s a concern.


Wrapping Up

This soup is proof that comfort food doesn’t need meat, doesn’t need dairy, and doesn’t need hours of your time to feel like the most satisfying thing you’ve made all week.

It’s the kind of dinner that gets requested again. And again. And then someone in the family starts making it themselves.

Make it this week and let me know in the comments how it went. Did you blend it? Did you add pasta? Did your kids actually eat it without complaints? I want to hear everything.

Leave a Comment