Race leader Chris Froome (Sky) was put under serious pressure with attacks from all of his major rivals, finishing the stage in third place behind Nibali and Nairo Quintana (Movistar). Both Alejandro Valverde (Movistar) and Alberto Contador (Tinkoff-Saxo) lost time as they finished in a group behind Froome.
Froome retained the yellow jersey of race leader but with a diminished lead of two minutes and 38 seconds over Quintana. Valverde held on to his third place at 5-25, Nibali moved up to fourth overall, and Contador slipped to fifth.
Welshman Geraint Thomas (Sky) suffered a bad day in the high mountains, dropping from fourth overall to 15th after finishing 22 minutes behind Nibali.
The stage started with alarm for Team Sky as Froome found himself with only one team-mate left after just 15km. Surprisingly, Thomas was among the many riders dropped on the first category Col du Chaussy that reared up from the start in St-Jean-de-Maurienne as Contador and Nibali both attacked and forced Sky to lead the chase.
Although Froome personally looked comfortable, it was Sky's first sign of collective weakness at how quickly the team shed riders in the pursuit. However, after the descent of Col du Chaussy there was a regrouping of the bunch. The panic abated as Sky's numbers swelled at the front as they passed mid-way between the Col du Chaussy and Col de la Croix de Fer and the pace slowed.
Up ahead, 22 riders formed an escape group, although that was slimmed down to 21 as Tim Wellens (Lotto-Soudal) suffered a nasty crash as he tried to grab a musette in the feedzone. By the mid-way point up to the hors catégorie Col du Glandon/Col de la Croix de Fer, the break had two and a half minutes over the peloton. Pierre Rolland (Europcar) attacked from the break to go solo.
Astana moved to the front of the peloton for Nibali, putting a lot of riders in trouble on the long climb - including Thomas, who again went out of the back, this time for good. Nibali attacked towards the top of the Col de la Croix de Fer just as Froome stopped to remove a stone from his brake, and quickly built up a gap. Ahead, Rolland crested the summit and hit the descent towards the Col du Mollard.
Nibali continued eating into Rolland's advantage and caught him at the top of the Col du Mollard with the Froome group two minutes adrift. Froome was left with just Wout Poels for team support, looking isolated for the first time in the race. Rolland and Nibali descended together having appeared to have come to a verbal agreement.
That agreement was short lived, as Nibali then rode away from Rolland just two kilometres into the final 18km ascent of La Toussuire. Rolland was caught by the contenders group with 8km to go. Soon after, Quintana attacked and was pursued by Froome as Valverde and Contador tried but failed to follow the pace.
Quintana continued to move away from Froome but could not do enough to catch Nibali, with the defending champion taking an emotional stage victory.
During the stage, Romain Bardet (Ag2r) managed to relieve Joaquim Rodriguez (Katusha) of the lead in the King of the Mountains classification.
As today proved, the race is certainly not over yet, particularly with three weeks' worth of hard racing weighing heavily on the legs. Sky will no doubt be reviewing how the team's tactics played out.
There's one last chance for the overall contenders to jostle for position on Saturday, the final day in the Alps. What the stage lacks in distance it makes up for in quantity and quality of climbing with the Croix de Fer at the half-way point and a finish atop Alpe d'Huez. Then it's on to Paris on Sunday for the finale on the Champs Élysées.
Tour de France 2015, stage 19: St-Jean-de-Maurienne to La Toussuire, 138km
1. Vincenzo Nibali (Ita) Astana in 4-22-53
2. Nairo Quintana (Col) Movistar at 44 secs
3. Chris Froome (GBr) Team Sky at 1-14
4. Thibaut Pinot (Fra) FDJ at 2-26
5. Romain Bardet (Fra) Ag2r
6. Alejandro Valverde (Spa) Movistar
7. Bauke Mollema (Ned) Trek Factory Racing
8. Robert Gesink (Ned) LottoNL-Jumbo
9. Alberto Contador (Spa) Tinkoff-Saxo
10. Samuel Sanchez (Spa) BMC Racing all same time
53. Geraint Thomas (GBr) Team Sky at 22-00
Overall classification after stage 19
1. Chris Froome (GBr) Team Sky at 78-37-34
2. Nairo Quintana (Col) Movistar at 2-38
3. Alejandro Valverde (Spa) Movistar at 5-25
4. Vincenzo Nibali (Ita) Astana at 6-44
5. Alberto Contador (Spa) Tinkoff-Saxo at 7-56
6. Robert Gesink (Ned) LottoNL-Jumbo at 8-55
7. Mathias Frank (Swi) IAM Cycling at 12-39
8. Bauke Mollema (Ned) Trek Factory Racing at 13-22
9. Romain Bardet (Fra) Ag2r at 14-08
10. Pierre Rolland (Fra) Europcar at 17-27
15. Geraint Thomas (GBr) Team Sky at 27-24
Video: Tour de France preview - the Alps
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1