Heat olive oil in a large pan over medium heat. Add diced onions, garlic, and chili. Sauté until softened.
Stir in smoked paprika, cumin, and cinnamon. Cook for 1 minute until aromatic.
Add the ground beef and cook until browned, breaking it apart with a spoon.
Mix in tomato paste, red and yellow peppers. Cook for another 3–4 minutes.
Pour in the chopped tomatoes and beef stock. Stir well and bring to a boil.
Reduce heat, cover, and simmer for 30 minutes.
Add kidney beans and simmer uncovered for another 10–15 minutes to thicken.
Season with salt and pepper to taste. Garnish with cilantro and serve with sour cream and rice or tortillas.