
Hamburg Cyclassics podium history | 2024 edition | Course map & profile | Photos | Start list
Buxtehude - Hamburg, 207.4 km
Rory Townsend wins in Hamburg. Sirotti photo
Les Woodland's book Paris-Roubaix: The Inside Story - All the bumps of cycling's cobbled classic is available in print, Kindle eBook & audiobook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Hamburg at 2:15 PM, local time: 23C (73F), sunny, with the wind from the north at 13 km/hr (8 mph). No rain is forecast.
The race: Here's the race report from third-place Paul Magnier's Team Soudal Quick-Step.
Paul Magnier isn’t just one of the most successful young riders in the peloton this season, he’s also one of the most consistent, as evidenced by his 12th podium of the season, which the 21-year-old from Grenoble collected at the ADAC Cyclassics.
Third on the Mönckebergstraße – the boulevard affectionately known as “Mo” by locals – Magnier became the first Frenchman in seven years to conclude Germany’s prestigious World Tour one-day race on the podium, another result that confirms his penchant for the Classics.
Five ascents of the Waseberg, the 700m climb where the gradients reached 15%, were the main ingredients of the 207km race, animated by a four-man breakaway. From that group, Rory Townsend (Q3.65 Pro Cycling) somehow managed to hold off the chasers for the smallest of margins, despite the fact the peloton trailed by just ten seconds with one kilometer to go, and took the win in Hamburg. Magnier, who had been impressive on the climbs the whole day, was there and still had the speed to sprint to a strong third at the end of the race for Soudal Quick-Step’s eighth podium in Hamburg.
“It was a hard day with the many ascents of the Waseberg, and the last two laps were really tactical, but I was at all times in a good position – with the help of the team – because I knew how important this was at the start of the climb. We left everything out there, but one guy from the breakaway was stronger, so congrats to him. In the sprint I did my best, and I am content with my third place and with the shape I had these last couple of days”, Paul explained at the press conference.
Complete results:
207.4 kilometers raced at an average speed of 47.119 km/hr
| 1 | Rory Townsend | Q36.5 Pro Cycling Team | 4hr 24min 6sec |
| 2 | Arnaud De Lie | Lotto | s.t. |
| 3 | Paul Magnier | Soudal Quick-Step | s.t. |
| 4 | Jasper Philipsen | Alpecin-Deceuninck | s.t. |
| 5 | Danny van Poppel | Red Bull-BORA-hansgrohe | s.t. |
| 6 | Fred Wright | Bahrain Victorious | s.t. |
| 7 | António Morgado | UAE Team Emirates-XRG | s.t. |
| 8 | Biniam Girmay | Intermarché-Wanty | s.t. |
| 9 | Matis Louvel | Israel-Premier Tech | s.t. |
| 10 | Wout van Aert | Team Visma | Lease a Bike | s.t. |
| 11 | Alex Aranburu | Cofidis | s.t. |
| 12 | Paul Penhoët | Groupama-FDJ | s.t. |
| 13 | Tobias Lund Andresen | Team Picnic-PostNL | s.t. |
| 14 | Bryan Coquard | Cofidis | s.t. |
| 15 | Fabio Christen | Q36.5 Pro Cycling Team | s.t. |
| 16 | Axel Laurance | INEOS Grenadiers | s.t. |
| 17 | Marius Mayrhofer | Tudor Pro Cycling Team | s.t. |
| 18 | Pierre Gautherat | Decathlon AG2R La Mondiale | s.t. |
| 19 | Rasmus Tiller | Uno-X Mobility | s.t. |
| 20 | Mike Teunissen | XDS Astana Team | s.t. |
| 21 | Jon Barrenetxea | Movistar Team | s.t. |
| 22 | Guillaume Boivin | Israel-Premier Tech | s.t. |
| 23 | Riley Sheehan | Israel-Premier Tech | s.t. |
| 24 | Natnael Tesfazion | Movistar Team | s.t. |
| 25 | Ruben Guerreiro | Movistar Team | s.t. |
| 26 | Marijn van den Berg | EF Education-EasyPost | s.t. |
| 27 | Marc Hirschi | Tudor Pro Cycling Team | s.t. |
| 28 | Jonas Abrahamsen | Uno-X Mobility | s.t. |
| 29 | Jan Christen | UAE Team Emirates-XRG | s.t. |
| 30 | Jonas Rutsch | Intermarché-Wanty | s.t. |
| 31 | Brandon McNulty | UAE Team Emirates-XRG | s.t. |
| 32 | Mark Donovan | Q36.5 Pro Cycling Team | s.t. |
| 33 | Jasper Stuyven | Lidl-Trek | s.t. |
| 34 | Antoine Huby | Soudal Quick-Step | s.t. |
| 35 | Johan Jacobs | Groupama-FDJ | s.t. |
| 36 | Laurence Pithie | Red Bull-BORA-hansgrohe | s.t. |
| 37 | Nelson Oliveira | Movistar Team | @ 5sec |
| 38 | Mathias Vacek | Lidl-Trek | s.t. |
| 39 | Bastien Tronchon | Decathlon AG2R La Mondiale | 0:14 |
| 40 | Dries De Pooter | Intermarché-Wanty | 0:16 |
| 41 | Stan Dewulf | Decathlon AG2R La Mondiale | 0:26 |
| 42 | Isaac del Toro | UAE Team Emirates-XRG | 0:30 |
| 43 | Nils Politt | UAE Team Emirates-XRG | s.t. |
| 44 | Matteo Trentin | Tudor Pro Cycling Team | 1:10 |
| 45 | Xandro Meurisse | Alpecin-Deceuninck | 1:16 |
| 46 | Fabio Van den Bossche | Alpecin-Deceuninck | 1:24 |
| 47 | Arnaud Démare | Arkea-B&B Hotels | 1:29 |
| 48 | Elia Viviani | Lotto | s.t. |
| 49 | Alexander Kristoff | Uno-X Mobility | s.t. |
| 50 | Giosue Epis | Arkea-B&B Hotels | s.t. |
| 51 | Emils Liepins | Q36.5 Pro Cycling Team | s.t. |
| 52 | Jonas Rickaert | Alpecin-Deceuninck | s.t. |
| 53 | Robert Stannard | Bahrain Victorious | s.t. |
| 54 | Erlend Blikra | Uno-X Mobility | s.t. |
| 55 | Dries De Bondt | Decathlon AG2R La Mondiale | s.t. |
| 56 | Mathias Norsgaard | Movistar Team | s.t. |
| 57 | Casper Pedersen | Soudal Quick-Step | s.t. |
| 58 | Cees Bol | XDS Astana Team | s.t. |
| 59 | Pavel Bittner | Team Picnic-PostNL | s.t. |
| 60 | Jack Rootkin-Gray | EF Education-EasyPost | s.t. |
| 61 | Kasper Asgreen | EF Education-EasyPost | s.t. |
| 62 | Clément Russo | Groupama-FDJ | s.t. |
| 63 | Matevz Govekar | Bahrain Victorious | s.t. |
| 64 | Mick van Dijke | Red Bull-BORA-hansgrohe | 1:33 |
| 65 | Menno Huising | Team Visma | Lease a Bike | s.t. |
| 66 | Davide De Pretto | Team Jayco-AlUla | s.t. |
| 67 | Ben Zwiehoff | Red Bull-BORA-hansgrohe | s.t. |
| 68 | Sven Erik Bystrøm | Groupama-FDJ | s.t. |
| 69 | Brent Van Moer | Lotto | 1:35 |
| 70 | Connor Swift | INEOS Grenadiers | s.t. |
| 71 | Mattia Cattaneo | Soudal Quick-Step | 1:42 |
| 72 | Anders Skaarseth | Uno-X Mobility | 1:48 |
| 73 | Huub Artz | Intermarché-Wanty | 2:09 |
| 74 | Sebastian Molano | UAE Team Emirates-XRG | s.t. |
| 75 | Jan Maas | Cofidis | s.t. |
| 76 | Sean Flynn | Team Picnic-PostNL | s.t. |
| 77 | Oliver Naesen | Decathlon AG2R La Mondiale | s.t. |
| 78 | Simone Consonni | Lidl-Trek | s.t. |
| 79 | Otto Vergaerde | Lidl-Trek | s.t. |
| 80 | Giacomo Nizzolo | Q36.5 Pro Cycling Team | 2:27 |
| 81 | Davide Ballerini | XDS Astana Team | s.t. |
| 82 | Filip Maciejuk | Red Bull-BORA-hansgrohe | s.t. |
| 83 | Jarrad Drizners | Lotto | s.t. |
| 84 | Milan Fretin | Cofidis | s.t. |
| 85 | Erik Resell | Uno-X Mobility | s.t. |
| 86 | Julien Vermote | Team Visma | Lease a Bike | s.t. |
| 87 | Jannik Steimle | Q36.5 Pro Cycling Team | s.t. |
| 88 | Alberto Bruttomesso | Bahrain Victorious | s.t. |
| 89 | Christophe Laporte | Team Visma | Lease a Bike | s.t. |
| 90 | Oscar Chamberlain | Decathlon AG2R La Mondiale | s.t. |
| 91 | Colby Simmons | EF Education-EasyPost | s.t. |
| 92 | Romain Combaud | Team Picnic-PostNL | s.t. |
| 93 | Sébastien Grignard | Lotto | s.t. |
| 94 | Alastair Mackellar | EF Education-EasyPost | s.t. |
| 95 | Daan Hoole | Lidl-Trek | s.t. |
| 96 | Patrick Gamper | Team Jayco-AlUla | s.t. |
| 97 | Amaury Capiot | Arkea-B&B Hotels | s.t. |
| 98 | Frederik Frison | Q36.5 Pro Cycling Team | s.t. |
| 99 | Alberto Dainese | Tudor Pro Cycling Team | s.t. |
| 100 | Salvatore Puccio | INEOS Grenadiers | s.t. |
| 101 | Cédric Beullens | Lotto | s.t. |
| 102 | Laurens Huys | Arkea-B&B Hotels | s.t. |
| 103 | Henok Mulubrhan | XDS Astana Team | s.t. |
| 104 | Toon Aerts | Lotto | s.t. |
| 105 | Max Walker | EF Education-EasyPost | 2:33 |
| 106 | Simon Clarke | Israel-Premier Tech | s.t. |
| 107 | Michael Leonard | INEOS Grenadiers | s.t. |
| 108 | Florian Sénéchal | Arkea-B&B Hotels | s.t. |
| 109 | Michael Valgren | EF Education-EasyPost | s.t. |
| 110 | Alexis Renard | Cofidis | s.t. |
| 111 | Ben Swift | INEOS Grenadiers | s.t. |
| 112 | Kamil Gradek | Bahrain Victorious | s.t. |
| 113 | Phil Bauhaus | Bahrain Victorious | s.t. |
| 114 | Jonathan Castroviejo | INEOS Grenadiers | s.t. |
| 115 | Marco Haller | Tudor Pro Cycling Team | s.t. |
| 116 | Damien Touzé | Cofidis | 2:44 |
| 117 | Max Walscheid | Team Jayco-AlUla | 4:46 |
| 118 | Jordi Meeus | Red Bull-BORA-hansgrohe | s.t. |
| 119 | Pascal Ackermann | Israel-Premier Tech | s.t. |
| 120 | Itamar Einhorn | Israel-Premier Tech | s.t. |
| 121 | Miles Scotson | Arkea-B&B Hotels | s.t. |
| 122 | Tim Naberman | Team Picnic-PostNL | s.t. |
| 123 | Robin Froidevaux | Tudor Pro Cycling Team | s.t. |
| 124 | Adrien Petit | Intermarché-Wanty | 7:47 |
| 125 | Jordi Warlop | Soudal Quick-Step | s.t. |
| 126 | Artem Shmidt | INEOS Grenadiers | s.t. |
| 127 | Pepijn Reinderink | Soudal Quick-Step | s.t. |

