Heat your big pot over medium heat and add a splash of oil until it shimmers. Toss in the chopped onions and sauté, stirring regularly, until they turn translucent and start to caramelize, filling the kitchen with a sweet, fragrant aroma—about 5 minutes.
Add the minced garlic to the onions and stir quickly; cook for about 30 seconds until it releases a fragrant aroma, being careful not to burn it.
Increase the heat to medium-high and add the ground beef in chunks. Brown the meat, breaking it apart with your spoon, until it’s no longer pink and develops a deep, rich crust in spots—about 8 minutes.
Sprinkle in the chili powder, cumin, paprika, and a pinch of cinnamon. Stir well and cook for 1 minute until the spices toast and release their aroma. If the mixture looks dry, splash in a little broth or water to keep it moist.
Add the canned tomatoes, crushing them with your spoon to break them apart. Bring the mixture to a gentle simmer, then reduce the heat to low. Cover partially and let it cook slowly for at least 2 hours, stirring occasionally, until the sauce thickens and deepens in color.
Halfway through cooking, stir in the rinsed beans and adjust seasoning with salt and pepper. If the chili gets too thick, add a splash of broth to loosen it up. The chili should be thick, glossy, and clinging to the meat and beans.
Check for doneness by piercing a piece of meat—if it’s tender—and taste the sauce; it should be smoky, spicy, and well-blended. Adjust spices if needed.
Turn off the heat and let the chili rest for 10 minutes to allow flavors to meld and deepen. Serve hot, topped with your favorite garnishes like cilantro, shredded cheese, or a squeeze of lime for brightness.