Soups & Stews
This bean medley soup recipe transforms humble pantry staples into a hearty, protein-packed masterpiece that simmers with deep, earthy flavors. The secret lies in balancing three types of beans—kidney, black, and pinto—alongside aromatic vegetables and a rich vegetable broth, creating a dish that's both satisfying and nutritious.
What makes this recipe truly special is how the beans develop tender yet distinct textures while absorbing the surrounding flavors, resulting in a medley that's far more exciting than any single-bean soup.
The foundation of this soup is a slow simmer that allows the beans to soften just enough to release their natural sweetness while maintaining their structure.
I start by sautéing onions, garlic, and celery in olive oil until they're deeply fragrant—a crucial step that builds the soup's flavor base before adding the broth and beans.
The addition of carrots, tomatoes, and spinach not only adds vibrant colors but also introduces layers of sweetness and acidity that balance the earthy bean flavors.
By the time you ladle this soup into bowls, you'll have a dish that's rich, aromatic, and packed with plant-based protein. The beans hold their shape beautifully, creating a satisfying bite in every spoonful, while the vegetables contribute a medley of textures—tender carrots, silky tomatoes, and slightly crisp spinach.
This soup is the kind that gets better with time, as the flavors meld and deepen during the simmering process, making it perfect for meal prep or feeding a crowd.
Serve it as-is for a clean, wholesome meal, or garnish with fresh cilantro, a squeeze of lime, or a sprinkle of smoked paprika for added depth.
The beauty of this recipe is its versatility—it works as a standalone dish, a side for grilled meats, or even a base for a vegan chili. Let's get cooking!
Ingredients for bean medley soup
Pantry staples meet plant-based protein in this hearty bean medley soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Kidney Beans 🌱 | 1 ½ cups | Dried or canned, drained |
| Black Beans 🌱 | 1 ½ cups | Dried or canned, drained |
| Pinto Beans 🌱 | 1 ½ cups | Dried or canned, drained |
| Yellow Onion 🧅 | 1 whole | Diced into small pieces |
| Garlic Cloves 🧄 | 4 cloves | Minced finely for aroma |
| Carrots 🥕 | 3 medium | Peeled and sliced into rounds |
| Celery Stalks 🥬 | 3 whole | Diced into small pieces |
| Canned Diced Tomatoes 🍅 | 1 can (15 oz) | San Marzano preferred |
| Fresh Spinach 🌿 | 3 cups | Chopped roughly |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For sautéing vegetables |
| Cumin 🌿 | 1 tsp | Ground for earthy depth |
| Smoked Paprika 🌶️ | 1 tsp | For subtle smokiness |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
The beans are the soul of this soup. Dried beans create the best texture—soak overnight for maximum tenderness—but canned work in a pinch (just drain and rinse). Trader Joe's and Whole Foods carry excellent dried varieties, or grab the no-salt-added canned options for convenience. The carrot selection matters too—orange carrots have more natural sweetness, but regular carrots work fine. For the broth, Pacific Foods or Imagine brands are my go-tos for clean, flavorful vegetable broth without artificial additives. Fresh spinach is ideal, but frozen works perfectly if you're prepping ahead.
No kidney beans? Substitute with white beans or lentils—they hold up well to simmering. Short on smoked paprika? Regular paprika plus a pinch of liquid smoke gets you close. The cumin is non-negotiable though—it's what ties all the earthy flavors together. For the tomatoes, San Marzano cans are worth the splurge—they're sweeter and less acidic. If you're using dried beans, soak them overnight and rinse well to remove any bitterness. The onions and celery should be diced uniformly so they cook evenly with the beans.
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 for 3 months. I like to double the batch and freeze portions for quick meals. The beans will soften further when reheated, so add a splash of broth if it gets too thick. Garnish with fresh cilantro or a squeeze of lime just before serving to brighten the flavors. Leftovers reheat beautifully—just stir in a little water or broth to loosen if needed.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s the kind of meal where you dump everything in one pot and walk away. No chopping boards full of scraps, no extra pans—just onions, garlic, and three kinds of beans simmering into something hearty. Honestly, the only prep is dicing an onion and mincing garlic, and even that’s optional if you use pre-chopped.
- Garlic Bomb Flavor: That first whiff of sautéed garlic and onions caramelizing? It’s the kind of aroma that makes me pause mid-morning. The beans soak up all the richness, and the mix of kidney, black, and pinto gives it this deep, earthy complexity that’s way more interesting than plain bean soup. Between us, I’ve had it three times this week and still crave it.
- Weeknight Workhorse: This soup is my go-to for busy nights—it’s filling enough for dinner but light enough for lunch the next day. I’ll make a big batch on Sunday and reheat portions all week, or bring it to potlucks where it disappears faster than the chips. (Yes, even on a Tuesday night.)
- Pantry Goldmine: Here’s what sold me—the ingredients are all shelf-stable, so I can throw this together without a grocery run. A can of each bean, an onion, and a head of garlic? That’s it. It’s my budget-friendly secret weapon for days when I’m broke or just don’t want to cook. Plus, leftovers taste just as good cold—perfect for packed lunches.
Step-by-step instructions for bean medley soup
Here's the method for crafting a rich, flavorful bean medley that balances hearty texture with vibrant vegetable notes.
Sauté the Aromatic Vegetable Base
Heat the 0.5 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 1 whole yellow onion, 3 medium carrots, and 3 whole celery stalks, all diced into small, even pieces. Cook for 8-10 minutes, stirring occasionally, until the vegetables soften and the onion becomes translucent.
This foundational step builds depth of flavor. You'll notice the vegetables release moisture as they cook—this is normal and essential for developing the soup's base. The key here is patience; don't rush the cooking or the vegetables will turn mushy instead of tender.
After the vegetables have softened, add the 4 cloves minced garlic and cook for an additional 1-2 minutes until fragrant. The garlic should sizzle gently and release its aroma without burning. This is when your kitchen will smell like a home-cooked meal in progress.
Toast the Spices and Incorporate Beans
Reduce the heat to medium-low and stir in the 1 tsp cumin and 1 tsp smoked paprika. Toast the spices for 30 seconds until you can smell their warm, earthy notes. This step activates their flavors and prevents them from tasting raw.
Add the 1.5 cups kidney beans, 1.5 cups black beans, and 1.5 cups pinto beans to the pot. Stir everything together and cook for 2-3 minutes, allowing the beans to absorb some of the vegetable flavors. If you're using canned beans, make sure they're well-drained before adding.
Here's the thing—don't skip this step. Toasting the spices and letting the beans sit with the vegetables for a few minutes creates a more complex flavor profile than simply dumping everything in at once.
Build the Soup with Broth and Tomatoes
Pour in the 6 cups vegetable broth and the 1 can (15 oz) canned diced tomatoes, stirring to combine. Bring the mixture to a gentle boil, then reduce the heat to low and let it simmer uncovered for 20-25 minutes. This allows the flavors to meld and the beans to soften slightly if they're not already tender.
During this time, you'll see the soup reduce slightly and develop a rich, savory aroma. The beans should begin to break down just enough to release their starches, which will thicken the soup naturally. If you notice the soup is too thin after 20 minutes, continue simmering for another 5 minutes—it will thicken as it cooks.
After simmering, taste the soup and adjust the seasoning with the 1.5 tsp salt and 0.5 tsp black pepper. The beans and vegetables should be tender, and the broth should be well-seasoned. This is your chance to fine-tune the flavor before adding the final ingredient.
Finish with Spinach for Freshness
Stir in the 3 cups fresh spinach and cook for an additional 2-3 minutes until the spinach wilts and turns vibrant green. The spinach will brighten the soup and add a fresh contrast to the hearty beans and vegetables.
Real talk: Don't overcook the spinach or it will turn bitter. You want it just wilted—soft enough to blend into the soup but still recognizable as spinach. If your spinach is particularly large or thick, you may need an extra 30 seconds to ensure it's fully incorporated.
Once the spinach is wilted, taste the soup again and make any final adjustments to the seasoning. The soup should be rich, flavorful, and well-balanced with a perfect harmony of textures. Serve immediately while hot, and enjoy the perfect medley of beans and vegetables.
Pro Tips For Making Bean Medley Soup
- SOAK BEANS OVERNIGHT: I learned this the hard way—rushing beans with a quick soak leaves them gummy. For kidney, black, and pinto beans, cover them in water the night before (4 cups liquid per cup beans). The next day, drain and rinse before cooking. Your soup will thank you with tender, not mushy, texture.
- CARAMELIZE ONIONS LOW: Skip the high heat—it burns before sweetening. Cook onions in a heavy pot over medium-low, stirring occasionally, until deep golden (about 20 minutes). Add garlic only in the last 2 minutes to prevent bitterness. Patience here makes the whole soup richer.
- SALT BEANS EARLY: Don’t wait until the end. Add 1 teaspoon salt to the beans when you start cooking them—it breaks them down faster and prevents a bland final flavor. If using canned beans, rinse first but still add salt early to balance their tinny taste.
- USE BROTH, NOT WATER: Water makes beans taste flat. Swap half the liquid for vegetable or chicken broth (about 2 cups). The umami depth elevates the whole dish, especially when paired with the natural earthiness of the beans. Yes, even if you’re on a budget—store-brand broth works fine.
Best sauces and condiments for this bean medley soup
Creamy Avocado Swirl
Blend 1 ripe avocado with ¼ cup lime juice and 2 tbsp olive oil until smooth, then drizzle a spoonful over each bowl. The creamy texture contrasts beautifully with the hearty beans, while the lime brightens the earthy flavors.
I like to add a pinch of salt and ½ tsp cumin to the mixture for extra depth. 🥑
Spicy Tomatillo Salsa
Roast 4 tomatillos with 1 jalapeño and 2 garlic cloves until charred, then blend with ¼ cup cilantro and 1 tbsp lime juice. The tangy, slightly spicy salsa cuts through the richness of the soup and adds a fresh, vibrant finish.
Serve it on top or alongside for dipping. 🌶️
Garlic Yogurt Drizzle
Mix ½ cup plain Greek yogurt with 1 minced garlic clove, 1 tbsp lemon juice, and ½ tsp smoked paprika. This cooling, tangy drizzle balances the soup’s heartiness and adds a creamy contrast. It’s especially good if you’re serving the soup with crusty bread for scooping. 🥄
Crispy Shallot Topping
Sauté 3 shallots in 1 tbsp olive oil until golden brown and crispy, then sprinkle over the soup just before serving. The caramelized shallots add a sweet, crunchy texture that elevates every spoonful. For extra flair, toss them with a pinch of flaky sea salt before adding. 🧅
Smoky Chipotle Crema
Combine ½ cup sour cream with 1 tsp adobo sauce (from canned chipotles) and 1 tsp lime juice for a smoky, creamy topping that pairs perfectly with the soup’s earthy flavors. The chipotle adds a subtle heat that lingers without overpowering. Drizzle generously for a restaurant-quality finish. 🌶️
Fresh Herb Oil
Infuse ½ cup olive oil with 2 tbsp fresh cilantro, 1 tbsp fresh parsley, and 1 crushed garlic clove. Let it sit for 10 minutes before straining and drizzling over the soup.
The herb oil adds a bright, aromatic finish that enhances the soup’s natural flavors. Use it sparingly—just enough to coat the surface. 🌿
Nutrition facts
Frequently asked questions
Can I use all canned beans instead of dried?
Yes, you can absolutely use canned beans for convenience! Just drain and rinse them thoroughly to remove excess sodium. For best results, combine canned beans with a few soaked dried beans (like pinto) to create a mix of textures. The dried beans will soften during cooking while the canned ones maintain their shape. This approach gives you the heartiness of dried beans with minimal prep time.
How can I make this soup creamier without dairy?
Blend ½ cup cooked white beans with ¼ cup vegetable broth> until smooth, then stir it back into the soup. The beans create a natural creaminess while keeping the dish vegan. For extra richness, add 1 tbsp nutritional yeast>—it adds a cheesy flavor without any dairy. Alternatively, stir in ¼ cup coconut milk> at the end for a silky texture.
What's the best way to store leftovers?
Store in an airtight container in the fridge for up to 5 days>—the flavors actually improve as they meld! For longer storage, freeze portions for 3 months>. When reheating, add a splash of broth or water to prevent thickening. Pro tip: Let the soup cool completely before refrigerating to maintain texture and prevent bacterial growth.
Can I make this soup in a slow cooker?
Sauté your onions, garlic, and spices first, then transfer everything to the slow cooker with 6 cups broth>. Cook on low for 6-8 hours> or high for 3-4 hours>, stirring occasionally. The slow cooker's gentle heat creates even more tender beans and deeper flavors. Add spinach in the last 15 minutes> to prevent overcooking.
Why do my beans turn mushy?
Overcooking is the most common cause—beans release starches that break down into mush when simmered too long. Keep the heat at a gentle simmer (small bubbles) and check after 20 minutes>. If using dried beans, they should be tender but still hold their shape. For canned beans, reduce cooking time by 10-15 minutes> since they're pre-cooked. Always taste-test before adding spinach!
