Prato Nevoso - Giro d'Italia leader Simon Yates buckled then rallied as his rivals took turns to attack him on the final steep climb to a summit finish on stage 18, which was won by Germany's Max Schachmann after a long breakaway.
As the main contenders came up the final 18km climb, long after the 24-year-old Schachmann had finished, defending champion Tom Dumoulin made the first bid to drop Yates, who initially stuck to his wheel with about 1.5km to go.
Then, on a gravelly surface devoid of tarmac, pre-race favourite Chris Froome launched a spectacular assault and was followed by Dumoulin and third placed Domenico Pozzovivo while Yates was unable to answer.
Dumoulin said after the race he's been determined to test the English leader.
"He stayed with my first attack, then Froome attacked and I tried to follow Pozzovivo and Froome and Yates got dropped. Of course it's a good day but the coming two days are going to be different and much harder than today," the Sunweb leader said.
A haggard looking Yates had to dig deep to limit the damage, crossing the finish line 28 seconds adrift of Dumoulin and Froome thereby maintaining half his advantage.
Yates still holds a 28-second lead over the Dutchman in the overall standings with two brutal mountain stages still to contest.
Pozzovivo is third at 2min 43sec and Froome remains fourth at 3 min 22 sec.
Schachmann had been part of a ten rider escape group that opened a lead of over 14 minutes on the main contenders at the start of the final climb.
The Quick Step man won easily in the end, a fifth stage on this Giro for the Belgian team, as he outsprinted Spain's Ruben Plaza.
Friday's stage is supposedly better suited to Yates, but the margin is so close a tense day of riding is on the cards.
1. Maximilian Schachmann (GER/QST) 4hrs 55min 42sec.
2. Ruben Plaza (ESP/ICA) at 10.
3. Mattia Cattaneo (ITA/AND) 16.
4. Christoph Pfingsten (GER/BOR) 1:10.
5. Marco Marcato (ITA/EU) 1:26.
6. Michael Morkov (DEN/QST) 1:36.
7. Viacheslav Kuznetsov (RUS/KAT) 1:52.
8. Jos van Emden (NED/LNL) 3:22.
9. Alex Turrin (ITA/WIL) 3:29.
10. Davide Ballerini (ITA/AND) 5:09.
11. Miguel Angel Lopez (COL/ST) 10:48.
12. Domenico Pozzovivo (ITA/BAH) 11:03.
13. Tom Dumoulin (NED/SUN) 11:03.
14. Chris Froome (GBR/SKY) 11:03.
20. Simon Yates (GBR/MIT) 11:31.
24. Thibaut Pinot (FRA/FDJ) 11:36.
1. Simon Yates (GBR/Mitchelton) 75hrs 06mins 24sec.
2. Tom Dumoulin (NED/SUN) at 28.
3. Domenico Pozzovivo (ITA/BAH) 2:43.
4. Christopher Froome (GBR/SKY) 3:22.
5. Thibaut Pinot (FRA/FDJ) 4:24.
6. Miguel Angel Lopez (COL/AST) 4:54.
7. Rohan Dennis (AUS/BMC) 5:09.
8. Pello Bilbao (ESP/AST) 5:54.
9. Richard Carapaz (ECU/MOV) 5:59.
10. Patrick Konrad (AUT/BOR) 7:05.