In a large pot or Dutch oven, brown the ground beef over medium-high heat, breaking it into small pieces. Drain excess fat, leaving about 1 tablespoon in the pot.
Add the chopped onion and green bell pepper to the pot. Cook for 5–7 minutes until softened.
Stir in the minced garlic and cook for 1 minute until fragrant.
Add the tomato paste and stir to combine with the meat and vegetables.
Pour in the crushed tomatoes, diced tomatoes, beef broth, kidney beans, and pinto beans. Stir well.
Add the chili powder, cumin, paprika, cayenne (if using), salt, black pepper, and sugar. Stir to combine.
Bring the chili to a boil, then reduce the heat to low. Cover and simmer for 1 hour, stirring occasionally.
Taste and adjust seasoning if needed. Simmer uncovered for an additional 15–30 minutes to thicken, if desired.
Serve hot, garnished with shredded cheese, sour cream, or chopped onions if desired.
Notes
For best flavor, let the chili rest for 10–15 minutes before serving. Leftovers taste even better the next day!