Get all your news in one place.
100’s of premium titles.
One app.
Start reading
Cycling News
Cycling News
Sport
Alasdair Fotheringham

Baloise Belgium Tour: Ethan Hayter takes surprise victory over Filippo Ganna on stage 3 time trial

Soudal Quick-Step cyclist British Ethan Hayter competes during the third stage of the Baloise Belgium Tour cycling race, a 9,7km individual time trial from Tessenderlo to Ham, on June 20, 2025. The Baloise Belgium Tour takes place from June 18 to 22. (Photo by DAVID PINTENS / Belga / AFP) / Belgium OUT.

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.

Filippo Ganna was heavily expected to win stage 3 of the Baloise Belgium Tour (Image credit: Getty Images)

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

Baloise Belgium Tour stage 3 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)

-

Sign up to read this article
Read news from 100’s of titles, curated specifically for you.
Already a member? Sign in here
Related Stories
Top stories on inkl right now
One subscription that gives you access to news from hundreds of sites
Already a member? Sign in here
Our Picks
Fourteen days free
Download the app
One app. One membership.
100+ trusted global sources.