Roche finished just three seconds off stage winner Christopher Horner with his cousin, Dan Martin, in fifth.
A daring break paid off for American Horner. The RadioShack-Leopard rider pulled away from the peleton with less than a kilometre to go on the 172.5km course, passing leader Ivan Santaromita (BMC) with ease and making a dart for the finish.
Vuelta favourites Alejandro Valverde (Movistar) and Joaquim Rodriguez (Katusha) tried to close Horner down but were unable to catch him and had to settle for second and third place, respectively.
The stage win sees Horner take the lead in the general classification with a three second advantage over Vincenzo Nibali, with Roche a further eight seconds away in third.
Meanwhile, Team Sky sporting director Dan Hunt revealed Chris Froome had withdrawn from the final stage of the US Pro Challenge as he had been feeling ill.
Froome, riding his first competitive race since winning the Tour de France in July, pulled out early on the final stage in Denver on Sunday.
He had not been in contention, having come to the event in a supporting role to his Sky team-mates, but Hunt said there was nothing to fear regarding his early exit.
“We pulled Froomey because he was feeling a bit under the weather,” Hunt said. “We thought there was nothing to gain by continuing.”
Froome has set his sights on the World Championship road race in Florence in September, bidding to complete a rare Tour and World Championship double.