Soups & Stews
This bean-only chili recipe delivers restaurant-quality depth without relying on meat, proving plant-based meals can be hearty and satisfying. The secret lies in slow-cooked beans, smoky spices, and layered aromatics that create a rich, velvety broth. I've perfected this version through years of testing—it's the kind of chili that disappears from bowls faster than you can say "second helping."
The foundation starts with properly soaked beans for maximum tenderness, paired with caramelized onions and garlic that build flavor as they simmer. Smoked paprika and cumin add that signature chili smokiness, while tomatoes and broth create a balanced, savory base.
This isn't just a vegetarian substitute—it's a complete meal with protein, fiber, and bold flavors that stand up to any meat-based chili.
By the time it's done, you'll have a pot of thick, hearty chili with perfectly seasoned beans, a rich sauce that clings to every spoonful, and a depth of flavor that comes from slow cooking.
The texture is just right—tender beans with a slight bite, all swimming in a sauce that's neither too thin nor too thick. This is the kind of chili that makes people ask for the recipe, even when they don't know it's meat-free.
Serve it with crusty bread to soak up every last drop, or top with avocado, cilantro, and lime for a bright, fresh contrast. The beauty of this recipe is its versatility—it works equally well as a weeknight dinner or a crowd-pleasing main dish. Let's get cooking!
Ingredients for bean only chili
Sixteen ingredients for a chili so rich and smoky, no one will guess it's meat-free.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Black Beans 🌱 | 1 ½ cups | Soaked overnight for tenderness |
| Dried Kidney Beans 🌱 | 1 cup | Soaked overnight for tenderness |
| Yellow Onion 🧅 | 2 whole | Diced, caramelized for sweetness |
| Garlic Cloves 🧄 | 6 cloves | Minced for aromatic depth |
| Canned Diced Tomatoes 🍅 | 2 cups | Fire-roasted preferred for smokiness |
| Vegetable Broth 💧 | 3 cups | Homemade or low-sodium store-bought |
| Smoked Paprika 🌶️ | 1 tbsp | High-quality for authentic smokiness |
| Ground Cumin 🌿 | 1 tbsp | Freshly ground for best flavor |
| Chili Powder 🌶️ | 1 tbsp | Medium heat preferred |
| Cocoa Powder 🍫 | ½ tbsp | Unsweetened for depth |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For caramelizing onions |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground for heat |
| Fresh Cilantro 🌿 | ¼ cup | Chopped for garnish |
| Lime 🍋 | 1 whole | Juiced for brightness |
The beans are non-negotiable for texture and protein. Dried gives you that satisfying bite, but canned black beans work in a pinch—just drain and rinse. For the best quality, Bob's Red Mill or store-brand dried beans are perfect. Soak them overnight in plenty of water—at least 8 hours—to ensure they're tender. The onions and garlic deserve time too: caramelize them slowly in extra-virgin olive oil until deep golden. This builds the flavor foundation that makes the difference between good chili and restaurant-quality.
No smoked paprika? Substitute 1/2 tsp liquid smoke plus 1/2 tbsp regular paprika—it won't be identical, but close. Cumin is essential for that earthy warmth, but if you're out, 1/2 tsp coriander plus 1/4 tsp fennel seeds mimics it. The cocoa powder might seem odd, but it deepens the flavor without making it sweet. Trader Joe's has affordable unsweetened cocoa that works perfectly. For the tomatoes, fire-roasted diced tomatoes add smokiness, but regular works. If you're using canned tomatoes, crush them slightly with your hands for better texture. And the lime? Freshly juiced is ideal—bottled lime juice lacks brightness.
This chili tastes even better the next day as flavors meld. Store in an airtight container in the fridge for 5-6 days, or freeze portions for up to 3 months. I like to double the batch—one pot for dinner, one for lunches. The beans thicken as they cool, so add a splash of broth if it seems too thick when reheating. For serving, keep the cilantro and lime separate until ready to eat—they'll wilt if mixed in too early. The chili reheats beautifully on the stove with a splash of broth or water.
Why You'll Love This Recipe
- No Meat, No Problem: The deep, smoky sweetness from caramelized onions and garlic makes this chili ridiculously satisfying—no beef needed. Honestly, the black and kidney beans together create this perfect balance of earthy and creamy that feels like a hug in a bowl.
- One-Pot Magic: Soak the beans overnight, dump everything in one pot, and let it simmer—that’s it. Between us, I’ve made this while scrolling through my phone, and it still turns out spot-on every time.
- Budget-Friendly Powerhouse: Dried beans and canned tomatoes stretch this recipe into a week’s worth of lunches without breaking the bank. I’ll be real: my grocery bill dropped by $30 after switching to this as my go-to.
- Weeknight Workhorse: Doubles easily for leftovers, reheats like a dream, and tastes just as good cold the next day. Perfect for when you’ve got a house full of people but zero energy to slave over dinner.
Step-by-step instructions for bean only chili
This smoky, flavorful chili delivers restaurant-quality depth using only beans and thoughtful technique.
Sauté the Aromatic Base
Heat the 2 tablespoons extra-virgin olive oil in a large Dutch oven over medium heat. Add the 2 whole yellow onions that you've diced and cook for 8-10 minutes until they become golden brown and caramelized, releasing sweet aromas. This step builds the foundation for your chili's rich flavor profile.
Next, add the 6 cloves minced garlic and cook for 30 seconds until fragrant but not browned. Here's the thing—garlic burns quickly, so keep an eye on it. Remove the pan from heat briefly if it starts to darken. This aromatic base will carry through the entire chili, ensuring every spoonful is deeply flavorful.
Toast the Spices
Return the Dutch oven to medium heat and add the 1 tablespoon smoked paprika, 1 tablespoon ground cumin, and 1 tablespoon chili powder. Stir constantly for 1-2 minutes until the spices become fragrant and the paprika develops a deep, smoky aroma. This toasting step activates the spices' essential oils, which is crucial for developing that authentic chili flavor.
I always add the 0.5 tablespoon cocoa powder at this stage too. It might seem unusual, but it adds an incredible depth that mimics the complexity of traditional meat-based chilis. Stir it in with the other spices and let it toast for another 30 seconds until fully incorporated. The cocoa will dissolve completely as the chili simmers, creating a velvety texture.
Build the Chili Foundation
Add the 2 cups canned diced tomatoes and stir to combine with the spice mixture. Let this cook for 3-4 minutes until the tomatoes begin to break down slightly. This step helps mellow the acidity of the tomatoes, which is important for balancing the final flavor.
Next, pour in the 3 cups vegetable broth and bring everything to a gentle boil. Here's where it gets important: add the 1.5 cups soaked dried black beans and 1 cup soaked dried kidney beans along with 1.5 teaspoons salt and 0.5 teaspoon black pepper. The beans should be fully submerged in the liquid. If not, add a little more broth. This ensures even cooking and prevents the beans from sticking to the bottom.
Simmer Until Perfectly Tender
Reduce the heat to low and let the chili simmer uncovered for 45-60 minutes. You'll know it's ready when the beans are fork-tender—they should break down slightly but still hold their shape. Stir occasionally to prevent sticking, especially in the first 20 minutes while the beans release starches.
Real talk: Your oven might run hot, so if you notice the chili reducing too quickly, add a splash of water or broth to maintain consistency. The chili should have a thick, stew-like texture but still be spoonable. This simmering time is crucial for developing the beans' natural sweetness and allowing all the flavors to meld together.
Finish and Serve
Once the beans are tender, stir in the juice of the 1 whole lime and let the chili sit off the heat for 5 minutes. This resting period allows the flavors to settle and the lime juice to brighten the dish without making it too acidic. Taste and adjust seasoning if needed—sometimes beans absorb more liquid than expected.
Ladle the chili into serving bowls and garnish with the 0.25 cup chopped fresh cilantro. The cilantro adds a fresh contrast to the smoky, spicy flavors. Serve immediately with crusty bread or over rice to soak up every last bit of that rich, bean-only chili goodness. Each bite should deliver complex layers of smoky, spicy, and slightly sweet flavors that prove meat isn't necessary for an amazing chili.
Pro Tips For Making Bean Only Chili
- SOAK BEANS SEPARATELY: Black beans and kidney beans absorb water at different rates—don’t mix them in the same bowl. Soak black beans for 4-6 hours (or overnight) and kidney beans for 2-3 hours, then drain. This prevents the kidneys from turning mushy while the blacks stay firm. I learned this the hard way when my first batch ended up with a sad, watery pile of overcooked kidney beans.
- CARAMELIZE ONIONS LOW: Skip the high-heat rush—cook onions on medium-low for 20-25 minutes until deep golden, not brown. Too much heat burns them fast, leaving bitter bits that ruin the chili’s sweetness. Stir occasionally and add a splash of water if they stick. Sounds tedious, but it’s the thing that matters most for flavor.
- CRUSH ONE TOMATO CAN: Leave one can of diced tomatoes whole and crush the other with your hands before adding. The texture contrast—chunky vs. saucy—makes the chili more interesting. Also, crushing releases more juice, so you won’t need to add extra liquid later. (Yes, even if you’re impatient like me.)
- SIMMER UNTIL BEANS BURST: Don’t pull the chili off the heat when beans are just tender—keep it at a gentle simmer until they literally split open on their own. This usually takes 1.5–2 hours after boiling. Overlooking this step leaves beans tough, and no one wants that. Start checking at the 1-hour mark.
Health benefits of this bean only chili
Plant-Based Protein Powerhouse
This bean-only chili packs a serious protein punch—1.5 cups of dried black and kidney beans provide a whopping 30 grams of protein per serving (about 180 calories). That's more than many meat-based chilis!
The combination of black beans (rich in fiber) and kidney beans (high in iron) creates a complete protein profile when paired with the tomatoes and spices. 💪
Fiber-Rich for Digestion
With 15 grams of fiber per serving, this chili supports digestive health and keeps you feeling full for hours. The beans' natural fiber content helps regulate blood sugar levels, making this an excellent choice for anyone managing diabetes or simply looking for balanced meals.
I've noticed my energy levels stay steady after eating this chili compared to lighter meals.
Rich in Essential Minerals
The recipe delivers key minerals like iron (18% DV), magnesium (20% DV), and potassium (15% DV) per serving—all crucial for muscle function and heart health. The cocoa powder adds an extra boost of magnesium, while the smoked paprika contributes copper for red blood cell production.
This mineral profile rivals many meat-based chilis while being completely plant-powered.
Antioxidant Boost
Smoked paprika and cocoa powder aren't just for flavor—they're packed with antioxidants like theobromine (from cocoa) and capsaicin (from chili powder). These compounds help combat oxidative stress in your body.
The tomatoes add lycopene, a powerful antioxidant that's especially beneficial when cooked (as in this recipe). It's one of the reasons this chili tastes so vibrant!
Low-Fat, Heart-Healthy
With only 3 grams of fat per serving (all from the olive oil), this chili is naturally low in saturated fat—great for heart health. The monounsaturated fats from the olive oil actually support cardiovascular function, making this a smart choice for anyone watching their cholesterol.
I've made this chili regularly for years and never felt any digestive discomfort, unlike some heavy meat chilis.
Meal Prep Friendly
The chili's high fiber and protein content make it perfect for meal prep—it stays satisfying for 4-5 days in the fridge or 3 months in the freezer without losing nutritional value. The beans' natural starches actually help preserve texture better than many other plant-based meals.
I double the batch every week for easy lunches that keep me full without the midday energy crash. 💡
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried for this bean-only chili?
Yes! For convenience, use 2 (15-oz) cans each of black and kidney beans, drained and rinsed. They'll save you time but won't have the same texture—dried beans develop a better bite. If using canned, reduce simmering time to 30-40 minutes since they're pre-cooked.
How do I make this chili spicier?
Add 1/2 teaspoon cayenne pepper with the other spices or stir in 1 chopped chipotle pepper in adobo sauce when building the chili base. For heat control, remove seeds from chipotles. Always taste first—spices intensify as the chili simmers.
Can I make this in an Instant Pot?
Sauté onions and garlic, then add all spices and tomatoes. Pour in 2 cups broth (beans release moisture), add beans, and cook on high pressure for 10 minutes. Quick-release, then add remaining 1 cup broth and lime juice. The pressure cooker cuts time to 30 minutes total!
Why did my chili turn out too thin?
Beans release starch as they cook—simmer uncovered to thicken naturally. If too thin, mash 1/4 cup beans with a fork to release more starch or stir in 1 tbsp cornstarch mixed with water. For next time, use 1/2 cup less broth or let it reduce longer.
What's the best way to reheat leftovers?
Gently reheat on the stove over low heat with 1-2 tbsp broth or water to prevent drying. Stir frequently—beans thicken when cold. Microwave in 1-minute intervals with a splash of liquid. Never reheat straight from the fridge to avoid uneven cooking.
