Simon Yates claimed his first stage win in this year's Giro d'Italia to extend his lead in the overall classification to 32 seconds.
Yates pounced in the final 100 metres of a climb that finished above the snow line to beat Frenchman Thibaut Pinot (Groupama-FDJ) and his Michelton-Scott team-mate Esteban Chaves, putting him 32 seconds clear of Chaves in the standings going into Monday's rest day.
But it was another bad day for Chris Froome, who failed to hang onto a five-strong breakaway group two kilometres from the finish, sliding out of the overall top 10 as a result and losing more than a minute on Yates.
Yates has held the race leader's pink jersey since stage six, when he finished second behind Chaves on the slopes of Mount Etna.
Here he timed his run to perfection, forming a four-strong chase when Italian Domenico Pozzovivo (Bahrain-Merida) attempted to break clear towards the end of the 225km stage from Pesco Sannita.
Pinot, Chaves and stage eight winner Richard Carapaz (Movistar) went with him, with Yates going around Pinot in the final moments to claim a victory he greeted with evident emotion.
As a result of his efforts Chaves moved up to second place in the overall standings, demoting Holland's defending champion Tom Dumoulin (Team Sunweb) into third, 38 seconds behind.