Baloise Belgium Tour: Ethan Hayter takes surprise victory over Filippo Ganna on stage 3 time trial
Filippo Ganna finishes second, having been heavily expected to win

Ethan Hayter pulled off a spectacular surprise time trial victory over runaway top favourite Filippo Ganna (Ineos Grenadiers) in stage 3 of the Baloise Belgium Tour, with the additional considerable bonus prize of moving into the overall lead.
Hayter beat the Italian specialist and former Ineos teammate by a narrow but sufficient four seconds to claim his first triumph in nearly a year, and also his first since signing for Soudal-QuickStep in 2025. Florian Vermeersch (UAE Team Emirates) was third, a comparatively distant 16 seconds back.
Hayter was one of the earliest starters in the flat, largely untechnical 9.7 kilometre course between Tessenderlo and Ham. During nearly two hours of waiting, barring Ganna nobody came close to challenging the 26-year-old Londoner's blisteringly fast time of 10:30.
Hayter will now go into Saturday's crunch hilly stage in southern Belgium with a GC advantage of two seconds on second-placed Ganna, with Vermeersch lying third, 15 seconds down.
"It's been a while in the hot seat, you start getting quite nervous, but to win - it's great," Hayter said after managing to put a TT rival as prestigious as Ganna to the sword.
"It's really nice to take my first win for the team, it's not been my easiest start to the year but the team have been really patient with me and it's nice to pay them back a bit."
"It was quite a short TT, so we didn't really have a plan. I went out quite fast, with a bit of tailwind on the climbs and then I went harder on the way back, all out to the line."
How it Unfolded
On a hot, dry day in central Belgium, former Swiss TT champion Joel Sutter (Tudor) became the first rider to break the glass ceiling of 11 minutes for the course with a time of 10:56, only for Czech Jozef Čzerny, (Soudal-QuickStep), also a former National TT Champion, to go two seconds better almost immediately afterwards.
However, the best time was then set by some considerable distance by Hayter, whose five-second margin at the mid-stage checkpoint on Čzerny ballooned to a comparatively massive 25 seconds by the finish.
This was admittedly a very fast course with some segments running through parkland and others switching to some broader highways, but globally the route always remained almost completely flat, with the weather conditions undoubtedly favouring some super-quick times, too. Yet no one, it seemed, could come close to Hayter's time, clocked at a jaw-droppingly rapid average speed of 55.6kmh, with compatriot Connor Swift (Ineos Grenadiers) remaining the next best placed on the provisional standings, over 18 seconds back, for the best part of an hour.
Then when Swift was beaten, former U23 World Champion Filippo Baroncini (UAE Team Emirates-XRG) was only a couple of seconds better, leaving Hayter in his dominating position.
Some of the biggest hitters were still to come, though, given Hayter was the 56th starter of the 146 on the day. An outsider like Nils Eekhoff (Picnic-PostNL) proved to be just six seconds slower than Hayter at the mid-way check and GC contender Vermeersch (UAE Team Emirates-XRG) was two seconds slower at the split, too. But both fell off the pace notably in the second half, leaving all eyes on the arch-favourite, Filippo Ganna as the one major obstacle between Hayter and victory.
The multiple Italian National TT Champion and former double World TT Champion cruised down the start ramp with his usual faultlessly elegant style, near-perfect aerodynamic position and lightness of cadence all on display. No matter that this was his first race back since Paris-Roubaix in the sprint, from the get-go, the Ineos Grenadiers star was clearly on the road to challenging Hayter, and perhaps the 28th time trial victory of his glittering career as well.
However, appearances proved deceptive, and Ganna too, was two seconds slower than Hayter at the split, ensuring, like everybody else, that only a strong turnaround in the second half could give him a chance of challenging Hayter. No matter how fast Ganna turned the pedals and how good he looked on the bike in terms of pure aesthetics, though, little by little Hayter's advantage opened up further and further and by the time Ganna powered into the final kilometre it was obvious he would not be able - not yet, at least - to add a second win to his only triumph of 2025 to date, the opening stage of Tirreno-Adriatico.
The final clutch of sprinters due to finish after Ganna all delivered respectable but not overly striking times, with race leader Juan Sebastian Molano (UAE Team Emirates) more concerned about making the time cut after puncturing on a right-hand bend and needing a replacement bike. Hayter's victory was in the bag, then, and even if he fails to keep control overall between now and Brussels next Sunday, the psychological hurdle of taking his first win with his new team - and against Ganna to boot - has now been passed with flying colours.
Hayter was cautiously optimistic about his chances on the next stage, the toughest of the entire race with nearly 3,000 metres of vertical climbing and which will take the riders on a very hilly trek through southern Belgium, starting and finishing on the short but steep Mur de Durbuy.
"The plan is for me to defend the jersey, it's a tricky stage but we'll do our best" Hayter said. "Then another win on Sunday with Tim [Merlier, stage 1 winner and teammate] would be the best way to finish it off."
Results
Position | Rider (Team) | Time |
---|---|---|
1 | Ethan Hayter (Soudal Quick-Step) | 10:29 |
2 | Filippo Ganna (INEOS Grenadiers) | +0:04 |
3 | Florian Vermeersch (UAE Team Emirates - XRG) | +0:16 |
4 | Filippo Baroncini (UAE Team Emirates - XRG) | +0:16 |
5 | Huub Artz (Intermarché - Wanty) | +0:17 |
6 | Connor Swift (INEOS Grenadiers) | +0:18 |
7 | Alec Segaert (Lotto) | +0:20 |
8 | Pier-André Côté (Israel - Premier Tech) | +0:21 |
9 | Ben Turner (INEOS Grenadiers) | +0:22 |
10 | Rune Herregodts (UAE Team Emirates - XRG) | +0:23 |
11 | Nils Eekhoff (Team Picnic PostNL) | +0:23 |
12 | Thibau Nys (Lidl - Trek) | +0:23 |
13 | Ethan Vernon (Israel - Premier Tech) | +0:23 |
14 | Yves Lampaert (Soudal Quick-Step) | +0:24 |
15 | Manlio Moro (Movistar Team) | +0:24 |
16 | Thomas Gachignard (Team TotalEnergies) | +0:24 |
17 | Axel Van Der Tuuk (Metec - SOLARWATT p/b Mantel) | +0:24 |
18 | Josef Černý (Soudal Quick-Step) | +0:24 |
19 | Søren Kragh Andersen (Lidl - Trek) | +0:26 |
20 | Joel Suter (Tudor Pro Cycling Team) | +0:26 |
21 | Héctor Álvarez (Lidl - Trek) | +0:27 |
22 | Alexys Brunel (Team TotalEnergies) | +0:28 |
23 | Vincent Van Hemelen (Team Flanders - Baloise) | +0:28 |
24 | Samuel Leroux (Team TotalEnergies) | +0:30 |
25 | Arthur Kluckers (Tudor Pro Cycling Team) | +0:30 |
26 | Marco Frigo (Israel - Premier Tech) | +0:30 |
27 | Jasper Philipsen (Alpecin - Deceuninck) | +0:31 |
28 | Ådne Holter (Uno-X Mobility) | +0:32 |
29 | Logan Currie (Lotto) | +0:32 |
30 | Tim Torn Teutenberg (Lidl - Trek) | +0:32 |
31 | Wessel Mouris (Unibet Tietema Rockets) | +0:33 |
32 | Rasmus Tiller (Uno-X Mobility) | +0:33 |
33 | Steffen De Schuyteneer (Lotto) | +0:34 |
34 | Jonas Geens (Team Flanders - Baloise) | +0:35 |
35 | Toon Aerts (Lotto) | +0:36 |
36 | Joshua Giddings (Lotto) | +0:35 |
37 | Oded Kogut (Israel - Premier Tech) | +0:38 |
38 | Oscar Riesebeek (Alpecin - Deceuninck) | +0:37 |
39 | Orluis Aular (Movistar Team) | +0:39 |
40 | Jenno Berckmoes (Lotto) | +0:40 |
41 | Mohammad Almutaiwei (UAE Team Emirates - XRG) | +0:42 |
42 | Jonas Rickaert (Alpecin - Deceuninck) | +0:43 |
43 | Carlos Canal (Movistar Team) | +0:43 |
44 | Hartthijs De Vries (Unibet Tietema Rockets) | +0:44 |
45 | Frits Biesterbos (BEAT Cycling Club) | +0:46 |
46 | Kim Heiduk (INEOS Grenadiers) | +0:45 |
47 | Alberto Dainese (Tudor Pro Cycling Team) | +0:46 |
48 | Kristian Egholm (Lidl - Trek) | +0:46 |
49 | Erik Nordsæter Resell (Uno-X Mobility) | +0:46 |
50 | Adam Ťoupalík (Unibet Tietema Rockets) | +0:47 |
51 | Dries Van Gestel (Soudal Quick-Step) | +0:48 |
52 | Alexandre Delettre (Team TotalEnergies) | +0:48 |
53 | Dion Smith (Intermarché - Wanty) | +0:48 |
54 | Jon Barrenetxea (Movistar Team) | +0:39 |
55 | Timo Kielich (Alpecin - Deceuninck) | +0:49 |
56 | Tim Declercq (Lidl - Trek) | +0:49 |
57 | Quentin Bezza (Wagner Bazin WB) | +0:49 |
58 | Michiel Hillen (Baloise Glowi Lions) | +0:50 |
59 | Vito Braet (Intermarché - Wanty) | +0:51 |
60 | Tom Van Asbroeck (Israel - Premier Tech) | +0:53 |
61 | Matyáš Kopecký (Team Novo Nordisk) | +0:53 |
62 | Casper Van Uden (Team Picnic PostNL) | +0:53 |
63 | Luca Van Boven (Intermarché - Wanty) | +0:53 |
64 | Gibbe Staes (UAE Team Emirates - XRG) | +0:53 |
65 | Anders Skaarse (Uno-X Mobility) | +0:54 |
66 | Tim Merlier (Soudal Quick-Step) | +0:56 |
67 | Yorben Lauryssen (Pauwels Sauzen - Cibel Clementines) | +0:55 |
68 | Sente Sentjens (Alpecin - Deceuninck) | +0:55 |
69 | Bert Van Lerberghe (Soudal Quick-Step) | +0:56 |
70 | Marijn Maas (BEAT Cycling Club) | +0:57 |
71 | Lionel Taminiaux (Lotto) | +0:58 |
72 | Elias Maris (Team Flanders - Baloise) | +1:00 |
73 | Stijn Appel (BEAT Cycling Club) | +1:00 |
74 | Salvatore Puccio (INEOS Grenadiers) | +1:01 |
75 | Wies Nuyens (Pauwels Sauzen - Cibel Clementines) | +1:01 |
76 | Iván García Cortina (Movistar Team) | +1:01 |
77 | Gonzalo Serrano (Movistar Team) | +1:02 |
78 | Stan Van Tricht (Alpecin - Deceuninck) | +1:03 |
79 | Kay De Bruyckere (Pauwels Sauzen - Cibel Clementines) | +1:03 |
80 | Kiaan Watts (Israel - Premier Tech) | +1:05 |
81 | Seppe Van Den Boer (Baloise Glowi Lions) | +1:06 |
82 | Joran Wyseure (Alpecin - Deceuninck) | +1:05 |
83 | Juan David Sierra (Tudor Pro Cycling Team) | +1:06 |
84 | Bart Kortleve (Metec - SOLARWATT p/b Mantel) | +1:06 |
85 | Arne Marit (Intermarché - Wanty) | +1:08 |
86 | Dylan Vandenstorme (Team Flanders - Baloise) | +1:07 |
87 | Jens Reynders (Wagner Bazin WB) | +1:09 |
88 | Rotem Tene (Israel - Premier Tech) | +1:08 |
89 | Filippo Ridolfo (Team Novo Nordisk) | +1:09 |
90 | Alex Colman (Team Flanders - Baloise) | +1:09 |
91 | Axel Huens (Unibet Tietema Rockets) | +1:11 |
92 | Pim Ronhaar (Baloise Glowi Lions) | +1:11 |
93 | Omar Fraile (INEOS Grenadiers) | +1:10 |
94 | Lennert Teugels (Tarteletto - Isorex) | +1:11 |
95 | Timo Roosen (Team Picnic PostNL) | +1:11 |
96 | Zeno Moonen (Intermarché - Wanty) | +1:12 |
97 | Michiel Lambrecht (Wagner Bazin WB) | +1:13 |
98 | Jordan Habets (Metec - SOLARWATT p/b Mantel) | +1:12 |
99 | Casper Van Der Woude (Metec - SOLARWATT p/b Mantel) | +1:13 |
100 | Lars Van Der Haar (Baloise Glowi Lions) | +1:14 |
101 | Viktor Vandenberghe (Pauwels Sauzen - Cibel Clementines) | +0:49 |
102 | William Blume Levy (Uno-X Mobility) | +1:15 |
103 | Lander Loockx (Unibet Tietema Rockets) | +1:17 |
104 | David Haverdinks (Baloise Glowi Lions) | +1:16 |
105 | Jason Tesson (Team TotalEnergies) | +1:18 |
106 | Fabian Lienhard (Tudor Pro Cycling Team) | +1:16 |
107 | Michael Vanthourenhout (Pauwels Sauzen - Cibel Clementines) | +1:18 |
108 | Rui Oliveira (UAE Team Emirates - XRG) | +1:17 |
109 | Leander Van Hautegem (Wagner Bazin WB) | +1:18 |
110 | Tom Portsmouth (Wagner Bazin WB) | +1:17 |
111 | Mathias Guillemette (Tudor Pro Cycling Team) | +1:17 |
112 | Lindsay De Vylder (Team Flanders - Baloise) | +1:19 |
113 | Jules Hesters (Team Flanders - Baloise) | +1:20 |
114 | Gianni Marchand (Tarteletto - Isorex) | +1:20 |
115 | Olivier Godfroid (Baloise Glowi Lions) | +1:21 |
116 | Fernando Gaviria (Movistar Team) | +1:22 |
117 | Pete Uptegrove (Metec - SOLARWATT p/b Mantel) | +1:21 |
118 | Nicola Marcerou (Team TotalEnergies) | +1:22 |
119 | Robbe Mellaerts (BEAT Cycling Club) | +1:23 |
120 | Kevin Vermaerke (Team Picnic PostNL) | +1:26 |
121 | Martijn Tusveld (BEAT Cycling Club) | +1:25 |
122 | Kenay De Moyer (Pauwels Sauzen - Cibel Clementines) | +1:26 |
123 | Jochem Kerckhaert (BEAT Cycling Club) | +1:26 |
124 | Jelle Johannink (Unibet Tietema Rockets) | +1:26 |
125 | Timothy Dupont (Tarteletto - Isorex) | +1:27 |
126 | Christiaan Van Rees (Team Picnic PostNL) | +1:28 |
127 | Ewout De Keyser (Tarteletto - Isorex) | +1:30 |
128 | Arne Santy (Tarteletto - Isorex) | +1:31 |
129 | Thom Van Der Werff (Team Picnic PostNL) | +1:30 |
130 | Andrea Peron (Team Novo Nordisk) | +1:33 |
131 | Juan Sebastián Molano (UAE Team Emirates - XRG) | +1:36 |
132 | Davide Persico (Wagner Bazin WB) | +1:36 |
133 | Yordi Corsus (Pauwels Sauzen - Cibel Clementines) | +1:37 |
134 | Declan Irvine (Team Novo Nordisk) | +1:37 |
135 | Florian Dauphin (Team TotalEnergies) | +1:37 |
136 | Jordy Decottignies (Tarteletto - Isorex) | +1:37 |
137 | Alessandro Perracchione (Team Novo Nordisk) | +1:39 |
138 | Victor Broex (Metec - SOLARWATT p/b Mantel) | +1:41 |
139 | Roy Hoogendoorn (Metec - SOLARWATT p/b Mantel) | +1:42 |
140 | Maarten Verheyen (Baloise Glowi Lions) | +1:42 |
141 | Luca De Meester (Wagner Bazin WB) | +1:51 |
142 | Umberto Poli (Team Novo Nordisk) | +1:51 |
143 | Anton Muller (Team Novo Nordisk) | +1:51 |
144 | Alex Vandenbulcke (Tarteletto - Isorex) | +1:52 |
DNS | Davide Bomboi (Unibet Tietema Rockets) | - |
DNS | Lorenzo Rota (Intermarché - Wanty) | - |
The latest race content, interviews, features, reviews and expert buying guides, direct to your inbox!
Alasdair Fotheringham has been reporting on cycling since 1991. He has covered every Tour de France since 1992 bar one, as well as numerous other bike races of all shapes and sizes, ranging from the Olympic Games in 2008 to the now sadly defunct Subida a Urkiola hill climb in Spain. As well as working for Cyclingnews, he has also written for The Independent, The Guardian, ProCycling, The Express and Reuters.
You must confirm your public display name before commenting
Please logout and then login again, you will then be prompted to enter your display name.
Latest on Cyclingnews
-
As it happened: A sprint showdown on stage 6 of the Tour de Suisse
Jordi Meeus proves unmatchable in Neuhausen am Rheinfall, beating Davide Ballerini and Lewis Askey to the line -
Baloise Belgium Tour: Ethan Hayter takes surprise victory over Filippo Ganna on stage 3 time trial
Filippo Ganna finishes second, having been heavily expected to win -
Tour de Suisse: Jordi Meeus sprints to victory on stage 6 after breakaway caught at last minute
Red Bull-Bora-Hansgrohe rider beats Davide Ballerini and Lewis Askey into second and third -
Dries De Bondt to be investigated by UCI Ethics Commission after admitting to helping non-teammate Carapaz at Giro d'Italia
Belgian faces possible sanctions after pulling on the front for EF Education-EasyPost leader, expressing his availability on transfer market