Best Bean Soup

If you ask me, bean soup is one of those recipes that just makes sense.

This hearty soup brings together tender beans and simple vegetables in a warm, comforting bowl that feeds the whole family. The beans get creamy and soft while the vegetables add just enough texture to keep things interesting.

It’s made with pantry staples you probably already have on hand and simmers away on the stove while you go about your day. A little garlic and herbs help tie everything together.

It’s the kind of meal that fills you up without breaking the bank, perfect for those chilly nights when you want something warm and satisfying.

Bean Soup
Image: alrightwithme.com / All Rights reserved
SAVE NOW

Why You’ll Love This Bean Soup

  • Quick weeknight meal – Ready in under an hour, this soup is perfect when you want something hearty but don’t have all day to spend in the kitchen.
  • Plant-based and healthy – Packed with protein-rich cannellini beans and fresh herbs, this soup gives you a nutritious meal that’s naturally vegetarian and filling.
  • Pantry-friendly ingredients – Most of these ingredients are things you probably already have on hand, making it easy to whip up without a special grocery trip.
  • Fresh herb pesto topping – The parsley and hazelnut mixture adds a bright, fresh flavor that takes this simple soup from ordinary to restaurant-quality.
  • Budget-friendly comfort food – Canned beans and basic vegetables make this an affordable way to feed your family a warm, satisfying meal.

What Kind of Cannellini Beans Should I Use?

You can absolutely use canned cannellini beans for this soup – they’re convenient and work perfectly well. Look for cans that don’t have too much added sodium, and always give them a good rinse and drain before using. If you want to go the extra mile, dried cannellini beans will give you better texture and flavor, but you’ll need to soak them overnight and cook them beforehand, which adds quite a bit of time to your prep. Either way, cannellini beans are creamy and mild, making them perfect for soaking up all those herb flavors in the soup.

Bean Soup
Image: alrightwithme.com / All Rights reserved
SAVE NOW

Options for Substitutions

This bean soup is pretty forgiving when it comes to swaps, so here are some easy substitutions you can make:

  • Cannellini beans: Great northern beans, navy beans, or butter beans work perfectly here. If using dried beans instead of canned, soak 1½ cups overnight and cook until tender before adding to the soup.
  • Fresh herbs: Don’t worry if you only have dried herbs on hand. Use half the amount called for – so 1/8 teaspoon dried thyme and rosemary instead of 1/4 teaspoon fresh.
  • Tomato passata: You can substitute with tomato sauce, crushed tomatoes, or even tomato paste (use just 2 tablespoons mixed with a bit of water).
  • Vegetable stock: Chicken stock works great if you’re not keeping it vegetarian, or you can use water with an extra pinch of salt if that’s all you have.
  • Hazelnuts: Almonds, walnuts, or pine nuts make good substitutes. You can also skip the nuts entirely if you have allergies – the soup will still be delicious.
  • Fresh parsley: Fresh basil or cilantro can work instead, or use 2-3 tablespoons of dried parsley if fresh isn’t available.

Watch Out for These Mistakes While Cooking

The biggest mistake when making bean soup is not sautéing your aromatics long enough – cook the onion until it’s soft and translucent (about 5-6 minutes) and let the garlic become fragrant for just 30 seconds to build a proper flavor base.

Another common error is adding all the liquid at once, which can make the soup too thin – start with less stock and gradually add more until you reach your desired consistency, since canned beans release their own liquid as they cook.

Don’t forget to remove that bay leaf before serving (nobody wants to bite into one!), and when making the herb oil topping, pulse the parsley mixture just until roughly chopped – over-processing will turn it into a paste instead of a chunky, fresh garnish.

For the best texture, mash about half the beans against the side of the pot with a wooden spoon during the last few minutes of cooking to naturally thicken the soup.

Bean Soup
Image: alrightwithme.com / All Rights reserved
SAVE NOW

What to Serve With Bean Soup?

This hearty bean soup is perfect with some crusty bread for dipping – I love using a good sourdough or rustic Italian loaf to soak up all those wonderful flavors. The soup is filling enough to be a meal on its own, but if you want to make it even more substantial, try serving it alongside a simple green salad with lemon vinaigrette or some roasted vegetables like zucchini or bell peppers. For a cozy dinner, I sometimes add a side of garlic bread or serve it over some cooked pasta like small shells or ditalini to make it more like a pasta e fagioli. The fresh herb and hazelnut flavors in this soup also pair nicely with a glass of crisp white wine if you’re looking to make it feel a bit more special.

Storage Instructions

Refrigerate: This bean soup actually gets better after a day or two in the fridge! Store it in an airtight container for up to 5 days. The flavors really meld together nicely, making it perfect for meal prep. I like to make a big batch on Sunday and enjoy it throughout the week.

Freeze: Bean soup freezes wonderfully for up to 3 months in freezer-safe containers or bags. Just leave a little room at the top since it will expand when frozen. I often portion it out into individual servings so I can grab just what I need for a quick lunch.

