The Team UAE Emirates rider outsprinted Joao Almeida, who consolidated his overall lead as second place earned the Portuguese a six-second time bonus.
Austrian Patrick Konrad took third place.
The peloton was split in three in the last short but brutal climb of the day, with the sprint specialists being dropped.
Frenchman Arnaud Demare, winner of four stages and leader in the points classification, could not sustain the pace and abandoned all hope of victory with 18km left while triple world champion Peter Sagan chased in vain and was also left out of the sprint for victory.
The 22-year-old Almeida now leads Dutchman Wilco Kelderman by 40 seconds.
Sunday's 14th stage is a 34.1-km individual time trial between Conegliano and Valdobbiadene.
The Giro is being held amid growing COVID-19 fears after two teams pulled out earlier this week following positive tests for the new coronavirus.