The Astana rider dropped his rivals 2.7km from the finish and crossed the finish line 16 seconds ahead of Rafal Majka (Tinkoff-Saxo). Rosa's Astana team-mate Fabio Aru was third at 18 seconds.
"When I made the move, I went really hard," Rosa said. "Then, I knew that I had to last to the finish line, and there were still three kilometres to go, so I started fast to open a gap on the others, then I paced myself to the finish, trying to empty myself right on the finish line.
"This morning, the team told me to try for a result. They put faith in me, and they said, 'Today could be a could day for you, have a go'.
"The finish line is close to my home, and it worked out. If my attack had not worked out, there were Fabio (Aru) and Mikel (Landa) who would have taken things into their hands, so we would have been OK anyway. So it was my team who encouraged me to try for a result today, and it worked out."