Warm Up: Gently reheat your soup on the stovetop over medium-low heat, stirring occasionally until heated through. You might need to add a splash of vegetable stock or water if it’s gotten too thick. From frozen, let it thaw overnight in the fridge first, then warm it up the same way.

Preparation Time 10-15 minutes
Cooking Time 31-40 minutes
Total Time 41-55 minutes
Level of Difficulty Medium

Estimated Nutrition

Estimated nutrition for the whole recipe (without optional ingredients):

  • Calories: 1400-1600
  • Protein: 55-65 g
  • Fat: 40-50 g
  • Carbohydrates: 190-210 g

Ingredients

For the soup:

  • 1 tbsp extra-virgin olive oil
  • 1 large garlic clove, minced
  • 1 large brown onion (about 6 oz), chopped fine
  • 1/4 tsp chopped fresh thyme (or 1/8 tsp dried)
  • 1/4 tsp chopped fresh rosemary (or 1/8 tsp dried)
  • 1 bay leaf (fresh or 1/2 dried)
  • 1/3 cup tomato passata
  • 4 cans (14 oz each) cannellini beans, rinsed and drained
  • 3 cups vegetable stock

For the picada:

  • 1 cup roughly chopped fresh parsley leaves (lightly packed)
  • 1 medium garlic clove, chopped
  • 2 tbsp extra-virgin olive oil
  • 1/4 cup whole hazelnuts, skin on (or substitute almonds)
  • 1/2 tsp kosher or cooking salt (or 1/4 tsp table salt)

Step 1: Toast and Prepare the Hazelnuts

  • 1/4 cup whole hazelnuts, skin on (or substitute almonds)

Preheat a small skillet over medium heat.

Add the whole hazelnuts and toast, shaking the skillet regularly, until golden patches appear and they release a nutty aroma.

Transfer the toasted hazelnuts to a clean tea towel and bundle them up, rubbing vigorously with your hands to remove most of the skin.

The skin is bitter, so removing as much as possible enhances the flavor.

(If you use almonds, you can skip this skin-removing step.) Once skinned, roughly chop the hazelnuts to prepare them for the Picada.

Step 2: Prepare the Picada (Parsley Nut Paste)

  • 1 cup roughly chopped fresh parsley leaves (lightly packed)
  • 1 medium garlic clove, chopped
  • 2 tbsp extra-virgin olive oil
  • 1/4 cup whole hazelnuts, skin on (or substitute almonds), toasted and chopped from Step 1
  • 1/2 tsp kosher or cooking salt (or 1/4 tsp table salt)

In a jug or container just large enough to fit the head of a stick blender, combine the roughly chopped toasted hazelnuts from Step 1, chopped parsley, chopped garlic, 2 tablespoons of extra-virgin olive oil, and kosher or cooking salt.

Blitz the mixture with a stick blender until you have a pesto-like paste—it should remain slightly chunky and not be completely smooth.

Set aside; you’ll stir most of it into the soup and reserve a little for serving.

I like to leave the Picada a bit coarse for more texture in each spoonful.

Step 3: Saute Onion, Garlic, and Herbs

  • 1 tbsp extra-virgin olive oil
  • 1 large garlic clove, minced
  • 1 large brown onion (about 6 oz), chopped fine
  • 1/4 tsp chopped fresh thyme (or 1/8 tsp dried)
  • 1/4 tsp chopped fresh rosemary (or 1/8 tsp dried)
  • 1 bay leaf (fresh or 1/2 dried)

Heat 1 tablespoon of extra-virgin olive oil in a large heavy-based pot over medium heat.

Add the minced garlic, finely chopped onion, chopped thyme, chopped rosemary, and the bay leaf.

Cook, stirring regularly, for about 8 minutes or until the onions are deeply golden brown and sweet.

This long, gentle sauté develops a rich flavor foundation for your soup.

Step 4: Cook Tomato Passata

  • 1/3 cup tomato passata

Add the tomato passata to the onion and herb base from Step 3.

Reduce the heat to low and cook for another 8 minutes, stirring occasionally, until the passata has thickened significantly and turns from watery red to a deep, dark brown.

Don’t rush this part; it’s crucial for building an intense, savory flavor in the soup.

Personally, I never skimp on this step—it’s where the magic happens!

Step 5: Simmer Beans and Broth

  • 4 cans (14 oz each) cannellini beans, rinsed and drained
  • 3 cups vegetable stock

Stir the rinsed and drained cannellini beans into the thickened tomato base from Step 4, followed by the vegetable stock.

Increase the heat if needed and bring to a very gentle simmer.

Cook with the lid off for 15 minutes to allow flavors to meld and the broth to reduce slightly.

Step 6: Blend a Portion of the Soup

Transfer about 2/3 cup (150ml) of soup into a jug or jar just large enough for your stick blender.

