In a large skillet over medium-high heat, warm the oil and add the onion and bell pepper. Let them cook, stirring now and then, until softened and just beginning to turn golden, about 10–15 minutes.
Add the ketchup and cook, stirring occasionally, until it deepens in color and reduces into a thick, rich paste, about 7 to 10 minutes.
Stir in the garlic and chili powder and cook until fragrant, about 1 minute. Add the vinegar, mustard, brown sugar, and Worcestershire sauce, then season with salt and pepper. Continue cooking, stirring frequently, until everything is well combined, about 1 minute longer.
Turn the heat up to high and add the ground beef. Use a fork to break it apart, making sure there are no large pieces left. Cook, stirring often, until the beef is fully browned, about 5 minutes.
Stir in the tomato sauce and bring the mixture to a boil, making sure everything is well combined. Remove from the heat and let it cool slightly, then taste and season with salt if needed.
Spoon the beef mixture onto the buns and serve.