Soups & Stews
This vegetarian 9 bean soup delivers the ultimate winter comfort—rich, hearty, and packed with plant-based protein. The secret lies in balancing nine different beans for texture and depth, while aromatic vegetables and herbs create layers of flavor that warm you from the inside out.
After years of perfecting this recipe, I’ve developed a method that ensures tender beans and a broth so flavorful it’ll have everyone asking for seconds.
The beauty of this soup is its simplicity: no fancy techniques, just a slow simmer that transforms dried beans into tender, flavorful bites. We start with a sofrito of onions, garlic, and celery for the foundation, then add smoked paprika and bay leaves for that earthy, smoky depth.
The result is a soup that’s both satisfying and nourishing—ideal for cold evenings or cozy gatherings.
What makes this recipe special is how it comes together. The beans soak overnight for maximum tenderness, while the broth develops rich, complex flavors as it simmers.
By the time you’re ready to serve, you’ll have a steaming bowl of comfort food that’s hearty enough to stand alone or pair perfectly with crusty bread. Every spoonful delivers a mix of textures and flavors that make it irresistible.
The best part? This soup tastes even better the next day, making it perfect for meal prep. Whether you’re feeding a crowd or saving leftovers for lunch, it’s a recipe that delivers warmth, satisfaction, and a touch of rustic charm. Let’s get cooking!
Ingredients for 9 bean soup recipe vegetarian
Nine beans, one pot, endless comfort—this is winter dining at its heartiest.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Navy Beans 🌱 | 1 cup | Rinsed before soaking |
| Dried Black Beans 🌱 | 1 cup | Rinsed before soaking |
| Dried Kidney Beans 🌱 | 1 cup | Rinsed before soaking |
| Dried Pinto Beans 🌱 | 1 cup | Rinsed before soaking |
| Dried Chickpeas 🌱 | 1 cup | Rinsed before soaking |
| Dried Lentils 🌱 | ½ cup | Green or brown preferred |
| Dried White Beans 🌱 | ½ cup | Rinsed before soaking |
| Dried Butter Beans 🌱 | ½ cup | Rinsed before soaking |
| Dried Cannellini Beans 🌱 | ½ cup | Rinsed before soaking |
| Yellow Onion 🧅 | 1 whole | Diced, about 1.5 cups |
| Celery Stalks 🥬 | 3 whole | Diced, about 1 cup |
| Garlic Cloves 🧄 | 4 cloves | Minced, for depth |
| Smoked Paprika 🌶️ | 2 tsp | For earthy smokiness |
| Bay Leaves 🌿 | 2 whole | For aromatic depth |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For sautéing vegetables |
| Fresh Thyme 🌿 | 1 tbsp | Chopped, or 1 tsp dried |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
The beans are the soul of this soup, so pick quality dried beans—look for organic or heirloom varieties at Whole Foods or bulk bins for the best flavor. I always grab a mix of sizes for texture contrast: the navy and black beans hold their shape, while lentils and chickpeas break down beautifully. Soaking overnight (or quick-soaking with boiling water) is non-negotiable—it makes them tender without losing their structure. Pro tip: Save the soaking water—it’s packed with flavor and perfect for thinning the soup later.
No smoked paprika? Substitute with a pinch of liquid smoke plus extra paprika—it’s a game-changer for that rustic depth. Short on thyme? Dried oregano at half the amount works in a pinch, but fresh thyme is ideal (I grab it from the Trader Joe’s bulk section). The vegetable broth can be homemade (use your saved bean soaking water!) or a high-quality store-bought like Pacific Foods. For extra richness, stir in a spoonful of nutritional yeast at the end—it adds a cheesy, umami kick without dairy. And if you’re feeling fancy, top with crispy toasted breadcrumbs for crunch.
This soup tastes even better the next day—make a double batch and freeze half for lazy weeknights. Store leftovers in the fridge for 5-6 days or freeze for up to 3 months (portion into containers for easy reheating). The beans soften further when reheated, so add a splash of broth if it gets too thick. Garnish with fresh parsley right before serving—it brightens up the earthy flavors. Trust me, the first bowl won’t be the last.
Why You'll Love This Recipe
- I’ll be real: I used to dread soaking beans. Not here. Just toss those dried navies, blacks, and pintos into boiling water with a bay leaf—no prep, no fuss. Twenty minutes later, they’re tender and ready to soak up all that smoky paprika and garlic.
- No-Soaking Hassle: I’ll be real: I used to dread soaking beans. Not here. Just toss those dried navies, blacks, and pintos into boiling water with a bay leaf—no prep, no fuss. Twenty minutes later, they’re tender and ready to soak up all that smoky paprika and garlic.
- Texture Magic: Between us, the contrast is chef’s kiss—creamy chickpeas, meaty kidney beans, and those little navy beans that just melt into the broth. Honestly, I’ve tried other bean soups, but this one has that perfect bite and softness that makes you want to eat it straight from the pot.
- Potluck Star: This is my go-to for gatherings. It’s hearty enough to feed a crowd but simple enough to bring in a disposable container. (Yes, even on a Tuesday night.) The flavors only get better the next day, so you can make it ahead and still impress.
Step-by-step instructions for 9 bean vegetarian soup
This hearty blend of nine different beans creates a rich, satisfying soup that's perfect for chilly days.
👨🍳 Step 1: Prepare the Beans for Cooking
First, sort through all the dried beans to remove any small stones or debris. Place each type of bean in separate bowls and rinse them thoroughly under cold water. This step removes any dust or impurities that might affect the flavor. After rinsing, cover each type with plenty of cold water—about 3 cups per cup of beans—and let them soak for at least 8 hours or overnight. Soaking reduces cooking time and makes the beans more digestible. I like to soak them in the refrigerator to keep them fresh.
When ready to cook, drain the soaked beans and give them a quick rinse again. This removes any excess starch that could make the soup too thick. Set them aside in a large pot—you'll use all 4.5 cups of dried beans (including the 0.5 cup dried lentils) for this recipe. The variety of beans gives this soup incredible texture and depth of flavor.
🍳 Step 2: Sauté the Aromatics
Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven or heavy pot over medium heat. Add the diced yellow onion and diced celery stalks (about 2.5 cups total) and cook for 5-6 minutes, stirring occasionally, until the vegetables soften and become translucent. This step builds the flavor foundation of your soup.
Add the minced garlic cloves and cook for another 30 seconds until fragrant. Be careful not to let the garlic burn—it should smell sweet and inviting, not bitter. Stir in the 2 teaspoons smoked paprika and cook for 30 seconds to toast the spices, which deepens their flavor. This aromatic base will infuse the entire soup with warmth and complexity.
🥘 Step 3: Combine and Simmer the Soup
Add the drained beans, 2 whole bay leaves, and 6 cups vegetable broth to the pot. Bring the mixture to a boil over high heat, then immediately reduce the heat to low and let it simmer gently. The soup should bubble softly—if it boils too vigorously, it might foam over. Cover the pot and let it cook for 45-60 minutes, stirring occasionally to prevent the beans from sticking to the bottom.
After about 30 minutes, taste the soup and adjust the seasoning with salt and black pepper as needed. The beans should be tender but still hold their shape. If the soup becomes too thick, add a little more broth or water to reach your desired consistency. The lentils will cook faster than the other beans, so keep an eye on them to ensure they don't become mushy.
⏰ Step 4: Finish and Garnish
Once all the beans are tender, remove the 2 bay leaves from the soup. Stir in the 1 tablespoon chopped fresh thyme and let the soup simmer uncovered for another 5 minutes to allow the flavors to meld together. This final step ensures the soup tastes cohesive and well-balanced.
Ladle the soup into bowls and garnish each serving with 1 tablespoon chopped fresh parsley. The parsley adds a bright, fresh contrast to the earthy, hearty flavors of the beans. Serve immediately with crusty bread or over a bed of greens for a complete meal. This soup is even better the next day as the flavors continue to develop, so make extra if you can!
Pro Tips For Making 9 Bean Soup Recipe Vegetarian
- SOAK BEANS IN TWO STAGES: Dried beans need patience, but skipping the overnight soak leads to tough, mealy results. Start by covering them in cold water for 2 hours, then drain and rinse. After that, add fresh water and let them sit another 6-8 hours—this breaks down the skins better than a rushed soak.
- SORT BEANS BY SIZE: Mixing beans of wildly different sizes means some will turn to mush while others stay rock-hard. Separate the navy and pinto beans (smaller) from the kidney and black beans (larger) before cooking. Smaller beans cook faster, so pull them out 15-20 minutes earlier if needed.
- SIMMER, DON’T BOIL: A rolling boil destroys the texture of beans, turning them mushy instead of tender. Keep the heat low enough that only tiny bubbles break the surface—this takes longer but guarantees creamy, intact beans. Cover the pot and stir occasionally to prevent scorching.
- COOK CHICKPEAS SEPARATELY: Chickpeas have a different texture and cooking time than the other beans, and forcing them into the mix too early makes the soup uneven. Par-cook them for 45 minutes before adding them to the pot with the rest—this way, they absorb flavors without falling apart.
Storing and reheating this dish
Refrigerator Storage
Store your 9 bean soup in an airtight container (I love Glasslock containers) for up to 5 days in the fridge. Let it cool completely before transferring to avoid condensation, which can make the beans soggy.
The flavors actually deepen overnight—this is when all those earthy bean notes meld beautifully together. Just before serving, give it a quick stir and add a splash of vegetable broth if it’s too thick. 💫
Freezer Prep Tips
For long-term storage, freeze portions in quart-sized freezer bags (lay them flat to save space). Portion into 2-cup servings so you can thaw exactly what you need. Leave ½-inch headspace for expansion, and squeeze out excess air to prevent freezer burn.
Label with the date—this soup keeps well for 3 months without losing quality. 🧊
Reheating Perfection
For stovetop reheating, transfer soup to a pot and heat over medium-low with ¼ cup broth to restore moisture. Simmer for 10-15 minutes, stirring occasionally, until heated through (165°F internal temp).
If using the microwave, cover with a damp paper towel and heat in 1-minute intervals, stirring between each. Add more broth if needed—the beans absorb moisture while stored. 🔥
Reviving Texture
If your reheated soup seems too thick, thin with ¼ cup broth or water. For extra richness, stir in 1 tablespoon olive oil or a spoonful of nutritional yeast—this restores body while adding depth.
Garnish with fresh parsley right before serving to brighten the flavors. I always make a double batch because leftovers reheat even better than the original! ✨
Make-Ahead Magic
This soup is perfect for meal prep! Cook a double batch and freeze half for future meals. When ready to serve, thaw overnight in the fridge, then reheat gently.
The beans soften further during storage, creating an even creamier texture. Pro tip: Add a pinch of smoked paprika when reheating to revive that smoky flavor. 💡
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried for this recipe?
You can absolutely use canned beans, but with a few adjustments! Use 2 (15 oz) cans of each bean type (about 3 cups total) instead of dried. Drain and rinse them thoroughly to remove excess sodium. The texture will be slightly softer, but the flavor will still be rich and satisfying. For best results, combine canned beans with some cooked dried beans (like lentils) to maintain variety.
How do I make this soup spicier?
For extra heat, add ½ teaspoon cayenne pepper or 1 tablespoon hot sauce while simmering. You can also stir in 1 diced jalapeño or ½ teaspoon chipotle powder for smoky spice. For a creamy kick, blend ½ cup soup with ¼ cup coconut milk and stir it back in. Always taste as you go!
Why did my beans turn mushy?
Mushy beans usually mean overcooking or under-soaking. Lentils and chickpeas cook fastest—remove them early if needed. For future batches, soak beans for 8+ hours (or quick-soak with boiling water for 2 minutes). Simmer gently at low heat and avoid boiling vigorously. If the soup is too thick, add broth gradually instead of rushing the cooking time.
What’s the best way to serve this soup?
This hearty soup pairs perfectly with crusty bread, cornbread, or tortilla chips for scooping. For extra flair, top with avocado slices, a dollop of Greek yogurt, or a sprinkle of feta cheese. It’s also delicious over mashed potatoes or with a side salad for a complete meal. The smoky, earthy flavors make it ideal for cold weather gatherings!
Can I make this soup in an Instant Pot?
Yes! Sauté the onions, celery, and garlic as directed, then add all beans, broth, and spices. Seal the lid and cook on high pressure for 20 minutes, then quick-release. Finish with thyme and parsley. The Instant Pot cuts cooking time significantly while keeping the beans tender. Just be sure to stir occasionally to prevent sticking!
