Preheat oven to 350 degrees. Spread pecans on a rimmed baking sheet, and toast in oven until golden and fragrant, 10 to 15 minutes. Set aside.
Meanwhile, in a large skillet over medium heat, cook bacon, stirring occasionally, until browned and crisp, 6 to 8 minutes. Transfer to a paper-towel-lined plate. Pour off all but 3 tablespoons fat from skillet.
Add onion to skillet; cook, stirring occasionally, until crisp-tender, 5 to 7 minutes. Add tomatoes, vinegar, and sugar; simmer until liquid thickens slightly and tomatoes are heated through, 1 to 2 minutes.
Place spinach in a large bowl, and pour hot tomato-onion mixture over; toss quickly to coat and wilt spinach. Season with salt and pepper. Sprinkle with reserved pecans and bacon.