The Slovak crossed the line in 6:28:11 to finish ahead of the Norwegian and Australia’s Michael Matthews.
The peloton started the last loop of 19.1km together, with the first action coming when Dutchman Sebasian Langeveld attacked on the second last climb with 16km to go. He was immediately followed by Germany’s Paul Martens, but the duo were reeled in 3km later.
When the two leaders were caught, France’s Tony Gallopin jumped out of the bunch to lead the race onto the final ascent of Salmon Hill – the major climb on the course.
But it was France’s Julian Alaphilippe who put in the decisive attack about halfway up the climb to go clear on his own. It was only Italy’s Gianni Moscon who could follow him over the top, leaving the two at the head of affairs with 10km to go.
Behind them, with 6km to go, Austria’s Lukas Pöstlberger and Belarus’ Vasil Kiryienka – the former time-trial world champion – went clear of the field and it became two against two at the front.
Alaphilippe then dropped Moscon to be the lone leader with less than 4km to go. His efforts were however in vain when the race came together about 2km out.
The top 10 were completed by Italy’s Matteo Trentin, Great Britain’s Ben Swift, Belgium’s Olympic champion Greg van Avermaet, Switzerland’s Michael Albasini, Columbia’s Fernando Gaviria, Kazakhstan’s Alexey Lutsenko and Alaphilippe.
View all the news and results from this year’s UCI Road World Championships.