The Frenchman beat Toms Skujins (Trek-Segafredo) and Carlos Verona (Movistar) by 47 seconds, having dropped eventual fourth-placed man Ilnur Zakarin (CCC Team) on the descent of the day's penultimate climb, the Port de Balès.
"This is crazy, absolutely crazy. I had a dream to win a stage in the Tour de France and I've done it," Peters said afterward. "To be honest Zakarin was better than me on the climb but I did everything I could. I kept telling myself, telling myself I'm the best, I'm the strongest. I really did everything I could."
Peters went solo on the descent of the Port de Balès and rode the Peyresourde alone to claim his second Grand Tour stage victory, but the biggest news of the day was the implosion of Thibaut Pinot (Groupama-FDJ) on the day's final climb.
The Frenchman was dropped 41km from the finish, possibly suffering from injuries sustained in a stage 1 crash. He finished minutes down and out of the GC picture, while the favourites group raced to a detente despite a flurry of attacks on the Peyresourde.
Tadej Pogačar (UAE Team Emirates) did, however, regain 38 seconds after attacking 15km out, one day after losing 1:21 in the crosswinds.
"I saw that the other guys were looking at each other and everyone was on the limit, I had the chance to attack and I went full gas for the last 5 km to the top," Pogačar said.
"In the downhill I tried to go as deep as I could and at the end I had 40 seconds of advantage, so it was a good day for me. Tomorrow will be another hard day, we will see day by day how we face each stage."
Emanuel Buchmann (Bora-Hansgrohe) rolled in over a minute down, while Tom Dumoulin (Jumbo-Visma) was over two minutes back.
Adam Yates (Mitchelton-Scott) retains the race lead heading into the second day of the Pyrenean doubleheader on Sunday. He was distanced several times on the Peyresourde but came back to hold on to his three-second lead over Primož Roglič (Jumbo-Visma).
How it unfolded
What was arguably the fourth mountain stage of the 2020 Tour de France saw riders take on three categorised climbs on the road from Cazères. The Col de Menté (6.9km at 8.1 per cent), Port de Balès (12.2km at 7.6 per cent) and Col de Peyresourde (9.7km at 7.5 per cent) all lay on the 141km route before a downhill to the finish in Loudenvielle, three times an arrival town in the past.
It didn't take long for the break of the day to form, going away in the opening 10km of the stage. KOM leader Benoît Cosnefroy (AG2R La Mondiale) was up there, joining climbers Zakarin, Ben Hermans (Israel Start-Up Nation) and Neilson Powless (EF Pro Cycling) out front.
The 13-man group we completed by Peters, Verona, Skujinš, Kévin Reza and Quentin Pacher (B&B Hotels-Vital Concept), Michael Mørkøv (Deceuninck-Quick Step), Fabien Grellier and Jérôme Cousin (Total Direct Energie), and Søren Kragh Andersen (Team Sunweb).
The break quickly built a gap of several minutes as the Mitchelton-Scott-led peloton was happy to let them get away. At the intermediate sprint 42km into the day, Sam Bennett (Deceuninck-QuickStep) dragged back two points in the points competition on Peter Sagan (Bora-Hansgrohe), putting him within seven of the Slovak.
Not long after, the break hit the Col de Menté almost 14 minutes up on the peloton – a sign of who would claim the stage win later on. European champion Giacomo Nizzolo (NTT Pro Cycling) left the race midway up, suffering from a leg injury, while Romain Bardet (AG2R La Mondiale) crashed near the top and cut his elbow.
To nobody's surprise, Cosnefroy extended his KOM lead with a maximum 10 points over the top, before Cousin went it along on the descent and into the valley road ahead of the Port de Balès. His adventure would end there, though, after Zakarin and Peters went on the offensive to leave the break behind with 45km to run.
But the Russian admitted his poor descending abilities cost him on the drop from the Port de Balès. "[Peters] really was good and for me today the downhill was a very big problem. I know it's my problem. [Peters] was really strong and had good motivation for today," Zakarin said.
The first big shock of the Tour came on the climb, with Pinot dropping from the peloton with 41km to go and 60 riders left in the peloton. The Frenchman clutching his lower back at one point – suffering from his crash on stage 1, perhaps.
Up front, Peters distanced Zakarin on the descent to become the sole leader as he hit the Peyresorde while Jumbo-Visma pulled the peloton nine minutes back. Key helpers dropped away on the climb, with the 'superteam' trains evaporating, leaving Jumbo-Visma as the only team with two men remaining in the shape of Roglič and Tom Dumoulin.
Former yellow jersey Julian Alaphilippe (Deceuninck-QuickStep) put in attack with 15km to go before bizarrely being dropped almost immediately afterwards, while Pogačar Quintana and Roglič made a move off the front as Dumoulin pulled off.
A chase group of Egan Bernal (Ineos Grenadiers), Mikel Landa (Bahrain McLaren), Miguel Ángel López (Astana), Guillaume Martin (Cofidis) and Rigoberto Urán (EF Pro Cycling) formed as race leader Adam Yates (Mitchelton-Scott) was dropped, but there was a quick regrouping as the likes of Richie Porte (Trek-Segafredo) and Richard Carapaz (Ineos Grenadiers) also got back on.
“Dumoulin he set a ferocious pace [on last climb] you know, and I just couldn’t hold the wheel. I actually rode my own pace for a little bit, sort of collect myself," Yates said after the stage.
"Over the top I stayed with the guys, so in all a good day. Tomorrow is a very similar stage. If we can hold on for another day, the day after that is a rest day, so hopefully we can hold on [yellow jersey] until then."
Pogačar went again 4km from the summit and 15km from the line, building a minute's gap by the top of the Peyresourde, while Landa and Porte enjoyed a foray off the front before being caught before the summit.
Closer to the top, attacks from Martin and Quintana looked strong and gained some traction, but neither man managed to land a killer blow, and the group descended all together.
Eight minutes up the road, Peters had passed the Peyresourde alone, a cert for the stage win barring disaster on the descent to Loudenvielle. He duly rode on alone and stayed safe, taking the stage win by some distance.
Further back, Pogačar managed to stay out front to gain back a chunk of time he had lost on stage 7, while a late attack from Bardet saw him take back two seconds on the GC group and shift him up to fourth overall. In addition to the time losses suffered by Buchmann and Dumoulin, Bauke Mollema (Trek-Segafredo) and Richard Carapaz (Ineos Grenadiers) also lost some time, shedding 38 seconds at the finish.
|Place||Rider (Country) Team||Result|
|1||Nans Peters (Fra) AG2R la Mondiale||04:02:12|
|2||Toms Skujins (Lat) Trek-Segafredo||00:00:47|
|3||Carlos Verona Quintanilla (Spa) Movistar Team||00:00:47|
|4||Ilnur Zakarin (Rus) CCC Team||00:01:09|
|5||Neilson Powless (USA) EF Pro Cycling||00:01:41|
|6||Ben Hermans (Bel) Israel Start-Up Nation||00:03:42|
|7||Quentin Pacher (Fra) B&B Hotels-Vital Concept||00:03:42|
|8||Søren Kragh Andersen (Den) Team Sunweb||00:04:04|
|9||Tadej Pogacar (Slo) UAE Team Emirates||00:06:00|
|10||Romain Bardet (Fra) AG2R la Mondiale||00:06:38|
|11||Miguel Angel Lopez Moreno (Col) Astana Pro Team||00:06:40|
|12||Adam Yates (GBr) Mitchelton-Scott||00:06:40|
|13||Egan Arley Bernal Gomez (Col) Ineos Grenadiers||00:06:40|
|14||Mikel Landa Meana (Spa) Bahrain McLaren||00:06:40|
|15||Guillaume Martin (Fra) Cofidis||00:06:40|
|16||Primoz Roglic (Slo) Team Jumbo-Visma||00:06:40|
|17||Nairo Quintana (Col) Team Arkea-Samsic||00:06:40|
|18||Rigoberto Uran (Col) EF Pro Cycling||00:06:40|
|19||Richie Porte (Aus) Trek-Segafredo||00:06:40|
|20||Enric Mas Nicolau (Spa) Movistar Team||00:07:18|
|21||Damiano Caruso (Ita) Bahrain McLaren||00:07:18|
|22||Bauke Mollema (Ned) Trek-Segafredo||00:07:18|
|23||Richard Carapaz (Ecu) Ineos Grenadiers||00:07:18|
|24||Pierre Rolland (Fra) B&B Hotels-Vital Concept||00:07:18|
|25||Emanuel Buchmann (Ger) Bora-Hansgrohe||00:07:43|
|26||Esteban Chaves (Col) Mitchelton-Scott||00:07:43|
|27||Fabien Grellier (Fra) Total Direct Energie||00:08:47|
|28||Sergio Andres Higuita Garcia (Col) EF Pro Cycling||00:08:47|
|29||Alejandro Valverde (Spa) Movistar Team||00:08:47|
|30||Tom Dumoulin (Ned) Team Jumbo-Visma||00:08:47|
|31||Hugh Carthy (GBr) EF Pro Cycling||00:08:47|
|32||Warren Barguil (Fra) Team Arkea-Samsic||00:08:47|
|33||Kenny Elissonde (Fra) Trek-Segafredo||00:08:47|
|34||Harold Alfonso Tejada Canacue (Col) Astana Pro Team||00:11:51|
|35||Marc Soler (Spa) Movistar Team||00:15:03|
|36||Benoit Cosnefroy (Fra) AG2R la Mondiale||00:16:37|
|37||Romain Sicard (Fra) Total Direct Energie||00:16:50|
|38||Julian Alaphilippe (Fra) Deceuninck-Quickstep||00:18:07|
|39||Jonathan Castroviejo Nicolas (Spa) Ineos Grenadiers||00:18:07|
|40||Pello Bilbao (Spa) Bahrain McLaren||00:18:07|
|41||Alexis Vuillermoz (Fra) AG2R la Mondiale||00:18:49|
|42||Mikael Cherel (Fra) AG2R la Mondiale||00:18:49|
|43||Gorka Izagirre Insausti (Spa) Astana Pro Team||00:18:49|
|44||Michael Mørkøv (Den) Deceuninck-Quickstep||00:18:49|
|45||Fabio Aru (Ita) UAE Team Emirates||00:19:44|
|46||Dylan Van Baarle (Ned) Ineos Grenadiers||00:19:44|
|47||Lennard Kämna (Ger) Bora-Hansgrohe||00:20:10|
|48||Daniel Felipe Martinez Poveda (Col) EF Pro Cycling||00:21:16|
|49||George Bennett (NZl) Team Jumbo-Visma||00:21:47|
|50||Wout van Aert (Bel) Team Jumbo-Visma||00:21:47|
|51||Gregor Mühlberger (Aut) Bora-Hansgrohe||00:21:47|
|52||Niklas Eg (Den) Trek-Segafredo||00:21:47|
|53||Jerome Cousin (Fra) Total Direct Energie||00:21:47|
|54||Jan Polanc (Slo) UAE Team Emirates||00:22:56|
|55||Robert Gesink (Ned) Team Jumbo-Visma||00:22:56|
|56||Nicolas Edet (Fra) Cofidis||00:22:56|
|57||Thomas De Gendt (Bel) Lotto Soudal||00:23:26|
|58||Nelson Oliveira (Por) Movistar Team||00:24:39|
|59||Jesus Herrada (Spa) Cofidis||00:24:39|
|60||Winner Anacona (Col) Team Arkea-Samsic||00:24:39|
|61||David De la Cruz Melgarejo (Spa) UAE Team Emirates||00:24:50|
|62||Rudy Molard (Fra) Groupama-FDJ||00:25:23|
|63||Valentin Madouas (Fra) Groupama-FDJ||00:25:23|
|64||Thibaut Pinot (Fra) Groupama-FDJ||00:25:23|
|65||David Gaudu (Fra) Groupama-FDJ||00:25:23|
|66||Sébastien Reichenbach (Swi) Groupama-FDJ||00:25:23|
|67||Stefan Küng (Swi) Groupama-FDJ||00:25:23|
|68||Michal Kwiatkowski (Pol) Ineos Grenadiers||00:25:23|
|69||José Rojas (Spa) Movistar Team||00:25:23|
|70||Pavel Sivakov (Rus) Ineos Grenadiers||00:25:23|
|71||Felix Grossschartner (Aut) Bora-Hansgrohe||00:25:23|
|72||Maximilian Schachmann (Ger) Bora-Hansgrohe||00:25:23|
|73||Dries Devenyns (Bel) Deceuninck-Quickstep||00:25:23|
|74||Oliver Naesen (Bel) AG2R la Mondiale||00:25:23|
|75||Dario Cataldo (Ita) Movistar Team||00:25:23|
|76||Bob Jungels (Lux) Deceuninck-Quickstep||00:25:23|
|77||Greg Van Avermaet (Bel) CCC Team||00:25:23|
|78||Wout Poels (Ned) Bahrain McLaren||00:25:23|
|79||Steff Cras (Bel) Lotto Soudal||00:25:23|
|80||Mads Pedersen (Den) Trek-Segafredo||00:25:23|
|81||Casper Phillip Pedersen (Den) Team Sunweb||00:25:23|
|82||Michael Valgren (Den) NTT Pro Cycling||00:25:23|
|83||Krists Neilands (Lat) Israel Start-Up Nation||00:25:23|
|84||Geoffrey Soupe (Fra) Total Direct Energie||00:25:23|
|85||Mikel Nieve Iturralde (Spa) Mitchelton-Scott||00:25:23|
|86||Michael Schär (Swi) CCC Team||00:25:23|
|87||Imanol Erviti (Spa) Movistar Team||00:25:23|
|88||Nicolas Roche (Irl) Team Sunweb||00:25:23|
|89||Daniel Martin (Irl) Israel Start-Up Nation||00:25:23|
|90||Sepp Kuss (USA) Team Jumbo-Visma||00:25:23|
|91||Tejay Van Garderen (USA) EF Pro Cycling||00:25:23|
|92||Ion Izaguirre Insausti (Spa) Astana Pro Team||00:25:23|
|93||Luis León Sanchez (Spa) Astana Pro Team||00:25:23|
|94||Edward Theuns (Bel) Trek-Segafredo||00:25:23|
|95||Simon Geschke (Ger) CCC Team||00:25:23|
|96||Marc Hirschi (Swi) Team Sunweb||00:25:23|
|97||Tony Martin (Ger) Team Jumbo-Visma||00:25:23|
|98||Jan Hirt (Cze) CCC Team||00:25:23|
|99||Domenico Pozzovivo (Ita) NTT Pro Cycling||00:25:36|
|100||Kevin Reza (Fra) B&B Hotels-Vital Concept||00:31:10|
|101||Tom Van Asbroeck (Bel) Israel Start-Up Nation||00:32:39|
|102||Nils Politt (Ger) Israel Start-Up Nation||00:32:39|
|103||Nikias Arndt (Ger) Team Sunweb||00:32:39|
|104||Sonny Colbrelli (Ita) Bahrain McLaren||00:32:39|
|105||Matteo Trentin (Ita) CCC Team||00:32:39|
|106||Davide Formolo (Ita) UAE Team Emirates||00:32:39|
|107||Matthieu Ladagnous (Fra) Groupama-FDJ||00:32:39|
|108||Cyril Barthe (Fra) B&B Hotels-Vital Concept||00:32:39|
|109||Vegard Stake Laengen (Nor) UAE Team Emirates||00:32:39|
|110||Alexander Kristoff (Nor) UAE Team Emirates||00:32:39|
|111||Joris Nieuwenhuis (Ned) Team Sunweb||00:32:39|
|112||Clément Russo (Fra) Team Arkea-Samsic||00:32:39|
|113||Kevin Ledanois (Fra) Team Arkea-Samsic||00:32:39|
|114||Tiesj Benoot (Bel) Team Sunweb||00:32:39|
|115||Jasper De Buyst (Bel) Lotto Soudal||00:32:39|
|116||Ryan Gibbons (RSA) NTT Pro Cycling||00:32:39|
|117||Anthony Turgis (Fra) Total Direct Energie||00:32:39|
|118||Alberto Bettiol (Ita) EF Pro Cycling||00:32:39|
|119||Daniel Oss (Ita) Bora-Hansgrohe||00:32:39|
|120||Luke Rowe (GBr) Ineos Grenadiers||00:32:39|
|121||Roman Kreuziger (Cze) NTT Pro Cycling||00:32:39|
|122||Dayer Quintana (Col) Team Arkea-Samsic||00:32:39|
|123||Daryl Impey (RSA) Mitchelton-Scott||00:32:39|
|124||André Greipel (Ger) Israel Start-Up Nation||00:32:39|
|125||Omar Fraile Matarranz (Spa) Astana Pro Team||00:32:39|
|126||Andrey Amador (CRc) Ineos Grenadiers||00:32:39|
|127||Hugo Houle (Can) Astana Pro Team||00:32:39|
|128||Tim Declercq (Bel) Deceuninck-Quickstep||00:32:39|
|129||Jens Debusschere (Bel) B&B Hotels-Vital Concept||00:32:39|
|130||Connor Swift (GBr) Team Arkea-Samsic||00:32:39|
|131||Edvald Boasson Hagen (Nor) NTT Pro Cycling||00:32:39|
|132||Amund Grøndahl Jansen (Nor) Team Jumbo-Visma||00:32:39|
|133||Pierre Luc Perichon (Fra) Cofidis||00:32:39|
|134||Christophe Laporte (Fra) Cofidis||00:32:39|
|135||Jack Bauer (NZl) Mitchelton-Scott||00:32:39|
|136||Jens Keukeleire (Bel) EF Pro Cycling||00:32:39|
|137||Maximilian Walscheid (Ger) NTT Pro Cycling||00:32:39|
|138||Michael Gogl (Aut) NTT Pro Cycling||00:32:39|
|139||Lukas Pöstlberger (Aut) Bora-Hansgrohe||00:32:39|
|140||Peter Sagan (Svk) Bora-Hansgrohe||00:32:39|
|141||Alexey Lutsenko (Kaz) Astana Pro Team||00:32:39|
|142||Elia Viviani (Ita) Cofidis||00:32:39|
|143||Alessandro De Marchi (Ita) CCC Team||00:32:39|
|144||Luka Mezgec (Slo) Mitchelton-Scott||00:32:39|
|145||Samuel Bewley (NZl) Mitchelton-Scott||00:32:39|
|146||Clement Venturini (Fra) AG2R la Mondiale||00:32:39|
|147||Maxime Chevalier (Fra) B&B Hotels-Vital Concept||00:32:39|
|148||Bryan Coquard (Fra) B&B Hotels-Vital Concept||00:32:39|
|149||Cyril Gautier (Fra) B&B Hotels-Vital Concept||00:32:39|
|150||Pierre Latour (Fra) AG2R la Mondiale||00:32:39|
|151||Rémi Cavagna (Fra) Deceuninck-Quickstep||00:32:39|
|152||Marco Marcato (Ita) UAE Team Emirates||00:32:39|
|153||Niccolò Bonifazio (Ita) Total Direct Energie||00:32:39|
|154||Hugo Hofstetter (Fra) Israel Start-Up Nation||00:32:39|
|155||Frederik Frison (Bel) Lotto Soudal||00:32:39|
|156||Kasper Asgreen (Den) Deceuninck-Quickstep||00:32:39|
|157||Christopher Juul Jensen (Den) Mitchelton-Scott||00:32:39|
|158||Guy Niv (Isr) Israel Start-Up Nation||00:32:39|
|159||Matej Mohoric (Slo) Bahrain McLaren||00:32:39|
|160||Marco Haller (Aut) Bahrain McLaren||00:32:39|
|161||Jonas Koch (Ger) CCC Team||00:32:39|
|162||Mathieu Burgaudeau (Fra) Total Direct Energie||00:32:39|
|163||Jasper Stuyven (Bel) Trek-Segafredo||00:32:39|
|164||Sam Bennett (Irl) Deceuninck-Quickstep||00:32:39|
|165||Caleb Ewan (Aus) Lotto Soudal||00:32:39|
|166||Cees Bol (Ned) Team Sunweb||00:32:39|
|167||Simone Consonni (Ita) Cofidis||00:32:39|
|168||Roger Kluge (Ger) Lotto Soudal||00:32:39|
|DNF||William Bonnet (Fra) Groupama-FDJ|
|DNF||Diego Rosa (Ita) Team Arkea-Samsic|
|DNF||Lilian Calmejane (Fra) Total Direct Energie|
|DNF||Giacomo Nizzolo (Ita) NTT Pro Cycling|
|Place||Rider (Country) Team||Result|
|1||Jerome Cousin (Fra) Total Direct Energie||20|
|2||Michael Mørkøv (Den) Deceuninck-Quickstep||17|
|3||Toms Skujins (Lat) Trek-Segafredo||15|
|4||Kevin Reza (Fra) B&B Hotels-Vital Concept||13|
|5||Benoit Cosnefroy (Fra) AG2R la Mondiale||11|
|6||Neilson Powless (USA) EF Pro Cycling||10|
|7||Nans Peters (Fra) AG2R la Mondiale||9|
|8||Søren Kragh Andersen (Den) Team Sunweb||8|
|9||Ben Hermans (Bel) Israel Start-Up Nation||7|
|10||Fabien Grellier (Fra) Total Direct Energie||6|
|11||Quentin Pacher (Fra) B&B Hotels-Vital Concept||5|
|12||Ilnur Zakarin (Rus) CCC Team|