Soups & Stews
This all bean soup recipe transforms simple ingredients into a hearty vegetarian stew that’s packed with protein, fiber, and deep, savory flavors. The secret lies in a three-bean blend—black, kidney, and white beans—that simmers into tender perfection while absorbing the aromatic broth.
I developed this recipe after years of testing bean soups, ensuring every spoonful delivers a satisfying, restaurant-quality bite without the fuss of complicated techniques.
The beauty of this soup is its adaptability—it’s naturally vegan but can easily accommodate dairy with a swirl of cream or a sprinkle of cheese. A base of onions, garlic, and celery creates a flavorful mirepoix, while smoked paprika and bay leaves add depth.
The beans soften beautifully over 45 minutes of simmering, releasing their natural sweetness and creating a thick, velvety texture that coats every spoonful.
What makes this recipe stand out is its balance of simplicity and richness. The broth is rich enough to feel indulgent but light enough to pair with crusty bread or over rice.
Garnish with fresh parsley or a drizzle of olive oil to elevate the presentation, or keep it rustic with a sprinkle of black pepper. This soup is the ultimate comfort food—warm, nourishing, and perfect for chilly evenings or meal prep.
Best of all, it’s a one-pot wonder that requires minimal prep and cleanup. Whether you’re feeding a crowd or saving leftovers for lunches, this recipe delivers consistent, satisfying results. Let’s get cooking—your taste buds (and your freezer) will thank you.
Ingredients for all bean soup
These simple yet transformative ingredients create a velvety, restaurant-quality all-bean soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Black Beans 🌱 | 1 cup | Rinsed before cooking |
| Dried Kidney Beans 🌱 | 1 cup | Picked over for stones |
| Dried Cannellini Beans 🌱 | 1 cup | Substitute white beans |
| Yellow Onion 🧅 | 1 ½ whole | Diced into small pieces |
| Celery Stalks 🥬 | 3 whole | Chopped into small dice |
| Garlic Cloves 🧄 | 4 cloves | Minced for aromatic base |
| Smoked Paprika 🌶️ | 1 tbsp | For deep smoky flavor |
| Bay Leaves 🍃 | 2 whole | Remove before serving |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Tomato Paste 🍅 | 2 tbsp | For rich tomato depth |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin preferred |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Parsley 🌿 | ¼ cup | Chopped for garnish |
The bean trio—black, kidney, and white—forms the heart of this soup. Dried beans are ideal for this recipe; they develop more complex flavors than canned. Soak overnight for best texture, but a quick 2-hour soak in hot water works too. Trader Joe's and Whole Foods carry high-quality dried beans in bulk, but any organic brand will do. If you're short on time, canned beans work in a pinch (drain and rinse well), though they won’t have the same depth of flavor. The onions and celery form your mirepoix—chop them uniformly so they cook evenly and infuse the broth with sweetness.
No smoked paprika? Substitute with a mix of regular paprika and a pinch of liquid smoke—just be careful with the smoke, as it’s potent. Fresh parsley is ideal for garnish, but dried parsley at one-third the amount works if you're in a hurry. The tomato paste can be replaced with 1 cup of crushed tomatoes if you prefer a chunkier texture. For extra richness, stir in a splash of balsamic vinegar or red wine while simmering. The broth is the soul of this soup—homemade vegetable broth elevates it, but even store-bought low-sodium options work well. Just remember to taste and adjust the salt at the end.
This soup tastes even better the next day as the flavors meld. Store in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months—it reheats beautifully. Garnish with fresh parsley or a drizzle of olive oil right before serving to keep it vibrant. For meal prep, double the batch and freeze half; thaw overnight in the fridge before reheating. The beans will soften further, making the soup even creamier. Leftovers make fantastic lunches or a quick dinner with crusty bread.
Why You'll Love This Recipe
- I’ll be real: I used to dread the overnight soak, but this soup skips it entirely. Just toss the dried beans in a pot with plenty of water, let them simmer until tender—no fancy prep, no waiting. The black beans and kidney beans soften beautifully while the onions and celery mellow into the broth, and honestly? That’s half the battle won.
- No-Soaking Needed: I’ll be real: I used to dread the overnight soak, but this soup skips it entirely. Just toss the dried beans in a pot with plenty of water, let them simmer until tender—no fancy prep, no waiting. The black beans and kidney beans soften beautifully while the onions and celery mellow into the broth, and honestly? That’s half the battle won.
- Umami Bomb Combo: Between us, this trio of beans—earthy black, smoky kidney, and buttery cannellini—creates a flavor explosion. The onions and celery don’t just sit there; they caramelize just enough to deepen the taste, while the beans soak up every bit of savory goodness. It’s the kind of soup that makes you reach for a second bowl without thinking.
- Lunchbox Magic: This soup is my secret weapon for meal prep. Pack it warm in jars for work lunches, and it stays hearty all day—no soggy greens here. The beans hold their shape, the broth stays rich, and the onions add just enough bite to keep it interesting. (Yes, even on a Tuesday night when you’re craving something real.)
Step-by-step instructions for all bean soup
This hearty vegetarian stew delivers deep flavor and satisfying texture through precise technique.
🍳 Step 1: Sauté Aromatics Until Fragrant
Heat the 2 tablespoons olive oil in a large Dutch oven over medium heat. Add the 1.5 whole yellow onion and 3 whole celery stalks, both diced into small pieces. Cook for 8-10 minutes, stirring occasionally, until the vegetables soften and the onions become translucent.
Add the 4 cloves garlic cloves, minced, and the 1 tablespoon smoked paprika. Stir for 1-2 minutes until the garlic releases its aroma and the paprika deepens the color. This aromatic base forms the flavor foundation of your soup—don't rush this step or you'll miss the depth of flavor.
🍳 Step 2: Build the Tomato Base
Stir in the 2 tablespoons tomato paste and cook for 2-3 minutes, stirring constantly to prevent burning. This creates a rich, concentrated tomato flavor that balances the earthy beans. Add the 4 cups vegetable broth and bring the mixture to a gentle simmer.
Add the 1.5 teaspoons salt and 0.5 teaspoon black pepper, along with the 2 whole bay leaves. Stir well to combine. The broth should cover the vegetables by about an inch—if it doesn't, add a little water. This step develops the soup's base flavor before introducing the beans.
🥘 Step 3: Add Beans and Simmer
Add the 1 cup dried black beans, 1 cup dried kidney beans, and 1 cup dried cannellini beans all at once. Stir gently to distribute them evenly in the broth. Bring the soup back to a gentle boil, then reduce heat to low and maintain a steady simmer for 45-50 minutes.
Here's the thing—you'll want to check occasionally to ensure the beans don't stick to the bottom. If they start to brown too much, add a splash of broth. The beans should be tender but still hold their shape. Real talk: if you rush this step, you'll end up with mushy beans instead of the perfect al dente texture we're aiming for.
⏰ Step 4: Finish and Adjust Seasoning
Remove the 2 whole bay leaves and taste the soup. Adjust seasoning with additional salt or pepper if needed. The soup should be rich and flavorful, with a balance of smoky, earthy, and slightly sweet notes from the tomato base.
Increase heat to medium and let the soup simmer uncovered for an additional 10 minutes to allow excess moisture to evaporate and the flavors to meld. This final reduction step intensifies the taste and creates a more concentrated broth. If the soup is too thick, add a little water or broth to reach your desired consistency.
🍽️ Step 5: Garnish and Serve
Ladle the hot soup into bowls and garnish each serving with 0.25 cup fresh parsley, chopped. The parsley adds a fresh contrast to the rich, smoky flavors of the soup. Serve immediately while hot, with crusty bread to soak up every last drop of that flavorful broth.
This soup tastes even better the next day as the flavors continue to meld, so make extra if you can. The combination of textures—creamy cannellini, hearty kidney, and tender black beans—makes each spoonful satisfying. Enjoy your hearty, vegetarian-friendly all bean soup!
Pro Tips For Making All Bean Soup
- SOAK BEANS SEPARATELY: Black beans and kidney beans need different prep—soak the black beans overnight (they’re tougher) while kidney beans and cannellini only need a 4-hour soak (or a quick 2-minute boil if you’re in a rush). I learned this the hard way when my kidney beans turned to mush while the black ones stayed rock-hard.
- SWEAT ONIONS LOW: Don’t rush the onions—cook them on medium-low with a splash of water or broth until they’re translucent and just starting to caramelize. High heat burns them before they soften, and you’ll taste it in every spoonful. (Yes, even if you’re impatient like me.)
- SKIP THE CROWDED POT: If your beans are packed too tight, they’ll steam instead of simmer, leading to uneven cooking and a watery soup. Stir them down every 15 minutes, and if needed, work in batches—better to have two pots than a sad, soupy mess.
- ADD SALT LATE: Salt the soup after the beans are tender, not at the start—it’ll toughen them up. Taste the broth first, then add salt (and a splash of vinegar if it’s bland). My grandmother swore by this, and she was right: the beans stay creamy, not rubbery.
Perfect pairings for this dish
Bread Pairings
This soup is a match made in heaven with crusty sourdough or freshly baked baguettes. The dense, chewy texture of sourdough soaks up the rich broth beautifully, while a baguette offers a lighter crunch.
I like to serve it with a garlic herb loaf—just brush slices with 2 tablespoons olive oil, sprinkle with 1 teaspoon dried rosemary, and bake at 375°F for 10 minutes for extra flavor. 🥖
Cheese Toppings
Add a touch of indulgence with shredded sharp cheddar or crumbled feta—about ¼ cup per bowl. The cheddar melts slightly into the warm soup, while feta adds a briny contrast.
For a vegan option, try nutritional yeast (about 2 tablespoons) for a cheesy, umami boost. Sprinkle just before serving to keep it fresh. 🧀
Acidic Accents
Brighten the soup with a squeeze of lemon juice (about 1 teaspoon per bowl) or a drizzle of red wine vinegar. The acidity cuts through the richness and enhances the smoky paprika notes.
I also love adding pickled red onions (about 2 tablespoons) for a tangy crunch. These toppings elevate the dish without overpowering it. 🍋
Herb Garnishes
Fresh herbs transform the presentation and add freshness. Beyond parsley, try cilantro (about 2 tablespoons chopped) for a citrusy note or thyme sprigs for an earthy aroma. If you prefer dried herbs, use ½ teaspoon per bowl of either.
A sprinkle of toasted breadcrumbs (toast 2 tablespoons panko in 1 tablespoon olive oil until golden) adds texture. 🌿
Creamy Add-Ins
For extra creaminess, stir in 2 tablespoons coconut milk or 1 tablespoon Greek yogurt per bowl. The coconut milk adds a subtle sweetness, while yogurt introduces a tangy richness.
If you’re vegan, cashew cream (blend ¼ cup soaked cashews with ¼ cup water) works perfectly. Add these just before serving to maintain texture. 🥥
Spicy Kick
Turn up the heat with a dash of hot sauce (like Cholula or Tabasco) or a sprinkle of red pepper flakes (about ½ teaspoon). For a smoky heat, add ½ teaspoon chipotle powder while simmering.
If you love complexity, top with quick-pickled jalapeños (slice 1 jalapeño, soak in 1 tablespoon vinegar + 1 teaspoon sugar for 15 minutes). 🌶️
Nutrition facts
Frequently asked questions
Can I substitute canned beans for dried in this recipe?
Yes, you can use canned beans, but the flavor won't be as rich. Dried beans develop deeper flavor as they simmer. If using canned, rinse them well and reduce simmer time to 20-25 minutes instead of 45 minutes. For best results, use a mix of canned and dried beans—½ cup dried and ½ cup canned of each type.
How do I make this soup vegan?
This recipe is already vegan! Simply omit any optional dairy toppings like cheese or yogurt. For extra richness, add 2 tablespoons coconut milk or 1 tablespoon cashew cream per serving. The smoked paprika and tomato base already provide plenty of depth without animal products.
Why do my beans turn mushy?
Mushy beans usually mean overcooking or too much liquid. Always simmer gently (not a rolling boil) and check occasionally. If the broth level gets too low, add just enough water to cover the beans by 1 inch. For dried beans, 45 minutes is ideal—any longer and they'll break down.
Can I make this soup in an Instant Pot?
Sauté the aromatics as directed, then add all ingredients except beans. Pressure cook for 15 minutes, then add beans and cook on high pressure for 10 minutes. Quick-release the pressure and let sit for 5 minutes before opening. The beans will be tender but hold their shape perfectly.
What's the best way to store leftovers?
Store in an airtight container in the fridge for up to 5 days or freeze for 3 months. Reheat gently on the stove with a splash of water or broth to restore creaminess. The flavors actually improve overnight as the beans absorb more broth!
