Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 tbsp olive oil
- 1 large yellow onion, diced
- 2 bell peppers (any colors), diced
- 2 medium carrots, diced
- 4 cloves garlic, minced
- 2 tbsp tomato paste
- 2 tbsp chili powder
- 2 tsp ground cumin
- 1 tsp smoked paprika
- 1/2 tsp dried oregano
- 1 tbsp unsweetened cocoa powder
- 1/4 tsp cayenne pepper (optional)
- 2 cans (15 oz each) kidney beans, drained and rinsed
- 1 can (15 oz) black beans, drained and rinsed (optional)
- 1 can (28 oz) diced tomatoes with juices
- 2 cups vegetable broth
- 1 1/2 cups corn kernels (canned, drained, or frozen)
- 1–1 1/2 tsp fine sea salt, plus more to taste
- Freshly ground black pepper, to taste
- 1 tbsp lime juice
- Fresh cilantro, shredded cheese, sour cream, and green onions for serving (optional)
Do This
- 1. Warm oil in a large pot over medium heat. Sauté onion, carrots, and peppers for 8–10 minutes until softened.
- 2. Stir in garlic, tomato paste, chili powder, cumin, smoked paprika, oregano, cocoa, and cayenne; cook 1–2 minutes until fragrant.
- 3. Add kidney beans, black beans (if using), diced tomatoes with juices, vegetable broth, salt, and pepper. Stir well.
- 4. Bring to a gentle boil, then reduce to low. Cover partially and simmer 25–30 minutes, stirring occasionally.
- 5. Stir in corn and lime juice. Simmer uncovered 5–10 minutes more, until thick and hearty. Adjust salt, pepper, and heat to taste.
- 6. Let rest 5 minutes off the heat. Serve hot with cilantro, cheese, sour cream, green onions, and your favorite cornbread or rice.
Why You’ll Love This Recipe
- Deep, rich flavor from a clever touch of unsweetened cocoa powder and warm spices.
- Totally meatless, but hearty and satisfying thanks to beans, veggies, and a thick, cozy broth.
- Uses simple pantry staples and flexible vegetables you may already have on hand.
- Perfect for meal prep: it tastes even better the next day and freezes beautifully.
Grocery List
- Produce: 1 large yellow onion, 2 bell peppers, 2 medium carrots, 4 cloves garlic, 1 lime, fresh cilantro, green onions (for serving, optional), avocado (optional).
- Dairy (optional for serving): Shredded cheddar or Monterey Jack cheese, sour cream or plain Greek yogurt.
- Pantry: Olive oil, tomato paste, chili powder, ground cumin, smoked paprika, dried oregano, unsweetened cocoa powder, cayenne pepper, fine sea salt, black pepper, 2 cans kidney beans, 1 can black beans (optional), 1 can diced tomatoes (28 oz), vegetable broth, canned or frozen corn, tortilla chips or cornbread (for serving, optional).
Full Ingredients
For the Homestyle Veggie Chili
- 2 tbsp olive oil
- 1 large yellow onion, diced (about 1 1/2 cups)
- 2 medium carrots, diced (about 1 cup)
- 2 bell peppers, any colors, diced (about 2 cups)
- 4 cloves garlic, minced
- 2 tbsp tomato paste
- 2 cans (15 oz each) kidney beans, drained and rinsed
- 1 can (15 oz) black beans, drained and rinsed (optional, for extra heartiness)
- 1 can (28 oz) diced tomatoes with their juices
- 2 cups vegetable broth (low-sodium if possible)
- 1 1/2 cups corn kernels (one 15 oz can, drained, or frozen corn; no need to thaw)
- 1–1 1/2 tsp fine sea salt, plus more to taste
- 1/2 tsp freshly ground black pepper, plus more to taste
- 1 tbsp fresh lime juice (about 1/2 lime)
Spice & Cocoa Blend
- 2 tbsp chili powder
- 2 tsp ground cumin
- 1 tsp smoked paprika
- 1/2 tsp dried oregano
- 1 tbsp unsweetened cocoa powder
- 1/4 tsp cayenne pepper (optional, adjust to your preferred heat level)
Optional Toppings & Sides
- 1/4 cup chopped fresh cilantro
- 1 cup shredded cheddar or Monterey Jack cheese (or plant-based cheese)
- 1/2 cup sour cream or plain Greek yogurt (or dairy-free alternative)
- 2–3 green onions, thinly sliced
- 1 avocado, diced or sliced
- Crushed tortilla chips or warm cornbread, for serving
- Lime wedges, for extra brightness

