Heat olive oil in a large pot over medium heat. Add diced onion and half of the minced garlic, cooking until softened, about 5 minutes.
Add ground beef and brown thoroughly, breaking it apart with a wooden spoon, about 8-10 minutes. Drain excess fat.
Stir in chili powder, cumin, smoked paprika, oregano, salt, and pepper. Cook for 2 minutes until fragrant.
Add crushed tomatoes, tomato paste, beef broth, and kidney beans. Stir to combine thoroughly.
Bring to a boil, then reduce heat to low. Cover and simmer for 2 hours, stirring occasionally.
Add remaining minced garlic and continue simmering uncovered for 1 more hour, stirring every 15 minutes.
Taste and adjust seasonings as needed before serving hot with your favorite toppings.