Jonas Vingegaard (Visma | Lease a Bike) won stage 14 of the Giro d'Italia at Pila on Saturday, taking the pink jersey from Afonso Eulálio (Bahrain Victorious) on the 133km Alpine stage from Aosta. The result was widely anticipated; the main shifts came behind him. Eulálio stayed second overall at 2:26, and Felix Gall (Decathlon CMA CGM) moved into third at 2:50 after finishing closest to the Dane on the stage.
Vingegaard's winning margin of 49 seconds over Gall was his largest of the race so far. He attacked on the final climb of a day that packed 4,350 metres of climbing into a short stage, riding solo to the line after Visma | Lease a Bike controlled the race through Saint-Barthélémy, Doues, Lin Noir and Verrogne. Gall kept the Dane closest once again on the final climb, with Vingegaard not managing the major time gains on his rivals that had been expected. Jai Hindley (Red Bull-BORA-hansgrohe) took third on the stage at 58 seconds, reinforcing his place in the overall picture.
As said in the prediction piece on Friday, riders just outside the top 10 went for the early break on the first climb of the day, Saint-Barthélémy. That was the right tactic, with teams like Movistar and Uno-X Mobility getting multiple riders in the group to support their main focuses of Einer Rubio and Johannes Kulset. Jan Hirt (NSN) and David de la Cruz (Pinarello-Q36.5) also made moves, with the former holding on to finish ninth on the stage. None of them made major inroads on the GC, but that was more because of what happened behind. Visma | Lease a Bike kept the gap tight throughout, and the GC battle arrived on the final ascent, where Vingegaard imposed himself — though not in quite the dominant fashion many had expected.

