Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 tbsp neutral oil
- 2 lb ground beef (90% lean) or ground bison
- 1 large yellow onion, diced; 1 green bell pepper, diced
- 4 garlic cloves, minced
- 1.5 tbsp ancho chili powder; 1 tsp chipotle chile powder
- 2 tsp cumin; 1 tsp smoked paprika; 1 tsp Mexican oregano; 1/4 tsp cinnamon
- 2 tsp kosher salt; 1/2 tsp black pepper
- 2 tbsp tomato paste
- 1 can (28 oz) crushed tomatoes; 1 can (14.5 oz) diced tomatoes
- 1.5 cups low-sodium beef broth; 1 bay leaf
- 1 shot (1 oz) hot espresso or 1/4 cup very strong coffee
- 2 cans (15 oz each) pinto and/or black beans, rinsed
- 1 tbsp apple cider vinegar or lime juice; 1 tsp brown sugar (optional)
- Garnishes: sour cream, cilantro, scallions, cheddar, lime, pickled jalapeños
Do This
- 1. Brew 1 oz espresso; prep onion, pepper, and garlic.
- 2. Brown meat in 1 tbsp oil over medium-high heat, 6–8 minutes; drain excess fat if needed.
- 3. Add onion and bell pepper; cook 5 minutes. Add garlic 1 minute.
- 4. Stir in spices and tomato paste; cook 60–90 seconds to bloom.
- 5. Add crushed and diced tomatoes, broth, espresso, bay leaf; simmer gently 45 minutes, partially covered.
- 6. Stir in beans; simmer 15 minutes uncovered to thicken. Finish with vinegar and optional sugar; season to taste and serve with garnishes.
Why You’ll Love This Recipe
- Espresso adds deep, smoky, bittersweet complexity without making the chili taste like coffee.
- Ancho and chipotle chilies bring warm heat and a rounded chile flavor that is cozy and satisfying.
- Choice of beef or lean bison gives you flexibility with richness or lighter nutrition.
- One-pot stovetop simmer yields thick, hearty chili perfect for weeknights or game day.
Grocery List
- Produce: 1 large yellow onion, 1 green bell pepper, 4 garlic cloves, cilantro, scallions, 2 limes, optional jalapeños
- Dairy: Sour cream, sharp cheddar cheese
- Pantry: Ground beef or bison (2 lb), neutral oil, crushed tomatoes (28 oz), diced tomatoes (14.5 oz), tomato paste, low-sodium beef broth, pinto and/or black beans (two 15 oz cans), ancho chili powder, chipotle chile powder, ground cumin, smoked paprika, Mexican oregano, cinnamon, kosher salt, black pepper, bay leaf, apple cider vinegar, brown sugar (optional), espresso or strong coffee
Full Ingredients
Chili Base
- 1 tbsp neutral oil (avocado, canola, or vegetable)
- 2 lb ground beef (90% lean) or ground bison
- 1 large yellow onion, small dice (about 1.5 cups)
- 1 green bell pepper, small dice (about 1 cup)
- 4 garlic cloves, minced
- 1 can (28 oz) crushed tomatoes
- 1 can (14.5 oz) fire-roasted diced tomatoes, with juices
- 2 tbsp tomato paste
- 1.5 cups low-sodium beef broth
- 1 shot (1 oz) freshly brewed espresso, or 1/4 cup very strong coffee
- 2 cans (15 oz each) beans such as pinto and black, drained and rinsed
- 1 bay leaf
Spices & Seasoning
- 1.5 tbsp ancho chili powder
- 1 tsp ground chipotle chile powder (use 1/2 tsp for milder heat)
- 2 tsp ground cumin
- 1 tsp smoked paprika
- 1 tsp dried Mexican oregano
- 1/4 tsp ground cinnamon
- 2 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground black pepper
Finish & Garnish
- 1 tbsp apple cider vinegar or fresh lime juice
- 1 tsp brown sugar or maple syrup (optional, to balance bitterness)
- For serving: chopped cilantro, sliced scallions, shredded sharp cheddar, sour cream, lime wedges, pickled jalapeños

