Le Grand-Bornand - Frenchman Julian Alaphilippe turned on the style to secure his maiden Tour de France stage win on Tuesday as Belgium's Greg Van Avermaet stubbornly held on to the yellow jersey.
Alaphilippe, of the Quick Step team, launched an audacious lone attack on the third and penultimate climb and went on to solo over the finish several minutes ahead of the main peloton after a first day in the Alps marked by Van Avermaet outfoxing Team Sky in the yellow jersey stakes.
Days after France's World Cup victory, Alaphilippe handed the hosts their maiden win of the race - and soothed the personal pain of two frustrating years hoping to bag his maiden Tour stage win.
"I can't describe it. Going for a win like this was a big dream for me," said Alaphilippe, who twice came close to winning a stage on his debut in 2016 before being sidelined by injury in 2017.
"I've worked really hard for this. Not everyone realises how important it is for a cyclist to take part in the Tour.
"For a Frenchman it's simply unavoidable.
"I'm happy the last 10 km was downhill because it gave me the chance to understand what was happening to me."
Expected to challenge overnight leader Van Avermaet for the right to wear the race's fabled tunic into Wednesday's 11th stage, the Sky team of champion Chris Froome failed to muster a challenge despite their best-placed rider, Geraint Thomas, sitting only 43secs behind the Belgian in the overall standings.
Van Avermaet, who is not a specialist climber, appeared under threat at the beginning of the 158.5 km race from Annecy featuring four categorised climbs and with a downhill finish into Le Grand Bornand.
But the wily BMC rider outfoxed Sky by joining an early breakaway that went on to build a healthy lead on the main peloton and stymie whatever plans Sky may have had of taking control of the race.
As Alaphilippe surged towards his memorable first win, Van Avermaet produced a fantastic performance to finish just 1min 44secs behind, with Thomas, Froome and Team Sky crossing the line over three minutes behind the stage winner.
In the overall standings Van Avermaet now leads Thomas, in second, by 2min 22secs, with Alejandro Valverde (Movistar) now up to third overall at 3:10.
Van Avermaet explained: "I was waiting for a reaction from Sky when I went to try and get in the breakaway, but nobody reacted.
"Once I was in it, I knew it could be a good day.
"Alaphilippe was too strong for me to hope to win today, but I'm happy finishing fourth.
"And I'm really happy to keep the yellow jersey another day."
Asked about his missed opportunity to take the race lead, Thomas said: "It would have been nice ... that's just the way it goes.
"Hats off to Van Avermaet, we kind of expected him to do that.
"It was a real strong ride from him, he deserves to have that jersey another day."
Froome, who is bidding for his fourth consecutive Grand Tour win and fifth overall, is up to sixth place at 3:21.
The 11th stage, held between Albertville and La Rosiere, features four categorised climbs and the first summit finish of the race.
It is only 108 km long, and Thomas predicted fireworks.
"I think it will be racing full gas from the first climb," he said.
The third and final day in the Alps is on Thursday when sparks are expected to fly on the 14km climb, over 21 hairpin bends, to the summit of Alpe d'Huez.
Standings from the 10th stage of Tour de France, a 158.5km ride from Annecy to Le Grand-Bornand on Tuesday:
1. Julian Alaphilippe (FRA/QST) 158.5 km in 4hr 25min 27sec
2. Jon Izagirre (ESP/BAH) at 1:34.
3. Rein Taaramae (EST/DEN) 1:40.
4. Greg Van Avermaet (BEL/BMC) 1:44.
5. Serge Pauwels (BEL/DDT) 1:44.
6. Lilian Calmejane (FRA/DEN) 2:24.
7. Daniel Martin (IRL/EAU) 3:23.
8. Primož Roglic (SLO/LNL) 3:23.
9. David Gaudu (FRA/FDJ) 3:23.
10. Geraint Thomas (GBR/SKY) 3:23.
11. Romain Bardet (FRA/ALM) 3:23.
12. Steven Kruijswijk (NED/LNL) 3:23.
13. Adam Yates (GBR/MIT) 3:23.
14. Jakob Diemer Fuglsang (DEN/AST) 3:23.
15. Christopher Froome (GBR/SKY) 3:23.
16. Tom Dumoulin (NED/SUN) 3:23.
17. Alejandro Valverde (ESP/MOV) 3:23.
18. Nairo Quintana (COL/MOV) 3:23.
19. Vincenzo Nibali (ITA/BAH) 3:23.
20. Mikel Landa (ESP/MOV) 3:23.
21. Rudy Molard (FRA/FDJ) 3:23.
22. Pierre-Roger Latour (FRA/ALM) 3:23.
23. Guillaume Martin (FRA/WGG) 3:28.
24. Egan Bernal (COL/SKY) 3:38.
25. Robert Gesink (NED/LNL) 3:55.
26. Bob Jungels (LUX/QST) 4:14.
27. Damiano Caruso (ITA/BMC) 4:14.
28. Domenico Pozzovivo (ITA/BAH) 4:14.
29. Mikel Nieve (ESP/MIT) 4:14.
30. Bauke Mollema (NED/TRE) 4:14.
31. Ilnur Zakarin (RUS/KAT) 4:14.
32. Rafal Majka (POL/BOR) 4:14.
33. Wout Poels (NED/SKY) 4:26.
34. Rigoberto Uran (COL/EFD) 5:59.
35. Tanel Kangert (EST/AST) 8:14.
36. Antwan Tolhoek (NED/LNL) 8:14.
37. Arthur Vichot (FRA/FDJ) 9:47.
38. Laurens ten Dam (NED/SUN) 10:52.
39. José Herrada Lopez (ESP/COF) 10:52.
40. Julien Bernard (FRA/TRE) 10:52.
41. Ian Boswell (USA/KAT) 10:52.
42. Mathias Frank (SUI/ALM) 10:52.
43. Jesper Hansen (DEN/AST) 10:52.
44. Tejay Van Garderen (USA/BMC) 10:52.
45. Gorka Izagirre (ESP/BAH) 10:52.
46. Warren Barguil (FRA/FST) 10:57.
47. Damien Howson (AUS/MIT) 11:25.
48. Michal Kwiatkowski (POL/SKY) 11:25.
49. Maxime Bouet (FRA/FST) 12:11.
50. Tom Slagter (NED/DDT) 12:11.
51. Kristijan Durasek (CRO/EAU) 12:11.
52. Amaël Moinard (FRA/FST) 12:11.
53. Elie Gesbert (FRA/FST) 14:54.
54. Soren Kragh Andersen (DEN/SUN) 15:02.
55. Simon Geschke (GER/SUN) 15:03.
56. Thomas Degand (BEL/WGG) 17:42.
57. Darwin Atapuma (COL/EAU) 17:47.
58. Tony Gallopin (FRA/ALM) 18:25.
59. Nikias Arndt (GER/SUN) 18:52.
60. Stefan Kung (SUI/BMC) 18:52.
61. Andrea Pasqualon (ITA/WGG) 18:52.
62. Jasper Stuyven (BEL/TRE) 18:52.
63. Marco Minnaard (NED/WGG) 18:52.
64. Tobias Ludvigsson (SWE/FDJ) 18:52.
65. Chad Haga (USA/SUN) 18:52.
66. Daniel Martínez (COL/EFD) 18:52.
67. Pavel Kochetkov (RUS/KAT) 18:52.
68. Franco Pellizotti (ITA/BAH) 18:52.
69. Sylvain Chavanel (FRA/DEN) 18:52.
70. Koen de Kort (NED/TRE) 18:52.
71. Simon Clarke (AUS/EFD) 18:52.
72. Daryl Impey (RSA/MIT) 18:52.
73. Michael Andersen (DEN/AST) 18:52.
74. Pierre Rolland (FRA/EFD) 18:52.
75. Audrey Amador (CRC/MOV) 18:52.
76. Omar Fraile (ESP/AST) 18:52.
77. Jonathan Castroviejo (ESP/SKY) 18:52.
78. Nicolas Edet (FRA/COF) 21:28.
79. Anthony Perez (FRA/COF) 21:28.
80. Thomas De Gendt (BEL/LOT) 21:28.
81. Toms Skujinš (LAT/TRE) 21:28.
82. Paul Martens (GER/LNL) 21:28.
83. Patrick Bevin (NZL/BMC) 21:28.
84. Michael Gogl (AUT/TRE) 21:33.
85. Michael Schär (SUI/BMC) 22:36.
86. Yoann Offredo (FRA/WGG) 22:36.
87. Philippe Gilbert (BEL/QST) 22:36.
88. Marc Soler (ESP/MOV) 24:28.
89. Silvan Dillier (SUI/ALM) 25:03.
90. Anthony Turgis (FRA/COF) 25:03.
91. Edward Theuns (BEL/SUN) 25:03.
92. Laurent Pichon (FRA/FST) 25:03.
93. Kévin Ledanois (FRA/FST) 25:03.
94. Dimitri Claeys (BEL/COF) 25:03.
95. Simon Gerrans (AUS/BMC) 25:03.
96. Oliver Naesen (BEL/ALM) 25:03.
97. Tim Declercq (BEL/QST) 25:03.
98. Tomasz Marczynski (POL/LOT) 25:03.
99. Yves Lampaert (BEL/QST) 25:03.
100. Jelle Vanendert (BEL/LOT) 25:03.
101. Florian Vachon (FRA/FST) 25:03.
102. Imanol Erviti (ESP/MOV) 25:03.
103. Rory Sutherland (AUS/EAU) 25:03.
104. Pawel Poljanski (POL/BOR) 25:03.
105. Dion Smith (NZL/WGG) 25:03.
106. Daniel Navarro (ESP/COF) 25:03.
107. Magnus Nielsen (DEN/AST) 25:03.
108. Julien Simon (FRA/COF) 25:03.
109. Romain Sicard (FRA/DEN) 25:03.
110. Gregor Mühlberger (AUT/BOR) 25:03.
111. Dmitriy Gruzdev (KAZ/AST) 25:03.
112. Sonny Colbrelli (ITA/BAH) 25:03.
113. Luke Durbridge (AUS/MIT) 25:23.
114. Matthew Hayman (AUS/MIT) 25:23.
115. Peter Sagan (SVK/BOR) 26:29.
116. Daniel Oss (ITA/BOR) 26:29.
117. Marco Marcato (ITA/EAU) 27:50.
118. Nils Politt (GER/KAT) 27:50.
119. Taylor Phinney (USA/EFD) 27:50.
120. Reinardt Janse Van Rensburg (RSA/DDT) 27:50.
121. Alexander Kristoff (NOR/EAU) 27:50.
122. Edvald Boasson Hagen (NOR/DDT) 27:50.
123. John Degenkolb (GER/TRE) 27:50.
124. Ramon Sinkeldam (NED/FDJ) 27:50.
125. Marcel Sieberg (GER/LOT) 27:50.
126. Jasper De Buyst (BEL/LOT) 27:50.
127. Niki Terpstra (NED/QST) 27:50.
128. Oliviero Troia (ITA/EAU) 27:50.
129. Lukas Pöstlberger (AUT/BOR) 27:50.
130. Marcus Burghardt (GER/BOR) 27:50.
131. Fernando Gaviria (COL/QST) 27:50.
132. André Greipel (GER/LOT) 27:50.
133. Jacopo Guarnieri (ITA/FDJ) 27:50.
134. Luke Rowe (GBR/SKY) 27:50.
135. Jay Thomson (RSA/DDT) 27:50.
136. Christophe Laporte (FRA/COF) 27:50.
137. Fabien Grellier (FRA/DEN) 27:50.
138. Gianni Moscon (ITA/SKY) 27:50.
139. Thomas Boudat (FRA/DEN) 27:50.
140. Kristjan Koren (SLO/BAH) 27:50.
141. Maciej Bodnar (POL/BOR) 27:50.
142. Heinrich Haussler (AUS/BAH) 27:50.
143. Jérôme Cousin (FRA/DEN) 27:50.
144. Olivier Le Gac (FRA/FDJ) 27:50.
145. Tom Scully (NZL/EFD) 27:50.
146. Arnaud Démare (FRA/FDJ) 27:50.
147. Maximiliano Richeze (ARG/QST) 27:50.
148. Damien Gaudin (FRA/DEN) 27:50.
149. Sep Vanmarcke (BEL/EFD) 27:50.
150. Daniele Bennati (ITA/MOV) 27:50.
151. Romain Hardy (FRA/FST) 27:50.
152. Roberto Ferrari (ITA/EAU) 27:50.
153. Lawson Craddock (USA/EFD) 27:50.
154. Jack Bauer (NZL/MIT) 29:56.
155. Julien Vermote (BEL/DDT) 34:02.
156. Guillaume Van Keirsbulck (BEL/WGG) 34:02.
157. Amund Grondahl Jansen (NOR/LNL) 34:02.
158. Timothy Dupont (BEL/WGG) 34:02.
159. Mark Cavendish (GBR/DDT) 34:02.
160. Timo Roosen (NED/LNL) 34:02.
161. Rick Zabel (GER/KAT) 34:02.
162. Marcel Kittel (GER/KAT) 34:02.
163. Michael Hepburn (AUS/MIT) 34:02.
164. Dylan Groenewegen (NED/LNL) 34:02.
165. Mark Renshaw (AUS/DDT) 34:02.
166. Alexis Vuillermoz (FRA/ALM) Withdrawn
167. Jens Keukeleire (BEL/LOT) Withdrawn