Wiggins is set to equal the previous best finish by a Briton in the Tour
Bradley Wiggins delivered a heroic ride on Mont Ventoux to keep fourth place in the Tour de France as Alberto Contador all but sealed overall victory.
In the closing kilometres of stage 20, Wiggins was dropped by Contador, Lance Armstrong and Andy and Frank Schleck.
But he did just enough to hold on to fourth overall and is set to equal the best finish by a Briton in the race.
Contador shadowed second-placed Andy Schleck to the line to preserve his commanding lead with one stage left.
Juan Manuel Garate was first to the finish at the top of Ventoux after breaking away from the peloton early in the race with 15 other riders and, along with Tony Martin, staying clear until the end.
Garate pulled away from the German right at the death to become the first Spaniard to win on one of the Tour's most famous - and formidable - climbs.
More than 500,000 people lined the roads on the way to the summit and afterwards Garate said: "It's the greatest day of my life. This is as good as it gets - I have dreamed about this."
It was very difficult for me. I suffered. But each minute that passed, I was closer to victory
With Contador, the 2007 champion, comfortably holding on to the yellow jersey, Andy Schleck and Armstrong remain in second and third respectively.
During the ascent of Ventoux, fifth-place Frank Schleck attempted to snatch a podium place from Armstrong, but the seven-time champion kept a careful eye on the Luxembourg rider, always responding to the Saxo Bank rider's attacks.
"My assignment was following Wiggins and following Frank Schleck," Armstrong said. "And I had the legs for that."
Twice previously on this year's tour the American has accused Contador of riding for individual glory in defiance of Astana team orders, but he paid tribute to his colleague as he closed on victory.
"I think his performance this year would have beaten my performances in 2001, 2004 and 2005," he said.
"Contador is that good, so I don't see how I would have been higher than that."
Contador matched several moves by Andy Schleck, staying with him to the line to successfully protect his lead in the Tour's overall standings.
"Andy attacked me several times but I was able to control him and resist him," the 26-year-old said.
"It was very difficult for me. I suffered. But each minute that passed, I was closer to victory."
Wiggins was dropped three times by Armstrong and Frank Schleck on Ventoux but recovered each time before finally losing touch with 1.4km to go.
He battled on, however, to finish 20 seconds behind Frank Schleck in 10th place, meaning he stays above him in the general classification by three seconds.
Sunday's final stage will be a procession to Paris for Contador and the rest of the top riders overall, meaning only an accident will prevent Wiggins crossing the line in Paris to equal Robert Millar's fourth place finish in the 1984 Tour.
Contador is set to celebrate his second Tour victory and said: "This Tour has been very difficult.
"Even if it could have looked easy from the spectators' point of view, there have been some moments when I doubted about victory."
Armstrong said he would be satisfied with his third-placed finish on his return to the race after a four-year absence.
The 37-year-old added: "Hey, I can't complain. Coming out here and getting on the podium with these young guys, it's not so bad."
Wiggins' compatriot Mark Cavendish will now turn his attention to winning a sixth stage in the 2009 Tour as the race concludes on the Champs Elysees.
Stage 20 result:
1. Juan Manuel Garate (Spa/Rabobank) 4hrs 39mins 21secs
2. Tony Martin (Ger/Columbia ) + 3secs
3. Andy Schleck (Lux/Saxo Bank ) + 38
4. Alberto Contador (Spa/Astana) "
5. Lance Armstrong (US/Astana) + 41
6. Frank Schleck (Lux/Saxo Bank) + 43
7. Roman Kreuziger (Czech Rep/Liquigas) + 46
8. Franco Pellizotti (Italy/Liquigas) + 56
9. Vincenzo Nibali (Italy/Liquigas) + 58
10. Bradley Wiggins (GB/Garmin) + 1min 03secs
63. Charles Weglius (GB/Silence-Lotto) + 8mins 05sec
104. Mark Cavendish (GB/Columbia) + 25mins 42secs
155. David Millar (GB/Garmin) + 26mins 01secs
1. Alberto Contador (Spa/Astana) 81hrs 46mins 17secs
2. Andy Schleck (Lux/Saxo Bank) + 4mins 11secs
3. Lance Armstrong (US/Astana) + 5mins 24secs
4. Bradley Wiggins (GB/Garmin) + 6mins 01secs
5. Frank Schleck (Lux/Saxo Bank) + 6mins 04secs
6. Andreas Kloeden (Ger/Astana) + 6mins 42secs
17. Carlos Sastre (Spain/Cervelo) + 26mins 21secs
59. Charlie Wegelius (GB/Silence-Lotto) + 1hr 29mins 07secs
85. David Millar (GB/Garmin) + 2hr 14mins 34secs
131. Mark Cavendish (GB/Columbia) + 3hrs 21mins 54secs