Soups & Stews
This vegan 12 bean soup transforms simple pantry staples into a protein-packed, hearty meal that’s perfect for chilly days or meal prep. The secret lies in toasting spices and combining dried beans for depth—no fancy ingredients required. I’ve perfected this recipe to deliver rich, smoky flavors while keeping it entirely plant-based, proving comfort food doesn’t need dairy or meat to shine.
The beauty of this soup is its versatility—it’s foolproof for beginners but packed with techniques (like browning onions and deglazing the pot) that elevate it to restaurant-quality. Simmering all day develops layers of flavor, while the beans soften just enough to hold their shape. What you’ll end up with is a thick, satisfying broth loaded with tender beans, aromatic vegetables, and a touch of smoky heat.
Beyond its deliciousness, this soup is a nutritional powerhouse: one serving delivers over 20 grams of plant-based protein and fiber to keep you full for hours. The combination of beans—black, kidney, pinto, and more—creates a complex texture and flavor profile that’s impossible to resist. Serve it with crusty bread or over rice to soak up every last drop of that savory broth.
Ready in just 2 hours (mostly hands-off simmering), this recipe is ideal for feeding a crowd or prepping meals for the week. The leftovers taste even better the next day as flavors meld further. Let’s get cooking—your pantry is about to become a protein powerhouse.
Ingredients for 12 bean soup recipe vegan
Pantry staples, dried beans, and a few fresh veggies—this soup delivers restaurant-quality flavor without meat or dairy.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Black Beans 🌱 | 1 ½ cups | Rinsed before cooking |
| Dried Kidney Beans 🌱 | 1 cup | Rinsed before cooking |
| Dried Pinto Beans 🌱 | 1 cup | Rinsed before cooking |
| Dried Navy Beans 🌱 | ½ cup | Rinsed before cooking |
| Dried Chickpeas 🌱 | ½ cup | Rinsed before cooking |
| Dried Great Northern Beans 🌱 | ½ cup | Rinsed before cooking |
| Dried Lentils 🌱 | ½ cup | Brown or green preferred |
| Yellow Onions 🧅 | 2 whole | Diced, yellow or red |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| Carrots 🥕 | 3 whole | Diced, medium size |
| Celery Stalks 🌿 | 3 whole | Diced, fresh preferred |
| Tomato Paste 🍅 | ¼ cup | Smooth, no sugar added |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred |
| Smoked Paprika 🌶️ | 1 tbsp | For smoky depth |
| Ground Cumin 🌿 | 1 tbsp | Toasted for flavor |
| Dried Oregano 🍃 | 1 tsp | Mexican preferred |
| Bay Leaves 🌿 | 2 whole | Fresh or dried |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For sautéing |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Peppercorns 🌶️ | ½ tsp | Freshly ground |
| Fresh Thyme Leaves 🌿 | 1 tbsp | Chopped, optional |
The beans are the star, so pick a mix of textures—black beans for creaminess, kidney beans for heartiness, and lentils for quick cooking. Bob’s Red Mill or Trader Joe’s bulk bins have great options, but any dried beans from the grocery store work. Rinse them well before adding to the pot—this removes debris and speeds up cooking. For even more depth, soak the beans overnight, but I skip this step when I’m short on time. The soup still turns out rich and flavorful, just with slightly firmer beans. Toasting the spices in olive oil at the start? That’s where the magic happens—it builds a smoky base that carries through the whole dish.
No smoked paprika? Substitute with half the amount of liquid smoke—just a teaspoon—but don’t overdo it. Short on vegetable broth? Water plus a bouillon cube works in a pinch, though the flavor won’t be as complex. Fresh thyme is ideal, but dried thyme at one-third the amount gets you close. The tomato paste can be swapped for 1 can of crushed tomatoes if you’re in a hurry, though the paste gives a deeper, more concentrated flavor. For extra richness, stir in 1 tablespoon of nutritional yeast at the end—it adds a cheesy, umami kick without dairy. And if you’re prepping ahead, freeze the cooked beans and broth separately—just thaw and reheat when ready.
This soup tastes even better the next day as flavors meld, so make a double batch if you can. Store in the fridge for 5-6 days or freeze for up to 3 months. The broth thickens as it cools, so add a splash of water when reheating if it’s too stiff. For serving, I love it with crusty sourdough or cornbread—the bread soaks up the broth beautifully. If you’re meal prepping, portion into containers with a side of rice or quinoa. The beans hold their shape perfectly, so you won’t get mushy leftovers. And trust me, the smell alone will have everyone rushing to the kitchen.
Why You'll Love This Recipe
- I’ll be real: I used to dread soaking beans. Not here—just toss those dried pintos, navies, and chickpeas in a pot with water and simmer overnight. Woke up to a ready-to-finish pot of soup. That’s 20 minutes less work and no counter clutter.
- No-Soaking Needed: I’ll be real: I used to dread soaking beans. Not here—just toss those dried pintos, navies, and chickpeas in a pot with water and simmer overnight. Woke up to a ready-to-finish pot of soup. That’s 20 minutes less work and no counter clutter.
- Texture Magic: Between us, the contrast is what makes this ridiculous good. Crunchy kidney beans bite back against the creamy black beans, while the chickpeas add that buttery bite. Add a handful of toasted cumin seeds at the end, and you’ve got layers—no fancy technique, just flavor.
- Pot Luck Hero: This is my go-to for game day, potlucks, or when I’m too tired to plan. Serve it warm with crusty bread or cold in jars for lunch all week. Honestly, I’ve even brought it to book clubs—it’s the one dish that never gets skipped.
Step-by-step instructions for 12 bean soup vegan
Transform pantry staples into a rich, protein-packed vegan masterpiece with this method.
🍳 Step 1: Sauté the Vegetable Base
Heat the 2 tablespoons extra-virgin olive oil in a large Dutch oven over medium heat. Add the 2 whole diced yellow onions, 3 whole diced carrots, and 3 whole diced celery stalks. Cook for 5-6 minutes until the vegetables soften and the onions become translucent.
Add the 6 cloves minced garlic and cook for another 30 seconds until fragrant. Here's the thing—don't let the garlic burn. If it starts to darken too quickly, reduce the heat slightly. The goal is a sweet, aromatic base that won't overpower the beans.
🍳 Step 2: Toast the Spices and Add Tomato Paste
Stir in the 1 tablespoon smoked paprika, 1 tablespoon ground cumin, and 1 teaspoon dried oregano. Toast the spices for 1 minute until the mixture smells deeply aromatic. This step develops the spice flavors before they're submerged in liquid.
Add the 0.25 cup tomato paste and stir for 2 minutes until it darkens slightly and coats the vegetables. This creates a rich, umami foundation that will carry through the entire soup. If the mixture starts to stick, add 1-2 tablespoons vegetable broth to loosen it.
🥘 Step 3: Combine All Beans and Broth
Add all the rinsed dried beans—1.5 cups black beans, 1 cup kidney beans, 1 cup pinto beans, 0.5 cup navy beans, 0.5 cup chickpeas, and 0.5 cup lentils—to the pot. Pour in the 6 cups vegetable broth and bring to a boil over high heat. Once boiling, reduce to a simmer and add the 2 whole bay leaves.
Real talk: this is where patience pays off. The beans need time to soften and absorb flavors. Let it simmer uncovered for 45-60 minutes, stirring occasionally. You'll know it's ready when the beans are tender but still hold their shape—no mushy texture here.
⏰ Step 4: Season and Finish the Soup
After the beans are tender, stir in the 1.5 teaspoons salt and 0.5 teaspoon freshly ground black peppercorns. Remove the 2 bay leaves and add the 1 tablespoon chopped fresh thyme leaves and 2 tablespoons lemon juice. Simmer for another 5 minutes to let the flavors meld.
This is the moment that matters: taste and adjust seasoning. The lemon juice brightens the soup, while the thyme adds an herbal depth. If it needs more acidity, add another splash of lemon. If it needs more salt, add it gradually—you can't take it out once it's in.
🍽️ Step 5: Rest and Serve
Let the soup sit off heat for 10 minutes before serving. This resting period allows the flavors to fully develop and the beans to continue absorbing the broth. Serve warm with crusty bread or over rice to soak up every last bit of that hearty, protein-rich goodness.
Each spoonful delivers a symphony of textures and flavors—creamy chickpeas, hearty lentils, and tender beans all swimming in a deeply seasoned broth. The smoky paprika and bright lemon juice create a balance that makes this vegan soup anything but boring.
Pro Tips For Making 12 Bean Soup Recipe Vegan
- SOAK BEANS OVERNIGHT: I learned this the hard way—rushing soaks with hot water just makes them tough. Cold water overnight (or at least 8 hours) softens them properly, and you won’t waste time simmering for extra hours. Use a big bowl, cover with plenty of water, and add a pinch of baking soda to help break down those stubborn skins.
- SIMMER LOW AND LONG: This isn’t a quick fix—crank the heat to boil first, then drop it to a bare simmer. Too high, and your beans turn mushy; too low, and they’ll never soften. A gentle roll every 30 minutes keeps flavors melding without breaking down the texture. Navy beans take the longest—don’t rush them.
- SKIP THE SALT UNTIL LATER: Adding salt early hardens beans and makes them gummy. Wait until they’re tender, then season with a full teaspoon of salt per quart of liquid. If you’re using smoked paprika or chili powder, add those last too—they’ll mellow out over time instead of hitting you like a wall of flavor.
- USE CHICKPEAS LAST: Chickpeas cook faster than the others, so add them in the final 30 minutes. If you throw them in at the start, they’ll turn to mush while waiting for the navy beans. Pro move: Rinse canned chickpeas if you’re shortcutting, but don’t skip the final simmer—they’ll absorb the broth better.
Pro cooking tips for 12 bean soup recipe vegan
Bean Prep Secrets
Rinsing beans thoroughly before cooking removes debris and speeds up hydration—don’t skip this step! For extra flavor, I toast the beans in a dry skillet for 2-3 minutes until fragrant before adding them to the pot. This caramelizes their natural sugars, creating a deeper, nuttier base. If short on time, use canned beans (drained and rinsed) but reduce broth by 1 cup to maintain thickness. 🌱
Spice Toasting Magic
The key to rich flavor is toasting spices in olive oil before adding liquid—this releases their essential oils. Heat 1 tbsp smoked paprika and 1 tbsp cumin in the same pot you’ll cook the soup for 1 minute until aromatic. The resulting aroma alone transforms a basic soup into something restaurant-worthy. For extra depth, add a pinch of ground coriander or fenugreek to the spice blend. ✨
Broth Boosters
Vegetable broth is the foundation, but you can elevate it further. Add 1 diced carrot, 1 celery stalk, and ½ onion to the broth while simmering to infuse extra flavor. For umami depth, stir in 1 tbsp soy sauce or 1 tsp miso paste during the final 10 minutes of cooking. If using low-sodium broth, add an extra ½ tsp salt at the end. 💫
Texture Control
To prevent mushy beans, never overcook them—test doneness by mashing one between your fingers. They should be tender but still hold their shape. For a creamier texture, blend ½ cup of the soup with ¼ cup water and stir it back in at the end. If the soup is too thick after simmering, add ½ cup hot water to reach your desired consistency. 💡
Flavor Layering
Add acidity and brightness at the end with 2 tbsp lemon juice and 1 tbsp apple cider vinegar to cut through the richness. For a smoky finish, sprinkle ½ tsp liquid smoke or an extra pinch of smoked paprika just before serving. Fresh herbs like cilantro or parsley add a vibrant contrast—toss them in during the final 5 minutes of cooking. 🌿
Make-Ahead Mastery
This soup tastes even better the next day as flavors meld. Store in an airtight container in the fridge for up to 5 days or freeze for 3 months. When reheating, add 2-3 tbsp water to prevent thickening. For meal prep, portion into containers with a side of rice or quinoa—it reheats beautifully and maintains texture. The beans actually soften further, making leftovers even more comforting. 🔥
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried for this vegan bean soup?
Yes, but adjust the liquid! Use 2.5 cups total canned beans (drained and rinsed) and reduce the vegetable broth by 1 cup to maintain the right thickness. Canned beans cook faster, so simmer for only 20-25 minutes after adding them. For best texture, mix canned and dried—try 1 cup dried (simmered first) plus 1.5 cups canned.
How do I make this soup spicier or smokier?
For heat, add ½ teaspoon cayenne or 1 teaspoon chili powder with the spices. For smokiness, increase smoked paprika to 2 tablespoons or add ½ teaspoon liquid smoke at the end. For depth, toast 1 teaspoon ground chipotle in the oil before adding other spices—this adds a subtle, complex heat without overpowering.
Why did my beans turn mushy?
Overcooking is the most common cause! Test beans by mashing one between your fingers—they should be tender but still hold their shape. If they break apart, reduce simmering time by 10-15 minutes next time. Also, never cover the pot while simmering (keep it uncovered) to prevent steam from making them too soft. For extra firmness, add ½ teaspoon baking soda to the pot when boiling (rinse beans first).
Can I make this soup in an Instant Pot?
Sauté the onions, carrots, celery, and garlic first. Then add all spices, tomato paste, beans, and broth. Cook on high pressure for 20 minutes, then quick-release. Finish with lemon juice and thyme. The Instant Pot cuts cooking time to 30 minutes total—just stir occasionally to prevent sticking. For best texture, use a 1:1 ratio of dried to canned beans (e.g., 1 cup dried + 1 cup canned).
What’s the best way to reheat leftovers?
Reheat gently on the stove over low heat with 2-3 tablespoons water to prevent thickening. Never microwave directly from the fridge—this makes beans gummy. For even better results, transfer to a pot with ½ cup fresh broth and simmer for 5-10 minutes. Leftovers actually improve as flavors meld! Store in the fridge for 5 days or freeze for 3 months.
