Warm the pot: Set a large, heavy pot over medium heat. Add oil and let it shimmer.
Brown the beef: Add the ground beef. Break it up with a spoon and cook until browned, about 5–7 minutes.
Season with a pinch of salt and pepper. If there’s a lot of grease, spoon off excess, leaving about a tablespoon for flavor.
Sauté aromatics: Add onion and bell pepper. Cook until softened, 4–5 minutes.
Stir in garlic and cook 30 seconds, just until fragrant.
Toast the spices: Add chili powder, cumin, smoked paprika, and oregano. Stir for 30–60 seconds to bloom the spices.
Tomato boost: Stir in tomato paste and cook 1 minute. This deepens the flavor and cuts raw tomato taste.
Build the base: Pour in crushed tomatoes and broth.
Scrape up any browned bits from the bottom of the pot.
Add the beans: Stir in kidney and black beans. Bring everything to a gentle simmer.
Simmer and season: Reduce heat to low. Simmer 20–30 minutes, stirring now and then.
Taste and season with salt, pepper, and a pinch of brown sugar if the tomatoes are sharp. Add red pepper flakes or cayenne for heat.
Adjust thickness: If too thick, splash in more broth. If too thin, simmer a few more minutes uncovered until it reaches your preferred consistency.
Serve: Ladle into bowls and top with cheese, sour cream, and green onions.
Add lime for brightness. Serve with cornbread, rice, or chips.