Dan Martin remains eighth in the general classification at the Giro d'Italia after stage 10 which was won by Slovakia's Peter Sagan.

Martin crossed the line 58th at the end of a 139-km ride from L'Aquila to Foligno and is 52 seconds adrift of Egan Bernal in the race for the Maglia Rosa, while Nicolas Roche is 64th overall, 41.17 minutes behind after coming home 70th on the stage.

Sagan finished off the job done by his Bora-Hansgrohe team as he claimed victory in the 10th stage, with the triple world champion outsprinting Colombian Fernando Gaviria after his team's acceleration on a climb had shaken off some of the top contenders for the final sprint.

Italian Davide Cimolai finished in third place.

"I have to say thanks to all my team-mates," Sagan said. "They did an impressive job, it was full gas for the last time climbs and we dropped some sprinters. It was not enough to drop everyone, but in the end I won and I'm very happy so thanks to all my team-mates."

Martin during the 10th stage

Colombian Bernal, who took the overall lead on Sunday, retained the Maglia Rosa with a 14-second lead over his main rival Remco Evenepoel after both went toe-to-toe for bonus seconds at the intermediate sprint.

"It was really hard," Bernal said. "Bora, I think they did a really great job in the climbs, it was a really, really hard pace. I think everyone was full gas. It was harder than we expected in the morning but finally we saved the day so we are happy because of that."

Bora-Hansgrohe accelerated on the short ascent to Valico della Somma, a move that resulted in Belgian Tim Merlier, Italian Giacomo Nizzolo and Dutchman Dylan Groenewegen being dropped.

Bernal and Evenepoel battled it out for bonus seconds at the intermediate sprint with the Colombian's Ineos-Grenadiers team mate Jhonatan Narvaez getting in the mix to deny the Belgian prospect first place.

Narvaez collected three bonus seconds with Evenepoel taking two and Bernal salvaging one.

Tuesday is the race's first rest day in Perugia.