This mixed-bean chilli is thick, smoky and satisfying enough that nobody will miss the meat. It uses everyday tins and store-cupboard spices, comes together in one pan, and only gets better the next day.
A good vegan chilli should be deep, smoky and thick, not a watery bowl of beans. This one leans on a mix of beans for texture, tomatoes and a proper spice blend for backbone, and a little cocoa for savoury depth. It’s a forgiving one-pan supper that feeds four generously and reheats brilliantly for lunch.
Ingredients
- 2 tbsp olive oil
- 1 large onion — finely chopped
- 1 red pepper — diced
- 3 cloves garlic — crushed
- 2 tbsp tomato purée
- 1 tbsp ground cumin
- 1 tbsp smoked paprika
- 1-2 tsp chilli powder — to taste
- 1 tsp ground coriander
- 1 tsp cocoa powder — unsweetened
- 2 x 400g tins chopped tomatoes
- 3 x 400g tins mixed beans — e.g. kidney, black and cannellini, drained and rinsed
- 200ml vegetable stock
- 1 tsp sugar — or maple syrup
Method
- Heat the oil in a large heavy pan over a medium heat. Add the onion and red pepper with a pinch of salt and cook for 6-8 minutes until soft and starting to colour.
- Stir in the garlic and cook for a minute, then add the tomato purée, cumin, smoked paprika, chilli powder, ground coriander and cocoa. Fry for 1-2 minutes until fragrant and the spices smell toasty.
- Tip in both tins of chopped tomatoes, the drained beans, stock and sugar. Season well with salt and pepper and stir to combine.
- Bring up to a gentle simmer, then turn the heat down low. Cook uncovered for 25-30 minutes, stirring now and then, until thick enough to hold a spoon-trail across the base of the pan.
- If it looks dry, splash in a little more stock or water; if it's still loose, simmer a few minutes longer. Taste and adjust the salt, chilli and a squeeze of lime if you like.
- Rest off the heat for 5 minutes so the flavours settle, then serve hot with your chosen toppings.
Serve it with
- Fluffy white or brown rice
- Warm tortillas or crusty bread
- Sliced avocado or guacamole
- A squeeze of fresh lime
- Chopped coriander and sliced spring onion
- Tortilla chips for scooping
Why this works
Toasting the spices and a spoon of cocoa build the deep, meaty savouriness that quick vegan chillies usually lack, while a mix of beans gives varied texture instead of one uniform mush.
Common swaps
- Swap one tin of beans for cooked green lentils for a softer, saucier texture.
- No cocoa? A square of dark chocolate stirred in at the end does the same job.
- Add a diced courgette or a handful of frozen sweetcorn with the tomatoes for extra veg.
- Use a chopped fresh chilli or chipotle paste in place of chilli powder for a smokier heat.
- Stir through vegan mince browned at the start if you want a heftier bowl.
Common mistakes to avoid
- Not frying the spices — raw spice tastes dusty; give them a minute in the pan first.
- Simmering with a lid on, which traps steam and leaves the chilli thin and watery.
- Under-seasoning; beans and tomatoes need a confident hand with salt to taste balanced.
- Rushing it — the last 20 minutes of gentle simmering is where the flavour deepens.
Storage, freezing & reheating
Storage: Cool quickly and keep covered in the fridge for up to 4 days; the flavour improves overnight.
Freezing: Freezes very well for up to 3 months. Portion into airtight containers and freeze once fully cooled.
Reheating: Reheat gently in a pan or microwave until piping hot throughout, adding a splash of water if it has thickened. Defrost overnight in the fridge first for best results.
Allergen notes: contains Celery (commonly present in vegetable stock — check your brand). Always check individual product labels.
Estimated nutrition
Per serving, estimated from typical ingredient values — not a substitute for precise dietary calculation.
| Calories | 410 kcal |
|---|---|
| Protein | 19 g |
| Carbohydrate | 62 g |
| Fat | 9 g |