Chris Froome showed rare signs of weakness on Thursday despite extending his overall lead on the Tour de France in the 18th stage, won after two epic ascents of l'Alpe d'Huez by France's Christophe Riblon.
The Briton cracked with less than five kilometres to go on the second trip up the mountain's 21 hairpin bends but sent team mate Richie Porte to fetch some food and the Australian nursed Froome to the finish 3:18 behind Riblon, who became the first Frenchman to win a stage in this year's race.
"I was running low on sugars," Froome told reporters.
"I am thankful to have Richie with me he did a super, super job."
Froome and Porte were each given a 20-second penalty for illegal feeding as organisers said the riders are not allowed to take food or liquid from the team car during the final six km of the stage.
Contador, who was 11th on the stage, 57 seconds behind Froome, heads Colombian Nairo Quintana by 21 seconds overall after the Movistar climber, targeting a podium finish in Paris, took fourth place 2:12 off the pace.
"Throughout the entire race we've said that we wanted the overall win and we were not afraid of risking it all to get it and so we did today," said Contador's Team Saxo Tinkoff sports director Fabrizio Guidi.
"But the legs just weren't good enough to finish it off. We can be disappointed and everyone's a lot wiser after the stage but if you never try, you never win.
"We're still competing for the top positions and there are still two demanding stages to go. Now, it's time to keep focused, remain calm, recover and try again tomorrow."
Friday's 19th stage takes the peloton over 204 kilometres with four demanding climbs on the menu between Bourg d'Oisans and Le Grand Bornand.
"Tomorrow is possibly the toughest day of the Tour de France," said Froome.
Image: Chris Froome
Photograph: Reuters
Tour de France: Froome strikes back with a bang
Tour de France: Contador crashes going on the attack to Froome
Tour de France: Froome accelerates as Martin wins time trial
Tour de France: Kittel pips Cavendish to take stage 12
Cavendish struggles as Kittel wins Tour de France stage 10