Italy's Diego Ulissi won a dramatic final climb to the town of Viggiano to win the fifth stage of the Giro D'Italia on Wednesday.

Around half a dozen riders, including former Tour de France winner Cadel Evans, battled up the final kilometre before Ulissi, riding for Lampre-Merida, sneaked up on the left with around 500 metres left to take the stage.

Evans was second and Julian Arredondo was third at the end of the 203-kilometre stage from Taranto which started in dry weather before rain made conditions treacherous.

Australia's Michael Matthews finished sixth to keep the pink jersey. The Giro continues with the 247 kilometre sixth stage from Sassano to Montecassino on Thursday.

Nicolas Roche finished the stage in 15th place and remains seventh overall, 37 seconds behind the leader.

Philip Deignan finished back in 119th for the stage, and is 108th in the general classification.