Heat oil: In a large Dutch oven over medium heat, add olive oil.
Brown beef: Add ground beef and cook until browned, about 5–7 minutes. Drain any excess fat.
Sauté aromatics: Add chopped onions, garlic, and bell pepper. Cook 3–4 minutes until softened.
Add seasonings: Stir in chili powder, cumin, paprika, cayenne, salt, pepper, and brown sugar. Toast spices for 30 seconds.
Add tomatoes & beans: Mix in tomato paste, crushed tomatoes, both beans, and beef broth. Stir to combine.
Simmer: Reduce heat to low and simmer uncovered for 45–60 minutes, stirring occasionally.
Adjust & rest: Taste and adjust seasoning, then let rest 10 minutes before serving.
Garnish & serve: Top with cheese, sour cream, and fresh herbs. Serve hot with cornbread or rice.