Soups & Stews
This 3 bean chilli soup recipe transforms simple legumes into a smoky, spiced symphony that rivals any restaurant bowl. The secret lies in slow-cooked beans infused with smoked paprika and cumin, creating deep, earthy flavors that develop over time. I've perfected this vegetarian version to deliver hearty texture and rich complexity without meat—just plant-based power in every spoonful.
What sets this recipe apart is the balance of three beans—kidney, black, and pinto—each contributing distinct textures and earthy notes. The beans soak overnight for maximum tenderness, while aromatics like onion, garlic, and bell pepper build a flavorful base. A touch of coconut milk adds creaminess, while lime brightens the finish, ensuring every bite is vibrant and satisfying.
By the time you ladle this into bowls, you'll have a soup that's thick, flavorful, and packed with protein—perfect for chilly evenings or meal prep. The smoky spices linger on your palate, while the beans hold their shape just enough to add satisfying texture. Garnish with fresh cilantro or avocado slices for a pop of freshness that cuts through the richness.
This recipe scales effortlessly, making it ideal for feeding a crowd or storing for leftovers. The slow simmer ensures flavors meld beautifully, and the one-pot method keeps cleanup minimal. Whether you're a seasoned cook or just starting, this chilli soup delivers restaurant-quality results with simple, accessible techniques.
Ingredients for 3 bean chilli soup
Just 16 ingredients turn dried beans into a smoky, hearty vegetarian masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Kidney Beans (Dried) 🌱 | 1 ½ cups | Soaked overnight, drained |
| Black Beans (Dried) 🌱 | 1 ½ cups | Soaked overnight, drained |
| Pinto Beans (Dried) 🌱 | 1 ½ cups | Soaked overnight, drained |
| Yellow Onion 🧅 | 1 whole | Diced, medium size |
| Bell Pepper (Red) 🍅 | 1 whole | Diced, any color |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Smoked Paprika 🌶️ | 2 tbsp | For deep smoky flavor |
| Ground Cumin 🌿 | 1 tbsp | Toasted for warmth |
| Coconut Milk (Full-Fat) 🥥 | 1 cup | Canned, for creaminess |
| Diced Tomatoes (Canned) 🍅 | 2 cups | San Marzano preferred |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Lime Juice 🍋 | 2 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Avocado (Optional) 🥑 | 1 whole | Sliced, for garnish |
The beans are the soul of this soup—kidney, black, and pinto all soak overnight (trust me, it's worth it). Grab dried beans from the bulk section at Whole Foods or Trader Joe's for the best quality. Rinse them well after soaking to remove any grit. The San Marzano canned tomatoes at Costco or any grocery store are a game-changer—they're sweeter and less acidic than regular brands. For the smoked paprika, Penzeys has the best selection, but any brand labeled 'smoked' works. Toast your cumin seeds in a dry pan for 30 seconds before grinding—it adds a nutty depth that changes everything.
No smoked paprika? Substitute half the amount with regular paprika plus a pinch of liquid smoke—it's not identical, but it gets you close. Fresh garlic and onion are ideal, but frozen diced sets work in a pinch (just thaw first). The coconut milk adds richness, but Greek yogurt or cashew cream are great vegan swaps. If you're short on time, use canned beans—but they won't have the same texture. The lime juice is key for brightness, so don't skip it. For extra smokiness, add a dash of chipotle powder or a smashed chipotle pepper in adobo (find these in the Latin foods aisle).
This soup gets better with time—reheat gently on the stove or microwave with a splash of water. Stores for 4-5 days in the fridge or 3 months frozen. I always make a double batch because it's perfect for lunches. Garnish with cilantro and avocado slices right before serving—they add freshness that cuts through the smoky flavors. For meal prep, portion into containers and freeze with a layer of broth on top to prevent freezer burn. The beans will hold their shape beautifully, so no mushy texture here.
Why You'll Love This Recipe
- I’ll be real: this recipe won’t break the bank. Dried beans are cheaper than canned, and they keep forever. A single onion and bell pepper stretch across multiple servings, and you’re left with a dish that’s filling, nutritious, and still feels special. Plus, the leftovers? They’re my go-to when I’m too tired to cook but still need something warm and satisfying.
- No-Soak Needed: I’ll admit, I used to dread soaking beans—until I discovered this trick. Just toss the dried kidney, black, and pinto beans in a pot with water and a bay leaf, bring it to a boil for 2 minutes, then simmer. By the time the onions and bell peppers soften, those beans are tender and ready to soak up all the smoky flavor. No overnight prep, no fuss.
- Three Beans, One Magic Flavor: Honestly, the combination of these three beans is where this soup shines. The kidney beans add that meaty depth, black beans bring a creamy richness, and pinto beans? They’re the unsung heroes with their buttery texture. Toss in a red bell pepper for sweetness and a charred onion for caramelized warmth, and suddenly you’ve got a bowl that’s both hearty and bright.
- Lunchbox to Leftovers: Between us, this soup is my secret weapon for busy days. Make a big batch on Sunday, and you’ve got lunch covered for the week—just reheat and serve. Or pack it cold in jars for work; the flavors only get better as it sits. And yes, even on a Tuesday night, it’s the one thing my kids actually finish.
Step-by-step instructions for 3 bean chilli soup
Here's how to build a rich, smoky chilli that's hearty enough for dinner but light enough for lunch.
Sauté the Aromatics Until Fragrant
Heat a large Dutch oven over medium heat. Add the diced yellow onion and bell pepper, cooking for 5-7 minutes until softened and the onion turns translucent. This is where the flavors start to develop—don't rush it or you'll burn them.
Add the minced garlic cloves and stir for 30 seconds until they release their aroma. Immediately add the 2 tablespoons smoked paprika and 1 tablespoon ground cumin, stirring constantly for 1 minute to toast the spices. You'll smell that deep, smoky warmth filling your kitchen—that's the foundation of your soup's flavor profile.
Combine Beans and Liquid for Simmering
Add the drained kidney beans, black beans, and pinto beans to the pot. Pour in the 2 cups diced tomatoes and 4 cups vegetable broth, stirring gently to combine. Bring everything to a gentle boil, then reduce heat to maintain a low simmer. Here's the thing—this soup needs time to develop its depth, so don't be tempted to crank up the heat.
Cover the pot and let it simmer for 45 minutes, stirring occasionally. The beans should soften but still hold their shape. If the soup gets too thick, add a splash of water or broth. The goal is a luscious, thick-but-stirrable consistency that coats the back of a spoon.
Add Creaminess and Brighten with Lime
After the beans have softened, stir in the 1 cup full-fat coconut milk and the 1.5 teaspoons salt. The coconut milk adds a velvety texture that balances the earthy beans. Let the soup simmer uncovered for another 10-15 minutes to let the flavors meld together.
Finish with the 2 tablespoons lime juice and 0.5 teaspoon black pepper, stirring well. Taste and adjust seasoning—you might need a pinch more salt or lime to brighten the flavors. The lime juice cuts through the richness of the coconut milk and adds a refreshing zing that makes this soup sing.
Garnish and Serve Warm
Ladle the soup into bowls and garnish with the chopped fresh cilantro. The bright green color contrasts beautifully with the deep reds and browns of the beans and tomatoes, making it look as good as it tastes. If using, slice the avocado and place a few pieces on top for extra creaminess and visual appeal.
Serve immediately with crusty bread or over a bed of rice. The soup should be warm through, with the beans tender but still holding their shape. Each spoonful should deliver that perfect balance of smoky spices, creamy coconut milk, and bright citrus notes.
Pro Tips For Making 3 Bean Chilli Soup
- SOAK BEANS OVERNIGHT: Dried beans need time to soften—toss them in cold water with a pinch of salt and let them sit 8+ hours. I learned this the hard way after my chilli turned into a mushy, uneven mess from rushed soaking. If you’re short on time, at least do a 2-hour soak with a splash of baking soda (¼ tsp per pound) to speed things up.
- CHAR THE ONIONS: Cook your onions until they’re deep golden, not just translucent—this builds flavor. I used to rush this step, and the soup always tasted flat. Use medium heat, stir often, and don’t walk away; burnt onions ruin the whole dish.
- SIMMER LOW AND SLOW: After adding all ingredients, keep the heat at a gentle simmer (small bubbles, not a rolling boil). I skipped this once and ended up with split beans and a watery soup. A 1.5-hour simmer at low heat lets the beans absorb flavors and thickens the broth naturally.
- SAUTE PEPPERS LAST: Add the red bell pepper raw to the pot—its texture holds up better than if you soften it first. I tried cooking it with the onions once, and it turned to mush, making the soup look unappealing. Toss it in raw with the beans for the best texture.
Troubleshooting this recipe
Mushy Beans?
If your beans turn mushy, you likely overcooked them. The key is a low simmer for 45 minutes max—never a rolling boil. I swear by checking beans with a fork after 30 minutes; if they're still firm, they'll finish perfectly. For extra insurance, add ½ cup extra broth to the pot to prevent drying out, which speeds up cooking. 🌱
Too Thin?
A watery soup usually means too much liquid. Simmer uncovered for 10-15 minutes to reduce naturally, or mash 1-2 beans with a fork to thicken. If you prefer a creamier texture, stir in 1 tbsp cornstarch mixed with 2 tbsp water and simmer for 2 minutes. For future batches, reduce broth by ½ cup or use 1 cup mashed beans as a thickener.
Flat Flavors?
Flavor fades when spices aren't toasted or simmered long enough. Always toast smoked paprika and cumin in oil for 30 seconds before adding other ingredients. Let the soup simmer uncovered for the last 10 minutes to deepen flavors. A splash of lime juice or hot sauce at the end can revive dull flavors. Pro tip: Add a bay leaf while simmering for extra depth.
Grainy Texture?
This happens when beans aren't soaked long enough or cooked gently. Soak beans overnight in cold water (or use the quick-soak method with boiling water for 1 hour). If texture is still off, blend ½ cup beans into the soup for creaminess. For future batches, use a mix of kidney and black beans—they hold shape better than pinto beans when overcooked.
Lime Too Overpowering?
Start with 1 tbsp lime juice and taste before adding the full 2 tbsp. If it's too sharp, balance it with a pinch of salt or a sprinkle of toasted cumin. For a smoother finish, stir in 1 tbsp honey or maple syrup to mellow the acidity. The goal is brightness, not sourness—adjust gradually!
Broth Too Salty?
Use low-sodium vegetable broth to avoid this issue. If it's already too salty, add ½ cup unsalted coconut milk or 1 cup water to dilute. For a quick fix, stir in 1 tbsp lemon juice or 1 tbsp unsalted butter to balance flavors. Never add more beans—they’ll absorb the salt and make the problem worse. 💡
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried for this recipe?
Yes, but the texture will differ. Canned beans cook faster and may break down more, creating a thicker soup. Use 2 (15 oz) cans of each bean type (kidney, black, pinto) and reduce simmering time to 20-25 minutes. Drain and rinse them well to remove excess sodium. For best results, combine 1 cup dried beans (soaked) with 1 can of each bean to balance texture.
How can I make this soup spicier?
Add ½ teaspoon cayenne pepper or 1-2 chipotle peppers in adobo (minced) while sautéing aromatics. For heat without dryness, stir in 1 tablespoon hot sauce at the end. If you love smoky heat, increase smoked paprika to 3 tablespoons and add ½ teaspoon ground chipotle. Always taste as you go—spices build flavor over time!
Can I prepare this soup in an Instant Pot?
Sauté onions, bell pepper, and garlic in the Instant Pot on sauté mode for 5 minutes. Add spices, beans, tomatoes, and broth, then cook on high pressure for 10 minutes. Quick-release the pressure, stir in coconut milk, and let it sit for 5 minutes before adding lime juice. The Instant Pot reduces cooking time but delivers the same rich flavors.
What’s the best way to store leftovers?
Store in an airtight container in the fridge for up to 5 days. For freezing, portion into containers and cover with a layer of broth or coconut milk to prevent freezer burn. Thaw overnight in the fridge—never microwave directly from frozen. Reheat gently on the stove with a splash of water or broth to restore creaminess. The flavors actually improve after 2-3 days!
Can I make this gluten-free or vegan?
This recipe is already vegan! For gluten-free, ensure your vegetable broth and spices are certified gluten-free. Some brands add wheat-based anti-caking agents. Double-check labels on smoked paprika and cumin blends. The coconut milk and lime juice are naturally gluten-free, and all beans are safe. Serve with gluten-free bread or rice for a fully compliant meal.
