Alberto Contador seized the Tour de France lead after taking advantage of yellow jersey incumbent Andy Schleck's mechanical problem on stage 15.
Schleck wasn't the only one to endure reliability problems as Ireland's Nicolas Roche suffered a puncture during the closing stages of the race.
Thomas Voeckler (Bbox Bouygues Telecom), resplendent in the French national champion's jersey, won the 187.5-kilometre stage from Pamiers to Bagneres-de-Luchon, but in a highly-eventful Tour there was yet another twist.
Schleck (Team Saxo Bank) lost around 40 seconds when his chain slipped as he attempted to attack on the 19.3km Port de Bales hors categorie (beyond category) climb and he finished 39 seconds behind Contador to fall back into second place overall.
Contador (Astana) capitalised on his rival's problem and went ahead - normally with a mechanical problem in cycling a rival would not take advantage.
The Spaniard, seeking a third title in four years, led by 27 seconds at the summit of the day's final climb and extended his advantage on the descent.
Roche, meanwhile, finished a full 7:52 behind Voeckler following his puncture and has dropped backed to 17th place in the overall standings, 12:34 off the pace.
Contador now possesses an eight-second lead over Schleck with five days of racing remaining.
In Spa, Fabian Cancellara, then in possession of the yellow jersey, organised for the peloton to wait in as his Team Saxo Bank leaders Andy and Frank Schleck - now out of the race after injuring his shoulder on stage three - crashed on a day when many riders struggled in slippery conditions.
Contador - against usual convention when another rider is afflicted with a mechanical problem - today rode on.
Schleck said he confronted Contador behind the podium following the presentation of the jerseys.
He said: 'I asked him in there, how can you do that?'
Contador, who won the Tour in 2007 and 2009, insists he was not aware of Schleck's predicament.
After his Astana team-mate Alexandre Vinokourov had rounded Schleck on the right, Contador passed on the left and accelerated away.
Schleck then had to attend to his chain, delaying him before he could build momentum on the incline and attempt to respond.
Contador was booed on the podium as he received the fabled maillot jaune - a prize he is aiming to keep until Paris.
The 27-year-old said: 'We stopped in Spa when he had a bad crash - today it was something different. I understand that he is disappointed for what happened today, but when that happened I was on the attack.
'At the moment I attacked the situation was very close, very tight. I attacked before I knew he had problems with his chain and I was already ahead.
'It was not possible to do what we did in Spa and stop the race.'
Contador attempted to play down the time gained on his rival but was nonetheless pleased to take the yellow jersey.
'Thirty seconds at this point won't change if you win the Tour de France or not,' he said.
'What is important is that I gained time today. For me it doesn't change anything - the goal is still Paris and I will keep focused on the race.
'It's always a pleasure to have the yellow jersey and it's also very important to take time from my rivals.'
Samuel Sanchez (Euskaltel-Euskadi), the third-placed rider overall, finished on the same time as Contador today and now sits 1:52 behind Schleck.
Voeckler, who won stage five of the 2009 Tour and in 2004 wore the yellow jersey for 10 days, was thrilled with his win.
He said: 'I am very proud of what I have done today. At an emotional level, what happened at the championships of France, when I came home first, was already enormous.
'But then to win a stage of the Tour de France with the tricolor on my shoulders is extraordinary.'
Lance Armstrong (Team RadioShack), who was third in the 2009 Tour, was 23rd today, 4:08 behind and now sits 31st overall, more than 40 minutes behind.
Tour de France Stage 15 results:
1 Thomas Voeckler (France/Bbox-Bouygues) 4:44:52
2 Alessandro Ballan (Italy/BMC Racing) +1:20"
3 Aitor Perez (Spain/Footon)
4 Lloyd Mondory (France/AG2R) +2:50"
5 Luke Roberts (Australia/Milram)
6 Francesco Reda (Italy/Quick-Step)
7 Alberto Contador (Spain/Astana)
8 Samuel Sanchez (Spain/Euskaltel)
9 Denis Menchov (Russia/Rabobank)
10 Brian Vandborg (Denmark/Liquigas)
37 Nicholas Roche (Ireland/AG2R) +7:53
Overall Standings:
1 Alberto Contador (Spain/Astana) 72:50:40
2 Andy Schleck (Luxembourg/Saxo Bank) +8"
3 Samuel Sanchez (Spain/Euskaltel) +2:00"
4 Denis Menchov (Russia/Rabobank) +2:13
5 Jurgen van der Brock (Germany/Omega) +3:39
6 Robert Gesink (Netherlands/Rabobank) +5:01
7 Levi Leipheimer (US/Radioshack) +5:25
8 Joaquin Rodriguez Oliver (Spain/Katusha) +5:45
9 Alexandre Vinokorouv (Astana) +7:12
10 Ryder Hesjel (Canada/Garmin) +7:58
17 Nicholas Roche (Ireland/AG2R) +12:34