American David Zabriskie was the shock winner of the opening stage of the Tour de France after a brilliant ride in a 19km time trial in the Vendee region.
His time of 20 minutes and 51 seconds was set very early.
But the main damage was done later by Lance Armstrong, who finished just two seconds behind in tougher conditions.
The Texan passed rival Jan Ullrich on the wind-swept road from Fromentine to Noirmoutier-en-I'lle, taking a minute out of the German and from Ivan Basso.
Zabriskie's time had looked unbeatable for most of the day, with highly-rated Alexandre Vinokourov the closest to toppling it some 54 seconds adrift.
But drama was always likely to follow the arrival of Armstrong, bidding for a record seventh-straight Tour win.
The 33-year-old Discovery team leader lost his footing leaving the start, but made up for that lapse by hunting down former winner Ullrich, who had started a minute earlier.
With barely 15km of the Tour completed, Ullrich - who has been talking up his hopes for this year - had to watch Armstrong surge past, dealing a significant psychological blow.
To complete a memorable day for the US riders, Armstrong's chief henchman George Hincapie was fourth, with Floyd Landis sixth, Bobby Julich 11th and Levi Leipheimer 14th.
Australian Bradley McGee recorded a creditable time of 22:15secs, but was unable to deliver on his promise to win the yellow jersey on day one.
"When I saw I was making it back on Jan, I told myself I was not doing too bad," said Armstrong.
"It's not a victory for me to overtake Jan. He had a crash on Friday in training, but it made me realise I was in good form.
Zabriskie spoke in disbelief after his victory, admitting: "I didn't think I could beat Armstrong."
Leading stage one positions:
1. David Zabriskie (US/Team CSC) 20:51"
2. Lance Armstrong (US/Discovery) +2"
3. Alexandre Vinokourov (Kaz/T-Mobile) +53"
4. George Hincapie (US/Discovery) +57"
5. Laszlo Bodrogi (Hun/Credit Agricole) +59"
6. Floyd Landis (US/Phonak) +1:02"
7. Fabian Cancellara (Swi/Fassa Bortolo) same time
8. Jens Voigt (Ger/Team CSC) +1:04"
9. Vladimir Karpets (Rus/Illes Balears) +1:05"
10. Igor Gonzalez de Galdeano (Spa/Liberty Seguros) +1:06"
11. Bobby Julich (US/Team CSC) +1:07"
12. Jan Ullrich (Ger/T-Mobile) +1:08"
13. Jose Enrique Gutierrez (Spa/Phonak) +1:12"
14. Levi Leipheimer (US/Gerolsteiner) +1:13"
15. Michael Rich (Ger/Gerolsteiner) same time
16. Jose Luis Rubiera (Spa/Discovery Channel) +1:16"
17. Yaroslav Popovych (Ukr/Discovery Channel) +1:17"
18. Bradley McGee (Aus/Francaise des Jeux) +1:24"
19. Marc Wauters (Bel/Rabobank) same time
20. Ivan Basso (Ita/Team CSC) +1:26"