Soups & Stews
A 3 bean chilli soup recipe transforms humble pantry staples into a hearty, smoky masterpiece that simmers down to rich, velvety perfection. The secret lies in slow-cooked beans—kidney, black, and pinto—infused with deep flavors from cumin, smoked paprika, and a touch of cocoa powder for complexity. This isn’t just soup; it’s a one-pot meal that builds layers of warmth and texture with every spoonful, making it ideal for chilly evenings or meal prep. The beauty of this recipe is its flexibility—adapt it to vegan preferences by swapping butter for olive oil and skipping dairy, or add a splash of coconut milk for a modern twist. I’ve perfected the balance between smoky, earthy spices and the natural sweetness of the beans, ensuring each bite delivers bold flavor without bitterness. The key technique? Sautéing onions and garlic until deeply caramelized, then letting everything simmer until the beans are tender and the broth reduces to a thick, satisfying consistency. What you’ll end up with is a soup that’s comforting yet sophisticated, with beans that hold their shape yet melt in your mouth. The aroma alone—smoky, slightly sweet, with hints of cinnamon—will have everyone gathering around the pot. Serve it with crusty bread to soak up every last drop, or pair it with tortilla chips for a casual touch. This recipe scales effortlessly, making it perfect for feeding a crowd or saving leftovers for days. The flavors only deepen as it sits, so it’s ideal for prep-ahead meals. Let’s get cooking—your kitchen will smell like a cozy restaurant in minutes.
Ingredients for 3 bean chilli soup
Pantry staples and slow simmering create this velvety, smoky bean chilli masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Kidney Beans 🌿 | 1 ½ cups | Dried, soaked overnight |
| Black Beans 🌿 | 1 ½ cups | Dried, soaked overnight |
| Pinto Beans 🌿 | 1 ½ cups | Dried, soaked overnight |
| Yellow Onion 🧅 | 1 whole | Diced, caramelized |
| Garlic Cloves 🧄 | 4 cloves | Minced, sautéed until golden |
| Ground Cumin 🌿 | 2 tsp | Toasted for depth |
| Smoked Paprika 🌶️ | 1 ½ tbsp | For smoky richness |
| Cocoa Powder 🍫 | 1 tbsp | Unsweetened, for complexity |
| Diced Tomatoes 🍅 | 2 cups | San Marzano preferred |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Olive Oil 🫒 | ½ cup | Extra-virgin for richness |
| Cinnamon Stick 🌿 | 1 whole | For subtle warmth |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
The beans are the heart of this soup, so don’t cut corners. Dried beans develop deeper flavor than canned—they’re worth the overnight soak. For convenience, Trader Joe's sells pre-soaked dried beans in the canning aisle. Look for San Marzano tomatoes in glass jars for the best flavor; they’re sweeter and less acidic than most canned varieties. The cocoa powder adds a subtle depth that elevates the smoky spices—unsweetened Dutch-process is ideal. If you’re short on time, use canned beans, but rinse them thoroughly to remove excess sodium.
No smoked paprika? Regular paprika plus a pinch of liquid smoke works in a pinch, though the flavor won’t be identical. The cinnamon stick is optional but adds a cozy warmth—omit if you’re sensitive to spice. For a vegan twist, simply swap the olive oil for butter if needed (though it’s already dairy-free). The broth is non-negotiable—low-sodium vegetable broth ensures the beans shine without overpowering. If you’re using canned tomatoes, crush them by hand for a more rustic texture. The onions should caramelize until deep golden brown—this step is worth the extra 10 minutes.
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. For meal prep, double the batch and portion into containers—perfect for lunches. The beans will thicken as they cool, so add a splash of broth if needed. Garnish with fresh cilantro or a dollop of vegan sour cream before serving for extra brightness.
Why You'll Love This Recipe
- I’ll be real: this soup costs me about $1.50 per serving. Canned beans? Check. Onion and garlic? Pantry staples. The kind of dish that makes me feel like I’m feeding a crowd without breaking the bank. Plus, leftovers taste better than takeout, and that’s saying something.
- One-Pot Magic: I swear by this recipe—just toss everything into one pot, and 45 minutes later, you’ve got a steaming bowl of goodness. No fancy gadgets, no last-minute grocery runs for single-use tools. That deep, smoky aroma from the onions and garlic? It fills the whole house, and honestly, half the time I eat straight from the pot.
- Texture Party: Here’s what sold me—the mix of beans. Kidney beans add that meaty bite, black beans bring creamy richness, and pinto beans? They’re the unsung heroes holding everything together. Sauté those onions and garlic until they’re caramelized, and suddenly you’ve got layers of flavor that make this soup ridiculously satisfying.
- Meal Prep MVP: Between us, this is my go-to for busy weeks. Double the batch on Sunday, and you’ve got lunches for three days—no sad desk salads here. It reheats like a dream, and the flavors actually deepened the next day. My college-aged kid brings it to campus in a thermos, and yes, even on a Tuesday night.
Step-by-step instructions for 3 bean chilli soup
Transform simple pantry staples into a rich, smoky chilli that builds depth through slow simmering and layered spices.
Prepare the Beans for Maximum Texture
Drain and rinse the soaked 1.5 cups kidney beans, 1.5 cups black beans, and 1.5 cups pinto beans thoroughly. I always give them a final rinse under cold water to remove any residual soaking liquid—this prevents the soup from becoming watery later. Transfer the drained beans to a large pot and cover them with fresh water by about 2 inches. Bring to a boil over high heat for 2 minutes, then reduce to a simmer and cook uncovered for 30 minutes. This pre-cooking step ensures the beans soften evenly during the main simmer and don't turn mushy.
While the beans simmer, I like to taste one occasionally—you're looking for them to be tender but still holding their shape. Overcooking here will make your soup grainy. When they reach this stage, drain them again and set aside. The beans will continue cooking in the soup, but this head start guarantees they'll be perfectly tender by the end.
Develop the Smoky Base
Heat the 0.5 cup olive oil in a Dutch oven or heavy pot over medium-low heat. Add the diced yellow onion and cook slowly for 10-12 minutes until deeply caramelized—this means they should be golden brown with some dark spots on the edges. Don't rush this step; caramelized onions form the flavor foundation of the soup.
Add the 4 minced garlic cloves and cook for 30 seconds until fragrant. Immediately stir in the 2 tsp ground cumin and 1.5 tbsp smoked paprika, toasting them for 1 minute until the spices release their aroma. This quick toasting deepens their flavor significantly. Then add the 1 tbsp cocoa powder and stir for 30 seconds to bloom the chocolate notes—this might seem unusual, but it adds an unexpected depth that complements the smokiness.
Build the Flavor Layers
Pour in the 2 cups diced tomatoes and stir to combine with the spice mixture. Let this cook for 5 minutes until the tomatoes break down slightly and the mixture thickens. Add the 4 cups vegetable broth, the 1 whole cinnamon stick, 1.5 tsp salt, and 0.5 tsp black pepper. Bring to a gentle simmer over medium heat, then add the pre-cooked beans.
Here's where the magic happens: cover the pot and let it simmer gently for 45-60 minutes. Stir occasionally to prevent the beans from sticking to the bottom. The soup should reduce slightly, concentrating the flavors. You'll know it's ready when the beans are fork-tender (they should mash slightly when pressed with a fork) and the broth has thickened enough to coat the back of a spoon.
Finish and Adjust
Remove the cinnamon stick and discard it. Taste the soup and adjust the seasoning—you might need an extra ½ tsp salt or a pinch more black pepper to balance the flavors. The cocoa powder should add a subtle bitterness that contrasts beautifully with the smokiness.
For serving, I like to let the soup sit for 10 minutes off the heat—this allows the flavors to meld even more. The final texture should be thick enough to coat a spoon but still have body, with each bite delivering the perfect balance of smoky, earthy, and slightly sweet notes from the cocoa.
Pro Tips For Making 3 Bean Chilli Soup
- SOAK BEANS OVERNIGHT: I learned this the hard way—rushing beans with a quick soak or canned shortcut leaves your soup with that weird, chalky texture. For three beans, split them between two bowls: one gets a 12-hour soak in cold water, the other sits in hot water for 2 hours. The cold-soaked ones stay firm, while the hot-soaked ones break down just enough to thicken the soup naturally.
- SWEEP THE POT: After your beans are tender, don’t just turn off the heat and walk away. Let the soup bubble hard for 5 more minutes to evaporate excess water, then use a wooden spoon to scrape the bottom—this releases all those caramelized bits stuck to the pot. (Yes, even if it looks like you’re cleaning.) That’s where the real flavor hides.
- CHAR THE ONIONS: Skip the gentle sauté—this isn’t a salad. Get your onions and garlic in a dry pot over medium-high heat and let them blister until the edges turn dark brown, almost black in spots. The bitterness balances the sweetness of the beans, and it takes 10 minutes instead of 5. (I know, I know—you’ll burn them. Just keep stirring.)
- SAVE THE LIQUID: Drained canned beans? Pour that liquid back into the pot—it’s got salt, seasoning, and a little bean starch that helps thicken the soup. If you’re using dried beans, reserve 1 cup of their soaking water too, but boil it down first to cut the starchiness. (Your future self will notice the difference in texture.)
Wine and beer pairings for this dish
Red Wine Pairings
A bold Spanish Garnacha (Grenache) is my go-to choice for this smoky chili—its jammy dark fruit and subtle earthiness mirror the soup's cocoa and cumin notes beautifully. Look for a Navarra Garnacha from Spain, where the wine often has a touch of spice that complements the smoked paprika. Serve it slightly chilled (60-62°F) to balance the soup's warmth and prevent overpowering the delicate bean flavors. 🍷
White Wine Options
For those who prefer white, a Spanish Albariño from Rías Baixas offers surprising harmony with its bright citrus and mineral notes. The wine's acidity cuts through the soup's richness while its subtle floral undertones enhance the cocoa's depth. I recommend pairing it with a 2022 Pazo de Señorans Albariño—its crisp finish cleanses the palate between spoonfuls. Serve at 50-52°F for optimal contrast.
Craft Beer Pairings
A honey-brown ale with malty sweetness works wonderfully—try a New Belgium Fat Tire or Allagash White. The caramel and biscuit notes in these beers echo the soup's caramelized onions and cocoa, while their moderate alcohol content (5-6% ABV) won't overwhelm. For a darker option, a smoked porter like Founders Kentucky Breakfast Stout (with its subtle coffee and tobacco notes) creates a delicious contrast.
Non-Alcoholic Pairings
For a refreshing non-alcoholic option, I love sparkling hibiscus tea—its tart, cranberry-like flavor balances the soup's smokiness. Brew hibiscus tea with 1 tbsp dried hibiscus per cup of hot water, let it steep for 10 minutes, then chill and serve over ice. Alternatively, a ginger beer like BrewDog Punk IPA Ginger Beer adds a spicy kick that complements the cumin and smoked paprika.
Regional Adaptations
In Texas, where chili is king, locals often pair this soup with a Shiner Bock—its malty sweetness and hoppy bitterness create a perfect balance. For a New Mexican twist, try a green chile beer like Santa Fe Brewing Co.'s Green Chile Lager, which adds an extra layer of earthy heat that mirrors the soup's spices. Both pairings highlight regional culinary traditions while enhancing the dish's natural flavors. 🌶️
Nutrition facts
Frequently asked questions
Can I substitute canned beans for dried?
Yes, but with adjustments! Use 3 (15 oz) cans of each bean type (kidney, black, pinto) totaling 4.5 cups, drained and rinsed thoroughly. For best texture, rinse them in cold water to remove excess sodium. The soup will be ready in 30 minutes instead of simmering for hours. Just skip the initial 30-minute pre-cook since canned beans are pre-cooked.
Why does my chili taste bitter?
Bitterness usually comes from over-toasted spices or undercooked tomatoes. Try adding a pinch of sugar or a splash of apple cider vinegar (1 tsp) to balance the flavors. For future batches, reduce the smoked paprika to 1 tbsp and toast spices for only 30 seconds instead of 1 minute. The cocoa powder should be unsweetened—sweetened versions can add unwanted sweetness.
How can I make this vegan?
This recipe is already vegan-friendly! Simply ensure you're using vegetable broth and olive oil instead of butter. For extra richness, stir in 2 tbsp nutritional yeast at the end—it adds a cheesy, umami depth. Garnish with avocado slices or vegan sour cream made from cashews. The cocoa and spices provide all the depth without any animal products.
Can I make this in an Instant Pot?
Sauté the onions and spices as directed, then add all remaining ingredients (including the 3 cups dried beans) and 1 cup extra broth. Cook on High Pressure for 20 minutes, then quick-release. The beans will be tender but may need an extra 10 minutes of simmering on the stovetop to thicken the broth. For best results, use the Bean/Chili setting if available.
What's the best way to reheat leftovers?
Reheat gently on the stove over low-medium heat with a splash of broth or water (¼ cup) to restore moisture. Stir frequently to prevent sticking. Microwave in 1-minute intervals, stirring between each, until heated through. The soup thickens as it cools, so adding liquid helps maintain the perfect consistency. Store leftovers in an airtight container for up to 5 days.
