Slovakian star Peter Sagan held off sprint ace Mark Cavendish to win the third stage of the Tirreno-Adriatico over 190km from Indicatore to Narni Scalo on Friday.
With former world champion Cavendish on his wheel, Sagan attacked from well back and reeled in Andre Greipel to claim the victory.
Race leader Cavendish left his attack too late while a fading Greipel took third on the stage.
A series of attacks in the final 15km in wet conditions forced up the pace as the sprinters' teams accelerated to control the action.
No-one could get away for very long and as the stage drew to a close Greipel seemed ideally placed while Cavendish found himself a long way back.
Greipel led until the final 50-metres but while Sagan timed his charge to perfection, Cavendish left himself just a little bit too much to do.
Australian Matthew Goss, who won Thursday's second stage, could manage only fifth on the day, behind German Gerald Ciolek in fourth.
Saturday's fourth stage is a lumpy 170km run from Narni Scalo to Prati di Tivo.