Frenchman Julian Alaphilippe took the overall lead of the Tour of Britain after dropping Slovenian Primoz Roglic on the final climb of stage six.
Quick-Step Floors rider Alaphilippe, 26, finished second on the 168.3km route behind Team Sky's Wout Poels, 30, with Briton Hugh Carthy, 24, of the EF Education First-Drapac team, in third.
Alaphilippe leads Dutchman Poels, who has climbed to second, by 17 seconds.
Overnight leader Roglic is another 15 seconds back in third.
Alaphilippe, who was the King of the Mountains at the Tour de France, becomes the fifth leader in six days of racing.
"All of my guys did an incredible performance and everybody was riding for me today to protect me before the last climb," Alaphilippe told ITV 4.
"Bob [Jungels] did an incredible effort for me. Roglic was on my wheel at the end and I tried to attack the last time to take the distance. I'm really happy to take the green jersey."
There were also impressive performances from young British riders Tom Pidcock and Max Stedman on a stage that took the peloton from Barrow-in-Furness back to Whinlatter Pass, which was also the finish of Thursday's team time trial.
Pidcock, 19, of Team Wiggins finished the stage in sixth with Stedman, 22, of Canyon Eisberg in ninth.
Saturday's penultimate stage is a 215.6km route that takes the riders on a loop north from West Bridgford, Nottingham before finishing in Mansfield.
Stage six result:
1. Wout Poels (Ned/Team Sky) 4hrs 1min 51 secs
2. Julian Alaphilippe (Fra/Quick-Step Floors) +2 secs
3. Hugh Carthy (GB/EF Education First-Drapac) +12 secs
4. Jonathan Hivert (Fra/Direct Energie) +21 secs
5. Patrick Bevin (NZ/BMC Racing) same
Overall classification after stage six:
1. Julian Alaphilippe (Fra/Quick-Step Floors) 19hrs 46 min 54 secs
2. Wout Poels (Ned/Team Sky) +17secs
3. Primoz Roglic (Slo/LottoNL-Jumbo) +32 secs
4. Patrick Bevin (NZ/BMC Racing) +46 secs
5. Bob Jungels (Lux/Quick-Step Floors) +51 secs