Step-by-Step Instructions
Step 1: Prep all your vegetables and ingredients
Start by getting all your chopping out of the way. Dice the onion, carrots, and bell peppers into small, even pieces so they cook at the same rate. Mince the garlic. Rinse and drain the kidney beans and black beans (if using) until the water runs mostly clear. If you are using canned corn, drain it well; if you are using frozen corn, you can leave it frozen for now. Measure out your spices and cocoa powder into a small bowl so they are ready to go. This little bit of prep makes the cooking process smooth and stress-free.
Step 2: Soften the onions, carrots, and peppers
Place a large, heavy-bottomed pot or Dutch oven on the stove over medium heat. Add the olive oil and let it warm for about 1 minute. Add the diced onion, carrots, and bell peppers. Stir to coat the vegetables in the oil, then cook for 8–10 minutes, stirring occasionally, until the onion is translucent and the carrots and peppers have softened. If the vegetables start to brown too quickly, reduce the heat slightly. You are aiming for softened, sweet vegetables without burning.
Step 3: Add garlic, tomato paste, spices, and cocoa
Stir in the minced garlic and cook for 30 seconds, just until fragrant. Add the tomato paste, chili powder, cumin, smoked paprika, dried oregano, cocoa powder, and cayenne (if using). Stir constantly for 1–2 minutes. You want the tomato paste to darken slightly in color and the spices to become very fragrant. This step, called blooming the spices, helps release their oils and builds a deep, rich base flavor for your chili.
Step 4: Add beans, tomatoes, and broth, then bring to a simmer
Pour in the kidney beans, black beans (if using), diced tomatoes with all their juices, and vegetable broth. Add 1 tsp of the salt and the black pepper. Stir well, scraping along the bottom of the pot to loosen any browned bits; those add a lot of flavor. Increase the heat to medium-high and bring the mixture to a gentle boil. As soon as it starts bubbling, reduce the heat to low so the chili is at a steady, gentle simmer rather than a rolling boil.
Step 5: Simmer until thick, then add corn and lime
Partially cover the pot with a lid (leave a small gap for steam to escape) and let the chili simmer for 25–30 minutes, stirring every 5–10 minutes to prevent sticking. The liquid will reduce and the chili will become thicker and richer. After 25–30 minutes, stir in the corn and lime juice. Taste and add more salt if needed, 1/4 tsp at a time. Simmer uncovered for another 5–10 minutes to let the flavors mingle and to reach your desired thickness.
Step 6: Adjust seasoning and let it rest
Turn off the heat and let the chili rest for about 5 minutes before serving. This brief rest helps everything settle and the flavors to round out. Taste again and adjust the seasoning: add more salt or pepper if needed, a pinch more cayenne if you like it hotter, or an extra squeeze of lime juice if you want more brightness. If the chili is thicker than you prefer, stir in a splash or two of broth or water. If it is thinner than you like, continue simmering over low heat, uncovered, stirring frequently, until it thickens.
Step 7: Serve with your favorite toppings
Ladle the hot veggie chili into bowls. Top each serving with chopped cilantro, shredded cheese, a spoonful of sour cream or yogurt, and sliced green onions, if using. Add avocado, crushed tortilla chips, or a side of warm cornbread for extra comfort. Serve with lime wedges on the side so everyone can add more brightness to taste. This chili is fantastic on its own, over rice, or spooned onto baked potatoes for an extra-hearty meal.
Pro Tips
- Bloom the spices properly: Do not skip the step of cooking the spices and tomato paste briefly in oil. It dramatically deepens the flavor and makes the cocoa blend in smoothly.
- Adjust thickness to your liking: For a thicker, almost stew-like chili, simmer uncovered for longer. For a looser chili, simply add more vegetable broth a little at a time.
- Balance the flavors: If the chili tastes a bit flat, it usually needs a pinch more salt or a hit of acid. Try another squeeze of lime or a tiny pinch of sugar to round out the acidity from the tomatoes.
- Control the heat: Add cayenne in small amounts and taste as you go. You can always pass hot sauce at the table so spice-lovers can adjust their own bowls.
- Make it ahead: This chili tastes even better the next day after the flavors have had time to meld, making it perfect for meal prep or entertaining.
Variations
- Smoky chipotle chili: Add 1–2 minced chipotle peppers in adobo sauce along with the spices, and reduce or omit the cayenne. This adds a deep, smoky heat that pairs beautifully with the cocoa.
- Sweet potato and black bean chili: Replace the carrots with 2 cups of peeled, diced sweet potato, and use 2 cans of black beans instead of kidney beans. Simmer until the sweet potatoes are tender.
- Slow-cooker version: Sauté the onion, carrots, peppers, garlic, tomato paste, spices, and cocoa in a skillet as directed, then transfer everything to a slow cooker. Add beans, tomatoes, broth, and corn. Cook on Low for 6–7 hours or on High for 3–4 hours. Stir in lime juice at the end.
Storage & Make-Ahead
Allow the chili to cool to room temperature before storing. Transfer to airtight containers and refrigerate for up to 4–5 days. The flavors actually deepen over time, so it is excellent for make-ahead lunches and dinners. For longer storage, freeze in labeled containers for up to 3 months. To reheat, thaw overnight in the refrigerator if frozen, then warm gently on the stove over medium-low heat, stirring occasionally and adding a splash of broth or water if it has thickened too much. You can also reheat individual portions in the microwave, stirring halfway through to ensure even heating.
Nutrition (per serving)
Approximate values per serving (1 of 6, without toppings): 290 calories; 12 g protein; 6 g fat; 50 g carbohydrates; 13 g dietary fiber; 8 g sugars; 800 mg sodium (will vary based on broth, tomatoes, and added salt). Adding cheese, sour cream, avocado, or serving with cornbread or rice will increase the calorie and fat content.

