Lorenzo Fortunato climbed to victory in the gruelling 14th stage of the Giro d'Italia on Saturday in the fog and cold at the summit of Monte Zoncolan.
Colombian Egan Bernal of Ineos was the first of the favourites to cross the finish line to consolidate his hold on the leader's pink jersey.
Italian 25-year-old Fortunato, riding for the Eolo-Kometa team, finished 26sec ahead of Slovenian Jan Tratnik with Italian Alessandro Covi third at 59sec to claim his maiden career victory.
"I haven't fully realised yet what I just did," said Fortunato, who rides for the team of former Giro winner Ivan Basso.
"I knew I was in good shape and this morning I really wanted to go in the breakaway.
"I knew that the last 3km were the hardest, for this reason, I waited for the final part of the Zoncolan to attack and then I gave it everything until the finish line".
Bernal, 24, finished fourth at 1min 43sec to gain time on his rivals, after over five hours in the saddle in the mountainous 205km stage which started out from the medieval walled town of Cittadella, in the province of Padua and ended on the border with Austria.
Britain's Simon Yates crossed in sixth to move second overall, 1min 33sec behind the 2019 Tour de France winner, with Italy's Damiano Caruso third at 1min 51sec.
Russian Aleksander Vlasov lost over a minute on Bernal on the final climb where the gradient was at times more than 20 percent.
The Astana rider crossed the line in 16th position to drop from second place overall to fourth.
Belgian Remco Evenepoel of Deceuninck also lost time and is eighth in the general classification (GC).
- 'Calm and focused' -
"I tried to remain calm when we tackled the Zoncolan because I knew I was in a good position in the GC and didn't need to attack first," said Bernal.
"I followed Simon Yates when he attacked and then I did an acceleration in the finale.
"I think I did a good race. Now I have a good lead but I need to remain calm and focused, anything can happen in the Giro."
Last year's runner-up, Jai Hindley of Australia was forced to withdraw before the stage because of "serious saddle sore".
"The 2020 runner up is no longer fit to race, and will instead head home to recover," his Team DSM said.
"This is obviously not how I wanted my Giro to end," said Hindley.
"The team have really put in a lot to try and help, but the situation isn't improving and I really can't continue anymore."
Hindley was 25th in the overall standings.
The Jumbo team's Dutch riders Dylan Groenewegen and David Dekker also both pulled out before the mountains.
Sunday's 15th stage covers 147km from Grado to Gorizia, in the north-east, crossing into neighbouring Slovenia before finishing back in Italy.