Blend until smooth, then pour this thickened portion back into the pot and stir.

This gives the soup a creamy and hearty texture without adding cream.

I sometimes add a splash of water if the soup gets too thick at this stage.

Step 7: Finish with Picada and Serve

Just before serving, stir 2 tablespoons of the Picada (from Step 2) into the hot soup and taste to adjust the seasoning with more salt if needed.

Ladle the soup into bowls and dollop each with 1 teaspoon of the reserved Picada.

Enjoy immediately!

I highly recommend serving this soup alongside plenty of crusty bread to soak up all the soup’s wonderful flavors.

Bean Soup

Best Bean Soup

Delicious Best Bean Soup recipe with step-by-step instructions.
Prep Time 16 minutes
Cook Time 32 minutes
Total Time 48 minutes
Servings 4
Calories 1500 kcal

Ingredients
  

For the soup:

  • 1 tbsp extra-virgin olive oil
  • 1 large garlic clove, minced
  • 1 large brown onion (about 6 oz), chopped fine
  • 1/4 tsp chopped fresh thyme (or 1/8 tsp dried)
  • 1/4 tsp chopped fresh rosemary (or 1/8 tsp dried)
  • 1 bay leaf (fresh or 1/2 dried)
  • 1/3 cup tomato passata
  • 4 cans (14 oz each) cannellini beans, rinsed and drained
  • 3 cups vegetable stock

For the picada:

  • 1 cup roughly chopped fresh parsley leaves (lightly packed)
  • 1 medium garlic clove, chopped
  • 2 tbsp extra-virgin olive oil
  • 1/4 cup whole hazelnuts, skin on (or substitute almonds)
  • 1/2 tsp kosher or cooking salt (or 1/4 tsp table salt)

Instructions
 

  • Preheat a small skillet over medium heat. Add the whole hazelnuts and toast, shaking the skillet regularly, until golden patches appear and they release a nutty aroma. Transfer the toasted hazelnuts to a clean tea towel and bundle them up, rubbing vigorously with your hands to remove most of the skin. The skin is bitter, so removing as much as possible enhances the flavor. (If you use almonds, you can skip this skin-removing step.) Once skinned, roughly chop the hazelnuts to prepare them for the Picada.
  • In a jug or container just large enough to fit the head of a stick blender, combine the roughly chopped toasted hazelnuts from Step 1, chopped parsley, chopped garlic, 2 tablespoons of extra-virgin olive oil, and kosher or cooking salt. Blitz the mixture with a stick blender until you have a pesto-like paste—it should remain slightly chunky and not be completely smooth. Set aside; you’ll stir most of it into the soup and reserve a little for serving. I like to leave the Picada a bit coarse for more texture in each spoonful.
  • Heat 1 tablespoon of extra-virgin olive oil in a large heavy-based pot over medium heat. Add the minced garlic, finely chopped onion, chopped thyme, chopped rosemary, and the bay leaf. Cook, stirring regularly, for about 8 minutes or until the onions are deeply golden brown and sweet. This long, gentle sauté develops a rich flavor foundation for your soup.
  • Add the tomato passata to the onion and herb base from Step 3. Reduce the heat to low and cook for another 8 minutes, stirring occasionally, until the passata has thickened significantly and turns from watery red to a deep, dark brown. Don’t rush this part; it’s crucial for building an intense, savory flavor in the soup. Personally, I never skimp on this step—it's where the magic happens!
  • Stir the rinsed and drained cannellini beans into the thickened tomato base from Step 4, followed by the vegetable stock. Increase the heat if needed and bring to a very gentle simmer. Cook with the lid off for 15 minutes to allow flavors to meld and the broth to reduce slightly.
  • Transfer about 2/3 cup (150ml) of soup into a jug or jar just large enough for your stick blender. Blend until smooth, then pour this thickened portion back into the pot and stir. This gives the soup a creamy and hearty texture without adding cream. I sometimes add a splash of water if the soup gets too thick at this stage.
  • Just before serving, stir 2 tablespoons of the Picada (from Step 2) into the hot soup and taste to adjust the seasoning with more salt if needed. Ladle the soup into bowls and dollop each with 1 teaspoon of the reserved Picada. Enjoy immediately! I highly recommend serving this soup alongside plenty of crusty bread to soak up all the soup's wonderful flavors.

Disclaimer

Our editors have used AI to create or enhance parts of this article. All content has been fact-checked by our team to ensure accuracy.

Leave a Comment

Recipe Rating




Add Photo
(optional)
Images must be:
  • PNG, GIF, JPEGs, WEBP only
  • Minimum 960x960
  • Max size: 30MB
Share a photo of your cooked dish!

×
Pinterest Logo
Follow me on Pinterest for FREE Daily Recipes!
Follow on Pinterest
Recipe

📸 Do you have a photo of your dish?

Help others see how your recipe turned out!