In a large skillet over medium-high heat, heat oil. Cook onion and bell pepper, stirring occasionally, until softened and slightly golden, 10 to 15 minutes.
Add ketchup and cook, stirring occasionally, until color has darkened and ketchup is reduced to a thick paste, 7 to 10 minutes.
Add garlic and chili powder and cook, stirring, until fragrant, about 1 minute. Add vinegar, mustard, brown sugar, and Worcestershire sauce; season with salt and pepper. Cook, stirring frequently, until incorporated, about 1 minute more.
Increase heat to high and add ground beef. Using a fork, break apart beef until separated and no big lumps remain. Cook, stirring frequently, until browned, about 5 minutes.
Add tomato sauce and bring to a boil, stirring to combine. Let cool slightly; season with salt, if needed.
Divide beef mixture among buns and serve.
