Julian Alaphilippe won stage two of the Tour de France in a sprint finish to claim the yellow jersey in Nice.
The Frenchman held off Marc Hirschi to edge home by half a wheel after leaving Britain's Adam Yates behind in a final dart for the line.
He leads Yates, who finished third, by four seconds in the overall standings.
It was a fifth stage victory at the Tour for the 28-year-old, after the riders faced a 186km mountainous second stage, with two climbs above 1,500m.
The stage had seemed set for Alaphilippe to light up the race on a hilly course around Nice that played to his strengths.
And in typical fashion the French puncheur delivered one of his trademark attacks on Sunday's final ascent up the Col des Quatre Chemins.
Yates and Switzerland's Hirschi both worked with the Deceuninck-QuickStep rider to distance the main bunch, before Alaphilippe claimed his first win of 2020.
"I've always remained serious with my training despite the difficult moments I went through - I dedicate this victory to my father [who passed away in June]," Alaphilippe said.
"I asked my team to make the race hard.
"There weren't many riders left in the last climb. I gave it all - I had nothing to lose. It was nerve wracking but Adam Yates cooperated.
"I wanted to maintain the gap until the flamme rouge [which marks the last kilometre]. I'm kind of used to the pressure. To finish it off makes me feel good. This is the victory that I was missing. The yellow jersey is the icing on the cake."
Alaphilippe, who wore the yellow jersey for 14 stages in the 2019 edition of the Tour, now leads the race by four seconds ahead of Yates because of time bonuses.
Earlier on Sunday the peloton had safely negotiated the steep slopes of the Col de la Colmiane and Col de Turini, in contrast to Saturday's chaotic opening stage.
However, it was a tough day for the sprinters, with Saturday's yellow jersey winner Alexander Kristoff among those to finish over 28 minutes down on Alaphilippe.
Stage three on Monday sees the race travel 198km from Nice to Sisteron.
Stage two result
1. Julian Alaphilippe (Fra/Deceuninck-Quick-Step) 4hrs 55mins 27secs
2. Marc Hirschi (Swi/Team Sunweb) same time
3. Adam Yates (GB/Mitchelton-Scott) +1sec
4. Greg Van Avermaet (Bel/CCC Team) +2secs
5. Sergio Higuita (Col/EF Pro Cycling ) same time
6. Bauke Mollema (Ned/Trek-Segafredo)
7. Alexey Lutsenko (KazAstana Pro Team)
8. Tadej Pogacar (Slo/UAE Team Emirates)
9. Maximilian Schachmann (Ger/BORA-hansgrohe)
10. Alberto Bettiol (Ita/EF Pro Cycling)
General classification after stage two
1. Julian Alaphilippe (Fra/Deceuninck-Quick-Step) 8hrs 41mins 35secs
2. Adam Yates (GB/Mitchelton-Scott) +4secs
3. Marc Hirschi (Swi/Team Sunweb) +7secs
4. Sergio Higuita (Col/EF Pro Cycling) +17secs
5. Tadej Pogacar (Slo/UAE Team Emirates) same time
6. Esteban Chaves (Col/Mitchelton-Scott)
7. Davide Formolo (Ita/UAE Team Emirates)
8. Egan Bernal (Col/INEOS Grenadiers)
9. Richard Carapaz (Ecu/INEOS Grenadiers)
10. Tom Dumoulin (Ned/Jumbo-Visma)