Hearty Vegan Chilli in 45 Minutes

Kitchen-reviewed Updated Jul 2026 Written from established cooking principles and checked for sense and safety. Not independently lab-tested.
Bowl of thick vegan bean chilli topped with avocado, coriander and lime, served with rice and tortilla chips.

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.

Prep10 mins
Cook35 mins
Total45 mins
Serves4
Difficultyeasy
Jump to recipe

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

Scale for 4 servings
  • 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

  1. 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.
  2. 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.
  3. Tip in both tins of chopped tomatoes, the drained beans, stock and sugar. Season well with salt and pepper and stir to combine.
  4. 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.
  5. 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.
  6. 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.

Calories410 kcal
Protein19 g
Carbohydrate62 g
Fat9 g