Credit to Eulálio, though. The Portuguese rider was dropped early — even before Davide Piganzoli had taken over from Sepp Kuss in the Visma train. Yet the pink jersey wearer found something within him to manage the gap. He got to about 2:15 off the back of the Dane and the time stopped growing. At the finish he crossed the line at 2:49 and remains second overall. A heroic ride from the 24-year-old. That said, if he continues losing time at that rate, he will likely slip down the order in the coming mountain stages, with Gall, Thymen Arensman (Ineos Grenadiers), Hindley, Giulio Pellizzari (Red Bull-BORA-hansgrohe) and Storer all very close by.
Gall's consistency on summit finishes now makes him a live threat to Eulálio's second place, with just 24 seconds separating them in the updated general classification. His pattern through the race has been the same: he stays closest to Vingegaard, even if this time the final gap opened up a little more than before. That persistence keeps the podium battle open.
Further back, Arensman slipped to fourth at 3:03 after losing 1:23 on the stage, while Ben O'Connor (Jayco AlUla) dropped to eighth after conceding 2:55. Hindley sits fifth at 3:43, with teammate Pellizzari sixth at 4:22 after a valiant effort in which the white jersey looked in difficulty on multiple occasions and even found himself off the back at one point. With Michael Storer (Tudor) also riding a solid climb, the top seven in GC are now all within five minutes of each other, with some huge mountain tests still to come.
Away from the GC, Jhonatan Narváez (UAE Team Emirates-XRG) took the points jersey by a single point over Paul Magnier (Soudal-Quickstep), though Sunday's flat sprint stage should quickly swing that margin back into the young Frenchman's favour. In the mountains classification, Jardi van der Lee (EF Education-EasyPost) and Giulio Ciccone (Lidl-Trek) have begun hunting KOM points and sit roughly 85 to 90 points behind Vingegaard, with a big final week of climbing still to come.
Sunday's flatter stage should pause the GC battle before the race returns to the mountains on Tuesday for a brutal final week. Vingegaard will wear pink, but he doesn't hold absolutely every card for the moment as rivals keep him honest.
Results
Aosta to Pila • May 23 • 133km
| Pos | Rider | Team | Time |
|---|---|---|---|
| 🥇 | Jonas Vingegaard Hansen | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | 3:53:01 |
| 🥈 | Felix Gall | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +0:49 |
| 🥉 | Jai Hindley | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +0:58 |
| 4 | Davide Piganzoli | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +1:03 |
| 5 | Giulio Pellizzari | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +1:03 |
| 6 | Thymen Arensman | NETCOMPANY INEOSNETCOMPANY INEOS | +1:23 |
| 7 | Michael Storer | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +1:35 |
| 8 | Wouter Poels | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +2:08 |
| 9 | Jan Hirt | NSN CYCLING TEAMNSN CYCLING TEAM | +2:08 |
| 10 | Egan Arley Bernal Gomez | NETCOMPANY INEOSNETCOMPANY INEOS | +2:08 |
| 11 | Einer Augusto Rubio Reyes | MOVISTAR TEAMMOVISTAR TEAM | +2:08 |
| 12 | Derek Gee | LIDL-TREKLIDL-TREK | +2:24 |
| 13 | Mathys Rondel | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +2:30 |
| 14 | Sepp Kuss | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +2:46 |
| 15 | Afonso Eulálio | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +2:49 |
| 16 | Ben Alexander O'Connor | TEAM JAYCO ALULATEAM JAYCO ALULA | +2:55 |
| 17 | Damiano Caruso | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +2:55 |
| 18 | Gregor Mühlberger | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +2:55 |
| 19 | David de la Cruz Melgarejo | PINARELLO-Q36.5 PRO CYCLING TEAMPINARELLO-Q36.5 PRO CYCLING TEAM | +2:55 |
| 20 | Aleksandr Vlasov | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +3:45 |
| 21 | Christopher Harper | PINARELLO-Q36.5 PRO CYCLING TEAMPINARELLO-Q36.5 PRO CYCLING TEAM | +4:06 |
| 22 | Johannes Kulset | UNO-X MOBILITYUNO-X MOBILITY | +4:42 |
| 23 | Igor Arrieta Lizarraga | UAE TEAM EMIRATES XRGUAE TEAM EMIRATES XRG | +5:26 |
| 24 | Giulio Ciccone | LIDL-TREKLIDL-TREK | +6:17 |
| 25 | Enric Mas Nicolau | MOVISTAR TEAMMOVISTAR TEAM | +6:17 |
| 26 | Markel Beloki Fernandez | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +7:36 |
| 27 | Gianmarco Garofoli | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +7:36 |
| 28 | Koen Bouwman | TEAM JAYCO ALULATEAM JAYCO ALULA | +7:51 |
| 29 | Giovanni Aleotti | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +11:38 |
| 30 | Embret Svestad-Bårdseng | NETCOMPANY INEOSNETCOMPANY INEOS | +14:11 |
| 31 | Johannes Staune-Mittet | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +14:11 |
| 32 | Callum Scotson | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +14:11 |
| 33 | Juan Pedro Lopez Perez | MOVISTAR TEAMMOVISTAR TEAM | +14:11 |
| 34 | Ludovico Crescioli | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +14:11 |
| 35 | Bart Lemmen | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +15:36 |
| 36 | Victor Campenaerts | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +15:36 |
| 37 | Ben Zwiehoff | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +16:24 |
| 38 | Florian Stork | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +16:24 |
| 39 | Simone Gualdi | LOTTO INTERMARCHÉLOTTO INTERMARCHÉ | +16:24 |
| 40 | Jack Leonard Haig | NETCOMPANY INEOSNETCOMPANY INEOS | +16:24 |
| 41 | Mark Jamie Donovan | PINARELLO-Q36.5 PRO CYCLING TEAMPINARELLO-Q36.5 PRO CYCLING TEAM | +16:24 |
| 42 | Lorenzo Rota | LOTTO INTERMARCHÉLOTTO INTERMARCHÉ | +26:29 |
| 43 | Edoardo Zambanini | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +26:29 |
| 44 | Magnus Sheffield | NETCOMPANY INEOSNETCOMPANY INEOS | +26:29 |
| 45 | Nelson Oliveira | MOVISTAR TEAMMOVISTAR TEAM | +26:29 |
| 46 | Connor Swift | NETCOMPANY INEOSNETCOMPANY INEOS | +26:29 |
| 47 | Lawrence Warbasse | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +26:29 |
| 48 | Michael Valgren | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +26:29 |
| 49 | William Barta | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +26:29 |
| 50 | Christopher Jensen | TEAM JAYCO ALULATEAM JAYCO ALULA | +26:29 |
| 51 | Jhonatan Narvaez Prado | UAE TEAM EMIRATES XRGUAE TEAM EMIRATES XRG | +26:29 |
| 52 | Matteo Sobrero | LIDL-TREKLIDL-TREK | +26:29 |
| 53 | Amanuel Ghebreigzabhier | LIDL-TREKLIDL-TREK | +26:29 |
| 54 | Nickolas Zukowsky | PINARELLO-Q36.5 PRO CYCLING TEAMPINARELLO-Q36.5 PRO CYCLING TEAM | +26:54 |
| 55 | Diego Ulissi | XDS ASTANA TEAMXDS ASTANA TEAM | +27:17 |
| 56 | Alberto Bettiol | XDS ASTANA TEAMXDS ASTANA TEAM | +27:17 |
| 57 | James Shaw | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +27:17 |
| 58 | Brieuc Rolland | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +27:17 |
| 59 | Jonas Rutsch | LOTTO INTERMARCHÉLOTTO INTERMARCHÉ | +29:40 |
| 60 | Mathijs Paasschens | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +29:40 |
| 61 | Tobias Bayer | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +29:40 |
| 62 | Alan Hatherly | TEAM JAYCO ALULATEAM JAYCO ALULA | +29:40 |
| 63 | Lorenzo Milesi | MOVISTAR TEAMMOVISTAR TEAM | +29:51 |
| 64 | Christopher Hamilton | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +30:00 |
| 65 | Fran Miholjević | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +31:12 |
| 66 | Tim Rex | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +31:17 |
| 67 | Johan Jacobs | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +31:17 |
| 68 | Andreas Leknessund | UNO-X MOBILITYUNO-X MOBILITY | +32:46 |
| 69 | Mick van Dijke | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +33:49 |
| 70 | Gianni Moscon | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +33:49 |
| 71 | Jardi Christiaan van der Lee | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +33:49 |
| 72 | Darren Rafferty | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +33:49 |
| 73 | Luca Vergallito | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +33:49 |
| 74 | Warren Barguil | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +33:55 |
| 75 | Alec Segaert | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +35:32 |
| 76 | Corbin John Strong | NSN CYCLING TEAMNSN CYCLING TEAM | +35:55 |
| 77 | Joshua Kench | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +35:55 |
| 78 | Nicholas Schultz | NSN CYCLING TEAMNSN CYCLING TEAM | +35:55 |
| 79 | Robert Stannard | BAHRAIN VICTORIOUSBAHRAIN VICTORIOUS | +35:55 |
| 80 | Fredrik Dversnes | UNO-X MOBILITYUNO-X MOBILITY | +37:10 |
| 81 | Rasmus Pedersen | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +38:30 |
| 82 | Johan Price Pejtersen | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +38:30 |
| 83 | Thomas Pesenti | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +38:30 |
| 84 | Alessandro Tonelli | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +38:30 |
| 85 | David Gonzalez Lopez | PINARELLO-Q36.5 PRO CYCLING TEAMPINARELLO-Q36.5 PRO CYCLING TEAM | +38:30 |
| 86 | Markus Hoelgaard | UNO-X MOBILITYUNO-X MOBILITY | +38:30 |
| 87 | Harold Martin Lopez Granizo | XDS ASTANA TEAMXDS ASTANA TEAM | +38:30 |
| 88 | Guillermo Thomas Silva Coussan | XDS ASTANA TEAMXDS ASTANA TEAM | +38:30 |
| 89 | Ivan Garcia Cortina | MOVISTAR TEAMMOVISTAR TEAM | +38:30 |
| 90 | Alessandro Pinarello | NSN CYCLING TEAMNSN CYCLING TEAM | +38:30 |
| 91 | Diego Pablo Sevilla Lopez | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +38:30 |
| 92 | Orluis Alberto Aular Sanabria | MOVISTAR TEAMMOVISTAR TEAM | +38:30 |
| 93 | Jefferson Cepeda Ortiz | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +38:30 |
| 94 | Jasper Stuyven | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +39:38 |
| 95 | Oliver Naesen | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +39:38 |
| 96 | Ben Turner | NETCOMPANY INEOSNETCOMPANY INEOS | +39:38 |
| 97 | Jan Christen | UAE TEAM EMIRATES XRGUAE TEAM EMIRATES XRG | +39:38 |
| 98 | Filippo Ganna | NETCOMPANY INEOSNETCOMPANY INEOS | +39:38 |
| 99 | António Tomas Morgado | UAE TEAM EMIRATES XRGUAE TEAM EMIRATES XRG | +39:38 |
| 100 | Martin Marcellusi | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +39:38 |
| 101 | Toon Aerts | LOTTO INTERMARCHÉLOTTO INTERMARCHÉ | +39:38 |
| 102 | Timo Kielich | TEAM VISMA | LEASE A BIKETEAM VISMA | LEASE A BIKE | +40:22 |
| 103 | Jonas Geens | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +40:22 |
| 104 | Filippo Turconi | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +40:22 |
| 105 | Nikita Tsvetkov | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +40:22 |
| 106 | Luca Paletti | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +40:22 |
| 107 | Cyril Barthe | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +40:22 |
| 108 | Mattia Bais | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +40:22 |
| 109 | Mirco Maestri | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +40:22 |
| 110 | Francesco Busatto | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +40:22 |
| 111 | Madis Mihkels | EF EDUCATION - EASYPOSTEF EDUCATION - EASYPOST | +40:22 |
| 112 | Gijs Leemreize | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +40:22 |
| 113 | Filippo Zana | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +40:22 |
| 114 | Andrea Raccagni Noviero | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +40:31 |
| 115 | Rémi Cavagna | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +40:44 |
| 116 | Axel Huens | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +40:49 |
| 117 | Giovanni Lonardi | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +40:58 |
| 118 | Vicente Rojas Naranjo | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +41:47 |
| 119 | Rémy Rochas | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +41:47 |
| 120 | Paul Penhoet | GROUPAMA-FDJ UNITEDGROUPAMA-FDJ UNITED | +41:47 |
| 121 | Andréa Mifsud | TEAM POLTI VISITMALTATEAM POLTI VISITMALTA | +41:50 |
| 122 | Jonathan Milan | LIDL-TREKLIDL-TREK | +42:59 |
| 123 | Robert Donaldson | TEAM JAYCO ALULATEAM JAYCO ALULA | +43:34 |
| 124 | Jensen Plowright | ALPECIN-PREMIER TECHALPECIN-PREMIER TECH | +43:34 |
| 125 | Hartthijs de Vries | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +43:41 |
| 126 | Enrico Zanoncello | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +43:52 |
| 127 | Manuele Tarozzi | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +43:52 |
| 128 | Pascal Ackermann | TEAM JAYCO ALULATEAM JAYCO ALULA | +43:57 |
| 129 | Ryan William Mullen | NSN CYCLING TEAMNSN CYCLING TEAM | +44:01 |
| 130 | Dion Allan Smith | NSN CYCLING TEAMNSN CYCLING TEAM | +44:01 |
| 131 | Ethan Kane Vernon | NSN CYCLING TEAMNSN CYCLING TEAM | +44:03 |
| 132 | Maximilian Richard Walscheid | LIDL-TREKLIDL-TREK | +44:03 |
| 133 | Frank van den Broek | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +44:03 |
| 134 | Sean Flynn | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +44:03 |
| 135 | Tim Torn Teutenberg | LIDL-TREKLIDL-TREK | +44:03 |
| 136 | Tim Naberman | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +44:09 |
| 137 | Casper Cornelis van Uden | TEAM PICNIC POSTNLTEAM PICNIC POSTNL | +44:09 |
| 138 | Fabian Lienhard | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +44:09 |
| 139 | Robin Froidevaux | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +44:09 |
| 140 | Arjen Livyns | XDS ASTANA TEAMXDS ASTANA TEAM | +44:09 |
| 141 | Nico Denz | RED BULL - BORA - HANSGROHERED BULL - BORA - HANSGROHE | +44:09 |
| 142 | Dries van Gestel | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +44:09 |
| 143 | Paul Magnier | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +44:09 |
| 144 | Tomas Kopecký | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +44:09 |
| 145 | Matyáš Kopecký | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +44:09 |
| 146 | Fabio van den Bossche | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +44:09 |
| 147 | Mikkel Norsgaard Bjerg | UAE TEAM EMIRATES XRGUAE TEAM EMIRATES XRG | +44:09 |
| 148 | Ayco Bastiaens | SOUDAL QUICK-STEPSOUDAL QUICK-STEP | +44:09 |
| 149 | Niklas Larsen | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +44:09 |
| 150 | Tord Gudmestad | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +44:39 |
| 151 | Sakarias Koller Løland | UNO-X MOBILITYUNO-X MOBILITY | +44:39 |
| 152 | Simone Consonni | LIDL-TREKLIDL-TREK | +44:39 |
| 153 | Luca Mozzato | TUDOR PRO CYCLING TEAMTUDOR PRO CYCLING TEAM | +44:39 |
| 154 | Filippo Magli | BARDIANI CSF 7 SABERBARDIANI CSF 7 SABER | +45:03 |
| 155 | Matteo Malucelli | XDS ASTANA TEAMXDS ASTANA TEAM | +45:14 |
| 156 | Elmar Reinders | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +45:27 |
| 157 | Lukáš Kubiš | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +45:27 |
| 158 | Dylan Groenewegen | UNIBET ROSE ROCKETSUNIBET ROSE ROCKETS | +45:27 |
| 159 | Tobias Lund Andresen | DECATHLON CMA CGM TEAMDECATHLON CMA CGM TEAM | +45:27 |
Cover image credit: Marco Alpozzi
Velora newsletter
Never miss a story
The biggest cycling stories, tech insight and race analysis — twice a week, free.





