Simon Yates saw his lead in the Giro d'Italia halved by defending champion Tom Dumoulin as Max Schachmann won stage 18 out of the day's breakaway.
Yates cracked on the climb to the summit finish at Prato Nevoso as Dumoulin followed an attack from Team Sky's Chris Froome inside the final two kilometres of the 196km stage from Abbiategrasso.
Team Sunweb's Dumoulin took 28 seconds out of Mitchelton-Scott's Yates, halving the 25-year-old Briton's advantage in the leader's pink jersey.
Up ahead, Quick-Step Floors' Schachmann beat veteran Ruben Plaza (Israel Cycling Academy) and Mattia Cattaneo (Androni Giocattoli-Sidermec) to the line, with the trio emerging from a 12-man breakaway which hit the final climb with an advantage of 16 minutes over the peloton.
Schachmann is the third German who wins a hilltop finish at the Giro after Rudi Altig in Rocca di Cambio, 1966 and Udo Bolts in Pila, 1992. #Giro101 #Giro @MaxSchachmann - @quickstepteam pic.twitter.com/KcuYeccT2K— Giro d'Italia (@giroditalia) May 24, 2018
This was the first time Yates has appeared to be in any trouble since taking the pink jersey on stage six.
He had survived what was seen as his main test, emerging from Tuesday's time trial with a 56-second advantage over Dumoulin and what appeared to be favourable terrain still to come.
But the sight of him being distanced on this long climb to the finish will give his rivals hope ahead of two mountainous days to come on Friday and Saturday.
Dumoulin had been the first to make a move but Yates was able to hold his wheel. It was when Froome, initially distanced, caught back up and then pushed again that Dumoulin and third-placed Domenico Pozzovivo followed but Yates fell behind.
After yesterday's exertions Sam Bennett came home at the back of the field, 33:57 off Schachmann.
Bora Hansgrohe rider Bennett just missed out on a third stage win of the the Giro as he was pipped on the line by Elia Viviani in a stage 17 sprint finish.
Ryan Mullen meanwhile finished in 93rd for Trek Segafredo.