In a large pot, heat olive oil over medium heat. Add diced onion and cook until translucent, about 5 minutes.
Add minced garlic and cook for an additional minute, until fragrant.
Increase heat to medium-high and add ground beef to the pot. Cook, breaking it apart with a spoon, until browned and no longer pink.
Drain any excess fat from the pot, if necessary.
Stir in chili powder, cumin, smoked paprika, oregano, and cayenne pepper (if using). Cook for 2 minutes to allow the spices to become fragrant.
Pour in the crushed and diced tomatoes along with their juices, and add beef broth. Stir to combine.
Bring the mixture to a boil, then reduce heat to low and simmer uncovered for 20-25 minutes, stirring occasionally.
Season with salt and pepper to taste. Serve hot with your choice of toppings such as shredded cheese, sour cream, or green onions.