Australian rider Ben O'Connor won the Giro d'Italia's 17th stage on Wednesday in the ski resort of Madonna di Campiglio in the northern Italian Dolomites, a day before the final big climb of this year's race towards the Stelvio Pass.
Portugal's Joao Almeida of Deceuninck Quick-Step finished in 15th position, five minutes behind O'Connor, to maintain his hold on the overall leader's pink jersey.
To win in Milan on Sunday, Almeida must resist one of the highest peaks in Europe at an altitude of 2,758metres, with a freezing descent and final ascent to the lakes of Cancano.
"Today it was a hard day, a lot of climbing but I had the perfect team with me," said 22-year-old Almeida.
"That's one more day in the Maglia Rosa. Team Sunweb tried to attack but I was feeling good. Tomorrow it's another day, I look forward to it."
Almeida holds a 17-second overall lead on Dutch rider Wilco Kelderman whose Team Sunweb teammate Jai Hindley of Australia is third at nearly three minutes.
O'Connor, riding for the NTT Pro Cycling team, attacked on the final climb of the 203km run through a snowy backdrop from Bassano del Grappa.
The 24-year-old, who finished second on Tuesday, crossed the line alone, 31 seconds ahead of Austrian Hermann Pernsteiner of Bahrain-McLaren with Belgian Thomas De Gendt third a minute behind the leader.
"Yesterday's second place left me feeling pretty bitter," said O'Connor, who had finished behind Pernsteiner's Slovenian teammate Jan Tratnik.
"Today I was able to bounce back and get this success, it's a dream to get a victory in a Grand Tour."
A breakaway of 19 riders led the way in a stage which included four climbs with the remaining group going into the final 12.5km climb with a lead of six minutes.
O'Connor pulled clear with 8.8km to go ahead of a trio of pursuers including De Gendt, Pernsteiner and Ilnur Zakarin.
Pernsteiner tried vainly to catch up with the Australian but lost time on the climb towards Madonna di Campiglio.
O'Connor had won a mountain stage on the Tour des Alpes in 2018, but it was his first stage win on a Grand Tour.
Thursday's 18th stage will feature the final big mountain climb in this year's race after it was announced that Saturday's penultimate stage will not cross the border into France because of Covid-19 restrictions.
The 20th stage had been set to feature two Alpine climbs, Agnel and Izoard. The alternative route will be less mountainous with a double climb towards Sestriere at the end of the stage.
Snow has been cleared from the road, but temperatures on Thursday are expected to dip as low as four degrees Celsius during the 207km run from Pinzolo to Laghi di Cancano.