Heat olive oil in a large pot over medium-high heat. Add the diced onions and cook until soft and translucent, about 5 minutes. Stir in the minced garlic and cook for 1 more minute until fragrant.
Add the ground beef to the pot. Cook, breaking it apart with a spoon, until fully browned. Drain excess fat if needed.
Stir in the tomato paste, crushed tomatoes, and beef broth. Mix well so the tomato paste is fully incorporated. Bring to a gentle simmer.
Add chili powder, cumin, smoked paprika, oregano, cayenne, salt, and pepper. Stir to evenly coat the meat mixture with the spices.
Reduce heat to low and let the chili simmer uncovered for 60 minutes, stirring occasionally. Add more beef broth if the chili becomes too thick.
Stir in the kidney beans and pinto beans. Continue simmering for another 30 minutes to allow the flavors to meld.
Taste and adjust seasoning as needed. Serve hot with optional garnishes such as shredded cheese, sour cream, chopped green onions, or fresh cilantro.
Enjoy!