Step-by-Step Instructions
Step 1: Brew espresso and prep aromatics
Brew 1 oz of espresso (or 1/4 cup very strong coffee) and set aside. Dice the onion and bell pepper and mince the garlic so everything is ready to go. This chili cooks best when ingredients are prepped in advance.
Step 2: Brown the meat
Heat a large, heavy pot or Dutch oven over medium-high heat. Add 1 tbsp oil, then add the ground beef or bison. Let it sear undisturbed for 2–3 minutes to develop color, then break it into crumbles. Cook until well browned, 6–8 minutes total. If there is more than 1–2 tbsp rendered fat, spoon off the excess.
Step 3: Soften onions and peppers
Add the diced onion and bell pepper to the pot. Cook over medium heat, stirring occasionally, until softened and lightly translucent, about 5 minutes. Add the minced garlic and cook for 1 minute until fragrant.
Step 4: Bloom spices and tomato paste
Sprinkle in ancho chili powder, chipotle chile powder, cumin, smoked paprika, Mexican oregano, cinnamon, salt, and black pepper. Add the tomato paste. Stir constantly for 60–90 seconds. Blooming spices in fat wakes up their oils and deepens flavor.
Step 5: Add liquids, espresso, and simmer
Stir in the crushed tomatoes, diced tomatoes with their juices, beef broth, espresso, and the bay leaf. Scrape the bottom of the pot to release any browned bits. Bring to a simmer, then reduce heat to maintain a gentle, steady bubble. Partially cover and cook for 45 minutes, stirring every 10–15 minutes. Adjust heat as needed to avoid a vigorous boil.
Step 6: Add beans and thicken
Stir in the rinsed beans. Simmer uncovered for 15 minutes to allow the chili to thicken and the flavors to meld. If it thickens too much, add a splash of broth; if it is too loose, continue simmering uncovered. Taste and add the optional 1 tsp brown sugar if you want to soften the chili’s bitter edges.
Step 7: Finish and serve
Remove the bay leaf. Stir in 1 tbsp apple cider vinegar or a squeeze of lime to brighten the flavors. Taste and adjust salt and chipotle to your preference. Let the chili rest off heat for 5–10 minutes. Ladle into warm bowls and garnish with sour cream, shredded cheddar, cilantro, scallions, lime wedges, and pickled jalapeños.
Pro Tips
- Espresso is a seasoning here, not a main flavor—stick to 1 oz to add depth without tasting like coffee.
- Blooming the spices with tomato paste intensifies flavor and reduces any raw spice taste.
- For extra smoky notes, swap smoked paprika for half of the regular paprika and consider fire-roasted tomatoes.
- Thickness control: simmer uncovered to reduce; if it gets too thick, add broth 2–3 tbsp at a time.
- Even better tomorrow: Chili improves after a night in the fridge. Reheat gently with a splash of broth.
Variations
- Lean and gamey: Use ground bison for a cleaner, slightly sweeter profile; the espresso pairs especially well with bison’s lean richness.
- Bean or no-bean: Make it Texas-style by skipping beans and adding 1 more pound of meat; or go three-bean vegetarian by doubling beans and swapping in 12 oz finely chopped mushrooms for the meat.
- Set-and-forget: Slow cooker on Low for 6–7 hours (brown meat and bloom spices on the stovetop first). Instant Pot: sauté to brown and bloom, add liquids, pressure cook 15 minutes, natural release 10 minutes, then add beans and simmer on sauté to thicken.
Storage & Make-Ahead
Cool completely, then refrigerate in airtight containers for up to 4 days. Freeze up to 3 months in 1–2 cup portions for easy defrosting. Reheat on the stovetop over medium-low heat or in the microwave until steaming hot (165°F), adding a splash of broth or water if needed. Chili often tastes even better the next day as flavors marry.
Nutrition (per serving)
Approximate values using 90% lean beef, 6 servings, without garnishes: 430 calories; 31 g protein; 29 g carbohydrates; 17 g fat; 8 g fiber; 880 mg sodium.

