In a large skillet, add chopped bacon over medium-low heat. Cook, for about 10 minutes, until bacon is crispy and the fat has rendered out. Remove crispy bacon from skillet and drain off the bacon grease, leaving about 3 tablespoons.
Add chopped asparagus to the skillet. Turn heat up to medium and cook asparagus for 4-5 minutes until they asparagus is bright green, cooked through, but still has a slight bite to it. Remove asparagus from the skillet and set aside for later.
Pour tomatoes into the skillet and add vinegar, sugar, garlic powder, thyme sprigs, and a pinch of salt and pepper. Stir together and bring to a simmer. Then turn heat down to low and simmer for 10-15 minutes, stirring regularly.
While tomato sauce simmers, bring a large pot of salted water to a boil. Add spaghetti and cook until the spaghetti is al dente. Drain spaghetti but reserve 1 cup of pasta water in case the sauce needs it later.
Stir drained pasta right into the tomato sauce. Use tongs to toss together well. Taste and season with salt and pepper.
Stir in the asparagus and crispy bacon and serve immediately garnished with grated parmesan cheese and fresh basil.