This classic vegan chili is everything you want in a bowl of comfort food: hearty beans, sweet corn, and a rich, spiced tomato base that simmers into something deeply satisfying. It comes together with pantry staples in under an hour, making it just as easy for a weeknight dinner as it is for a big pot to feed a crowd.

Photos by Lori Maffei.
Key Ingredients & Substitutions
- Olive oil. Just enough to soften the aromatics. Any neutral oil works fine if that's what you have on hand.
- Onions. The flavor backbone of the chili. White or yellow onions both work well here.
- Garlic. Adds depth and a little bite. Pre-minced garlic is a fine time-saver, though fresh is best.
- Green bell pepper. Adds sweetness and texture. A poblano or red bell pepper are both good swaps if you want a different flavor note.
- Pinto or pink beans. Creamy and hearty, and what gives this chili its classic texture. Kidney beans, black beans, or a mix of all three work just as well.
- Crushed tomatoes. Forms the base of the sauce. Diced tomatoes pulsed briefly in a blender make a good substitute if that's what's in your pantry.
- Corn kernels. Adds little pops of sweetness throughout. Frozen corn works year-round, or you can leave it out for a more traditional bean chili.
- Fresh hot chili peppers or canned green chiles. This is where you control the heat. Jalapeños, serranos, or a can of mild chopped green chiles all work depending on how spicy you like it.
- Dried oregano. A classic chili seasoning. Mexican oregano has a slightly citrusy edge if you can track it down.
- Chili powder. The main seasoning in the pot, so it's worth using a good-quality blend rather than one that's mostly filler.
- Ground cumin. Earthy and warm, and essential to that classic chili flavor. Freshly ground cumin has noticeably more punch than pre-ground if you have a spice grinder.
- Salt. Added at the end so you can season to taste once the chili has reduced and concentrated.
Helpful Tips
Don't rush the onions. Sautéing the onions and garlic until they're truly soft and starting to turn golden - not just translucent - builds a much deeper flavor base for the whole pot. Give it a full 6 to 8 minutes over medium heat rather than cutting it short.
Use a good chili powder. Chili powder blends vary a lot in quality and freshness. A stale or filler-heavy chili powder will leave the whole dish tasting flat, so it's worth reaching for a fresher, more flavorful brand if your usual one has been sitting in the cabinet for years.
Let it simmer low and slow. A full 30-minute simmer, covered, gives the beans and vegetables time to soften and the flavors time to meld. Resist the urge to crank the heat to speed things up - a gentle simmer keeps the tomatoes from scorching on the bottom of the pot.
Adjust the thickness as you go. This chili is meant to be thick, not soupy, but every batch of beans and tomatoes releases a different amount of liquid. If it looks too dense partway through cooking, stir in water a half cup at a time until it's exactly how you like it.
Give it a rest before serving. If you have the time, let the finished chili sit off the heat for an hour before reheating and serving. Like most stews, it actually tastes better once the flavors have had a chance to settle and deepen.
Variations
- Spicier chili. Add one or two extra seeded and minced jalapeños or other hot peppers, or stir in jarred sliced jalapeños to taste. Let it simmer for another 5 minutes after adding them so the heat has time to spread through the pot.
- Cheesy topped. Pass around a bowl of shredded vegan cheddar-style cheese for topping individual servings at the table.
- Textured chili. If you'd like a heartier, more textured bowl without a "meaty" quality, stir in about a cup of cooked quinoa, bulgur, or whole-grain couscous near the end of cooking.
- Smoky chili. Add a minced chipotle pepper in adobo sauce, or a teaspoon of smoked paprika, for a deeper, smokier flavor.
- Slow cooker chili. Sauté the onion and garlic on the stovetop first, then transfer everything to a slow cooker and cook on low for 6 to 7 hours, or on high for 3 to 4.
- Extra vegetables. Diced zucchini, carrots, or sweet potato all cook down nicely in this chili and stretch the pot even further.
Serving Ideas
This chili is at its best served hot in bowls with a wedge of Green Chile Cornbread or a slice of Easy Vegan Cornbread alongside for scooping up the last bites. A basket of warm biscuits works just as well if cornbread isn't on hand.
For toppings, set out diced avocado, a dollop of vegan sour cream, chopped fresh cilantro, or a sprinkle of shredded vegan cheese so everyone can build their own bowl. Leftovers also make a great topping for a baked potato or a scoop of rice.

Storing & Freezing
Let the chili cool to room temperature, then store leftovers in an airtight container in the refrigerator for up to 5 days. The flavor actually improves after a day or two, making this one of those recipes that's even better as leftovers.
This chili freezes beautifully. Portion cooled chili into freezer-safe containers or bags and freeze for up to 3 months. Thaw overnight in the refrigerator, then reheat gently on the stovetop over low heat, adding a splash of water or vegetable broth if it's thickened up too much in the freezer.

More Vegan Soups, Stews, and Chilis
If you loved this recipe, here are a few more you might enjoy:
- Sweet Potato Black Bean Chili
- Smoky Lentil and Sweet Potato Chili
- VegKitchen's Vegan Chili Recipe Round-Up
Recipe

Classic Vegan Chili
Ingredients
- 1 tablespoon olive oil (15 mL)
- 2 medium onions finely chopped (about 320g)
- 2 cloves garlic minced (6g)
- 1 large green bell pepper finely chopped (150g)
- 4 cups cooked pinto or pink beans about 1 â…” cups dry, or two 15-ounce cans, drained and rinsed (680g)
- 28 ounce can crushed tomatoes (794g)
- 1 ½ cups corn kernels cooked fresh or thawed frozen (225g)
- 1-2 fresh hot chili peppers seeded and minced, or one 4-ounce can mild or hot chopped green chiles (113g)
- 1 teaspoon dried oregano (1g)
- 2-3 teaspoons chili powder good-quality, more or less to taste (5-7g)
- 1 teaspoon ground cumin (2g)
- salt to taste
Instructions
- Heat the olive oil in a large soup pot or Dutch oven over medium heat. Add the onions and garlic and sauté, stirring occasionally, for 6 to 8 minutes, until the onions are softened and starting to turn golden.
- Stir in the bell pepper, beans, crushed tomatoes, corn, chili peppers (or canned green chiles), oregano, chili powder, and cumin. Bring to a gentle simmer, then cover and cook over low heat for 30 minutes, stirring occasionally. If the chili looks too thick, stir in water a half cup at a time until it reaches a consistency you like — it should stay thick, not soupy.
- Season with salt to taste and adjust the other seasonings as needed. If you have time, let the chili stand off the heat for about an hour to let the flavors meld, then reheat gently over low heat before serving in bowls.








Brandie says
Sounds good! Just wondering if a liquid was omitted bc it seems really thick - more so than normal chili. I ended up putting water in it
Nava says
Brandie, there are always varying factors involved, like the amount of liquid in the tomatoes, how much heat is applied, etc. I like my chili really thick, but I'll put a note at the end of the recipe that if a less dense consistency is desired, the cook can add a bit of water, as you did. Thanks for your input!
Brandie says
Yes- this recipe calls for crushed tomatoes. It smells really good- cant wait to dig in 🙂
Brandie says
Thank you!! This recipe is really good - added a about a half cup of water and a bit more spices to make up for the water being added.
Will be making this again 🙂
Nava says
Glad you liked it, Brandie, and thanks again for your feedback.
Jan says
Great balance between sweet and spicy. I used 1 teaspoon of olive oil instead of 1 tablespoon with great results. The fresh corn really makes this dish. I wouldn't change a thing. It's a keeper!
Nava says
Thanks, Jan — glad you enjoyed it!