Cook the bacon in a medium saucepan over medium heat until the bacon becomes crispy and the bacon fat is melted, about 10 minutes.
Stir in the garlic and onions and cook until softened, about 3 minutes. Add the ancho and chipotle powders, oregano, black pepper, allspice and cayenne and lightly toast for 30 seconds. Add the tomato puree, vinegar, molasses, salt, sugar and tomato paste. Stir to combine and cook until the flavors are well combined and the sauce is thickened, 30 to 40 minutes. Use immediately, or refrigerate for up to 2 days.
This sauce is delicious with beef, chicken and pork.