Alex Dowsett won the individual time trial in the eighth stage of the Giro d'Italia on Saturday after favourite Bradley Wiggins was slowed by a puncture and only managed second.
Vincenzo Nibali, Wiggins' main rival for the title, took the overall lead from Benat Intxausti after finishing fourth following a surprisingly good ride.
"I had a really good time trial," Nibali said. "It seemed designed for me, with so many curves and several ups and downs. I kept up the pace with all my strength, in view of the final climb and in the end I did it."
Dowsett won his first Grand Tour stage by finishing the hilly 54.8-kilometre (34.05-mile) route from Gabicce Mare to Saltara in 1 hour, 16 minutes, 27 seconds, beating fellow Briton Wiggins by 10 seconds. Tanel Kangert of Estonia was third.
"It will take a bit of time before I realized what I have done, I still can't believe myself," Dowsett said. "It was quite a harder TT than I expected, without a doubt the hardest in my life."
It was a tough day for defending champion Ryder Hesjedal. The Victoria native finished 2:23 back in 18th place, and dropped from third overall to sixth.
Nibali is nearly half a minute in front of second-place Cadel Evans of Australia. Wiggins moved up to fourth in the overall standings but is still 1:16 behind the Italian.
Wiggins lost more than a minute to the other contenders Friday after crashing. The Team Sky rider appeared cautious when descending corners and had to change bikes early on due to a flat tire, losing precious seconds.
The Tour de France champion won gold in the in the time trial at the London Olympics, and his impressive climb up the steep ramp Saturday to the finish line reduced his deficit to Dowsett from just under a minute to only 10 seconds.
By contrast, Nibali enjoyed a promising start but slowed on the second half of the course.
Dowsett was 39th to start and faced a long and anxious wait to see if he could keep hold of top spot.
Sunday's ninth stage is a hilly 170-kilometre (106-mile) ride from San Sepolcro to Florence. The Giro's first rest day is Monday.
The race ends May 26 in Brescia.