Warm the oil in a large pot over medium-high heat.
Brown the ground beef, breaking it into small pieces. Drain excess fat.
Stir in onion, celery, and bell pepper. Cook until softened, about 5–6 minutes.
Add garlic, chili powder, cumin, paprika, oregano, salt, and pepper. Toast the spices for 30 seconds.
Pour in diced tomatoes, tomato sauce, beef broth, and sugar. Scrape the pot to release browned bits.
Bring to a gentle boil, then reduce heat. Simmer partially covered for 45 minutes, stirring occasionally.
Stir in kidney and pinto beans. Simmer 15 minutes more to thicken and meld flavors.
Finish with white vinegar. Taste and adjust salt and pepper. Let rest 5 minutes before serving.