2025 Cyclassics map

2025 Cyclassics profile
2025 Hamburg Cyclassics photos by Fotoreporter Sirotti:

Mathias Vacek before the start

The riders are ready to start in the town of Buxtehude.

Johan Jakobs leads a break up the Waseberg.

The peloton on the Waseberg climb.

Rory Townsend wins the biggest race of his career while a frustrated Arnaud De Lie clenches his fist in frustration.

An incredulous Rory Townsend just after winning the race. That should be Wout van Aert just behind him.

Rory Townsend shortly after the race finish.

Second-place Arnaud De Lie just after the finish.

Jasper Philipsen (4th) & Paul Magnier (3rd) just after the race finish.

A proper German podium picture with serious suds. From left: Arnaud De Lie (2nd), Rory Townsend (1st), & Paul Magnier (3rd).

Winner Rory Townsend
Start list with back numbers, August 16, 2025:
| Team Visma | Lease a Bike | |
| 1 | Wout van Aert |
| 2 | Edoardo Affini |
| 3 | Niklas Behrens |
| 4 | Menno Huising |
| 5 | Christophe Laporte |
| 6 | Loe van Belle |
| 7 | Julien Vermote |
| Lidl-Trek | |
| 11 | Jonathan Milan |
| 12 | Simone Consonni |
| 13 | Tim Declercq |
| 14 | Daan Hoole |
| 15 | Jasper Stuyven |
| 16 | Mathias Vacek |
| 17 | Otto Vergaerde |
| Intermarché-Wanty | |
| 21 | Biniam Girmay |
| 22 | Huub Artz |
| 23 | Dries De Pooter |
| 24 | Adrien Petit |
| 25 | Laurenz Rex |
| 26 | Jonas Rutsch |
| 27 | Taco van der Hoorn |
| Red Bull-BORA-hansgrohe | |
| 31 | Jordi Meeus |
| 32 | Filip Maciejuk |
| 33 | Ryan Mullen |
| 34 | Laurence Pithie |
| 35 | Mick van Dijke |
| 36 | Danny van Poppel |
| 37 | Ben Zwiehoff |
| Uno-X Mobility | |
| 41 | Alexander Kristoff |
| 42 | Jonas Abrahamsen |
| 43 | Erlend Blikra |
| 44 | Stian Fredheim |
| 45 | Erik Resell |
| 46 | Anders Skaarseth |
| 47 | Rasmus Tiller |
| Alpecin-Deceuninck | |
| 51 | Jasper Philipsen |
| 52 | Kaden Groves |
| 53 | Xandro Meurisse |
| 54 | Jonas Rickaert |
| 55 | Henri Uhlig |
| 56 | Fabio Van den Bossche |
| 57 | Stan Van Tricht |
| Tudor Pro Cycling Team | |
| 61 | Matteo Trentin |
| 62 | Alberto Dainese |
| 63 | Jacob Eriksson |
| 64 | Robin Froidevaux |
| 65 | Marco Haller |
| 66 | Marc Hirschi |
| 67 | Marius Mayrhofer |
| Cofidis | |
| 71 | Bryan Coquard |
| 72 | Alex Aranburu |
| 73 | Milan Fretin |
| 74 | Jan Maas |
| 75 | Alexis Renard |
| 76 | Ludovic Robeet |
| 77 | Damien Touzé |
| Team Picnic-PostNL | |
| 81 | Tobias Lund Andresen |
| 82 | Pavel Bittner |
| 83 | Romain Combaud |
| 84 | Sean Flynn |
| 85 | Enzo Leijnse |
| 86 | Tim Naberman |
| 87 | Timo Roosen |
| Arkea-B&B Hotels | |
| 91 | Arnaud Démare |
| 92 | Amaury Capiot |
| 93 | Giosue Epis |
| 94 | Thibault Guernalec |
| 95 | Laurens Huys |
| 96 | Miles Scotson |
| 97 | Florian Sénéchal |
| Soudal Quick-Step | |
| 101 | Paul Magnier |
| 102 | Mattia Cattaneo |
| 103 | Antoine Huby |
| 104 | Casper Pedersen |
| 105 | Pepijn Reinderink |
| 106 | Martin Svrcek |
| 107 | Jordi Warlop |
| Israel-Premier Tech | |
| 111 | Pascal Ackermann |
| 112 | Guillaume Boivin |
| 113 | Simon Clarke |
| 114 | Itamar Einhorn |
| 115 | Matis Louvel |
| 116 | Michael Schwarzmann |
| 117 | Riley Sheehan |
| Bahrain Victorious | |
| 121 | Phil Bauhaus |
| 122 | Alberto Bruttomesso |
| 123 | Matevz Govekar |
| 124 | Kamil Gradek |
| 125 | Matej Mohoric |
| 126 | Robert Stannard |
| 127 | Fred Wright |
| EF Education-EasyPost | |
| 131 | Kasper Asgreen |
| 132 | Alastair Mackellar |
| 133 | Jack Rootkin-Gray |
| 134 | Colby Simmons |
| 135 | Michael Valgren |
| 136 | Marijn van den Berg |
| 137 | Max Walker |
| INEOS Grenadiers | |
| 141 | Axel Laurance |
| 142 | Jonathan Castroviejo |
| 143 | Michael Leonard |
| 144 | Salvatore Puccio |
| 145 | Artem Shmidt |
| 146 | Ben Swift |
| 147 | Connor Swift |
| Decathlon AG2R La Mondiale | |
| 151 | Sam Bennett |
| 152 | Oscar Chamberlain |
| 153 | Dries De Bondt |
| 154 | Stan Dewulf |
| 155 | Pierre Gautherat |
| 156 | Oliver Naesen |
| 157 | Bastien Tronchon |
| Lotto | |
| 161 | Arnaud De Lie |
| 162 | Toon Aerts |
| 163 | Cédric Beullens |
| 164 | Jarrad Drizners |
| 165 | Sébastien Grignard |
| 166 | Brent Van Moer |
| 167 | Elia Viviani |
| XDS Astana Team | |
| 171 | Cees Bol |
| 172 | Davide Ballerini |
| 173 | Aaron Gate |
| 174 | Anton Kuzmin |
| 175 | Henok Mulubrhan |
| 176 | Haoyu Su |
| 177 | Mike Teunissen |
| Groupama-FDJ | |
| 181 | Paul Penhoët |
| 182 | Sven Erik Bystrøm |
| 183 | Johan Jacobs |
| 184 | Eddy Le Huitouze |
| 185 | Clément Russo |
| 186 | Matthew Walls |
| UAE Team Emirates-XRG | |
| 191 | Sebastian Molano |
| 192 | Jan Christen |
| 193 | Alessandro Covi |
| 194 | Isaac del Toro |
| 195 | Brandon McNulty |
| 196 | Nils Politt |
| 197 | António Morgado |
| Team Jayco-AlUla | |
| 201 | Max Walscheid |
| 202 | Davide De Pretto |
| 203 | Luke Durbridge |
| 204 | Felix Engelhardt |
| 205 | Patrick Gamper |
| 206 | Jelte Krijnsen |
| 207 | Jasha Sütterlin |
| Movistar Team | |
| 211 | Fernando Gaviria |
| 212 | Jon Barrenetxea |
| 213 | Nelson Oliveira |
| 214 | Ruben Guerreiro |
| 215 | Mathias Norsgaard |
| 216 | Natnael Tesfazion |
| 217 | Albert Torres |
| Q36.5 Pro Cycling Team | |
| 221 | Giacomo Nizzolo |
| 222 | Fabio Christen |
| 223 | Mark Donovan |
| 224 | Frederik Frison |
| 225 | Emils Liepins |
| 226 | Jannik Steimle |
| 227 | Rory Townsend |