Tour de Suisse: João Almeida fastest on uphill final to win stage 7 in Emmetten

João Almeida wins stage 7 at the Tour de Suisse 2025
João Almeida wins stage 7 at the Tour de Suisse 2025 (Image credit: Getty Images)

João Almeida (UAE Team Emirates-XRG) showed he is determined to fight for overall victory at the Tour de Suisse right to the very end of the race by going deep to win the mountain stage to Emmetten. However, his biggest rival, Kevin Vauquelin (Arkea-B&B Hotels), was also there and refused to surrender the leader's yellow jersey.

The French rider was the first to attack in the final kilometre. He could see the finish line ahead of him, but then Almeida came past him to win the stage and take the ten-second time bonus. Oscar Onley (Picnic-PostNL) also passed Vauquelin to take a six-second time bonus, with Vauquelin awarded four bonus seconds.

Swipe to scroll horizontally
Stage 7

Position

Rider (Team)

Time Gap

1

João Almeida (UAE Team Emirates XRG)

4:38:25

2

Oscar Onley (Team Picnic PostNL)

,,

3

Kévin Vauquelin (Arkéa–B&B Hotels)

,,

4

Felix Gall (Decathlon AG2R La Mondiale Team)

0:04

5

Julian Alaphilippe (Tudor Pro Cycling Team)

0:08

6

Felix Großschartner (UAE Team Emirates XRG)

1:07

7

Joseph Blackmore (Israel–Premier Tech)

1:09

8

Ilan Van Wilder (Soudal Quick‑Step)

,,

9

Clément Champoussin (XDS Astana Team)

,,

10

Lennard Kämna (Lidl – Trek)

1:11

11

Ewen Costiou (Arkéa–B&B Hotels)

,,

12

Georg Zimmermann (Intermarché–Wanty)

,,

13

Ben O'Connor (Team Jayco AlUla)

1:14

14

Finlay Pickering (Bahrain Victorious)

1:22

15

Emiel Verstrynge (Alpecin–Deceuninck)

1:41

16

Will Barta (Movistar Team)

1:43

17

Pablo Castrillo (Movistar Team)

,,

18

Hugo Houle (Israel–Premier Tech)

2:06

19

Bart Lemmen (Team Visma | Lease a Bike)

3:41

20

Marcel Camprubí (Q36.5 Pro Cycling Team)

3:48

21

Sam Maisonobe (Cofidis)

3:49

22

George Bennett (Israel–Premier Tech)

,,

23

Bob Jungels (INEOS Grenadiers)

3:52

24

Eduardo Sepúlveda (Lotto)

,,

25

Warren Barguil (Team Picnic PostNL)

,,

26

Gianluca Brambilla (Q36.5 Pro Cycling Team)

4:47

27

Tijmen Graat (Team Visma | Lease a Bike)

6:04

28

Quinn Simmons (Lidl – Trek)

6:25

29

Marc Hirschi (Tudor Pro Cycling Team)

7:16

30

Nicola Conci (XDS Astana Team)

7:21

31

Frank Van Den Broek (Team Picnic PostNL)

7:39

32

Anthon Charmig (XDS Astana Team)

7:57

33

Jan Maas (Cofidis)

,,

34

Fausto Masnada (XDS Astana Team)

8:20

35

Romain Grégoire (Groupama–FDJ)

9:07

36

Junior Lecerf (Soudal Quick‑Step)

,,

37

Mathijs Paasschens (Bahrain Victorious)

9:40

38

Simone Petilli (Intermarché–Wanty)

10:02

39

Pieter Serry (Soudal Quick‑Step)

,,

40

Callum Scotson (Decathlon AG2R La Mondiale Team)

11:07

41

Tiesj Benoot (Team Visma | Lease a Bike)

12:39

42

Ben Swift (INEOS Grenadiers)

12:57

43

Lucas Hamilton (INEOS Grenadiers)

,,

44

Gal Glivar (Alpecin–Deceuninck)

,,

45

Sam Oomen (Lidl – Trek)

,,

46

Nairo Quintana (Movistar Team)

,,

47

Lorenzo Fortunato (XDS Astana Team)

,,

48

Tao Geoghegan Hart (Lidl – Trek)

,,

49

Andrew August (INEOS Grenadiers)

,,

50

Nelson Oliveira (Movistar Team)

,,

51

António Morgado (UAE Team Emirates XRG)

,,

52

Javier Romo (Movistar Team)

,,

53

Ion Izagirre (Cofidis)

,,

54

Victor Langellotti (INEOS Grenadiers)

,,

55

Matteo Sobrero (Red Bull–BORA–hansgrohe)

,,

56

Juan Pedro López (Lidl – Trek)

,,

57

Stefano Oldani (Cofidis)

13:20

58

Stefan Küng (Groupama–FDJ)

,,

59

Julien Vermote (Team Visma | Lease a Bike)

,,

60

Otto Vergaerde (Lidl – Trek)

,,

61

Mauri Vansevenant (Soudal Quick‑Step)

,,

62

Jonas Rutsch (Intermarché–Wanty)

,,

63

Neilson Powless (EF Education–EasyPost)

,,

64

Valentin Madouas (Groupama–FDJ)

,,

65

Chris Froome (Israel–Premier Tech)

,,

66

Matej Mohorič (Bahrain Victorious)

,,

67

Jonas Koch (Red Bull–BORA–hansgrohe)

,,

68

Aleksandr Vlasov (Red Bull–BORA–hansgrohe)

14:11

69

Felix Engelhardt (Team Jayco AlUla)

14:22

70

Mauro Schmid (Team Jayco AlUla)

,,

71

Ramses Debruyne (Alpecin–Deceuninck)

15:20

72

David González (Q36.5 Pro Cycling Team)

16:33

73

Julius Johansen (UAE Team Emirates XRG)

19:38

74

Harry Sweeny (EF Education–EasyPost)

,,

75

Samuele Battistella (EF Education–EasyPost)

,,

76

Nans Peters (Decathlon AG2R La Mondiale Team)

,,

77

Paul Lapeira (Decathlon AG2R La Mondiale Team)

,,

78

Martin Tjøtta (Arkéa–B&B Hotels)

,,

79

Vegard Stake Laengen (UAE Team Emirates XRG)

,,

80

Silvan Dillier (Alpecin–Deceuninck)

,,

81

Mathis Le Berre (Arkéa–B&B Hotels)

,,

82

Patrick Gamper (Team Jayco AlUla)

,,

83

Fabio Christen (Q36.5 Pro Cycling Team)

,,

84

Léo Bisiaux (Decathlon AG2R La Mondiale Team)

,,

85

Sean Flynn (Team Picnic PostNL)

,,

86

Lewis Askey (Groupama–FDJ)

,,

87

Rui Costa (EF Education–EasyPost)

,,

88

Danny Van Poppel (Red Bull–BORA–hansgrohe)

,,

89

Ayco Bastiaens (Soudal Quick‑Step)

,,

90

Jonas Gregaard (Lotto)

,,

91

Sylvain Moniquet (Cofidis)

,,

92

Larry Warbasse (Tudor Pro Cycling Team)

,,

93

Luke Durbridge (Team Jayco AlUla)

,,

94

Marius Mayrhofer (Tudor Pro Cycling Team)

,,

95

Eddy Le Huitouze (Groupama–FDJ)

,,

96

Arjen Livyns (Lotto)

,,

97

Rainer Kepplinger (Bahrain Victorious)

,,

98

Sergio Samitier (Cofidis)

,,

99

Gerben Kuypers (Intermarché–Wanty)

,,

100

Vincenzo Albanese (EF Education–EasyPost)

,,

101

Pello Bilbao (Bahrain Victorious)

,,

102

Nicolò Buratti (Bahrain Victorious)

,,

103

Jimmy Janssens (Alpecin–Deceuninck)

,,

104

Marco Haller (Tudor Pro Cycling Team)

,,

105

Brent Van Moer (Lotto)

20:32

106

Max Walker (EF Education–EasyPost)

20:34

107

Alberto Bettiol (XDS Astana Team)

,,

108

Davide Ballerini (XDS Astana Team)

,,

109

Fabio Van Den Bossche (Alpecin–Deceuninck)

,,

110

Arnaud De Lie (Lotto)

,,

111

Mikkel Bjerg (UAE Team Emirates XRG)

20:48

112

Stefan Bissegger (Decathlon AG2R La Mondiale Team)

,,

113

Matteo Badilatti (Q36.5 Pro Cycling Team)

27:19

114

Thomas Gloag (Team Visma | Lease a Bike)

27:21

115

Alexander Kamp (Intermarché–Wanty)

,,

116

Henri Uhlig (Alpecin–Deceuninck)

27:25

117

Madis Mihkels (EF Education–EasyPost)

27:27

118

Jasper De Buyst (Lotto)

27:44

119

Sébastien Grignard (Lotto)

,,

120

Antoine Huby (Soudal Quick‑Step)

30:42

121

Alex Edmondson (Team Picnic PostNL)

31:07

122

Luc Wirtgen (Tudor Pro Cycling Team)

,,

123

Olivier Le Gac (Groupama–FDJ)

31:29

124

Pavel Bittner (Team Picnic PostNL)

32:12

125

Tim Naberman (Team Picnic PostNL)

,,

Swipe to scroll horizontally
General classification after stage 7

Position

Rider (Team)

Time Gap

1

Kévin Vauquelin (Arkéa–B&B Hotels)

29:00:55

2

João Almeida (UAE Team Emirates XRG)

0:33

3

Julian Alaphilippe (Tudor Pro Cycling Team)

0:41

4

Oscar Onley (Team Picnic PostNL)

1:19

5

Felix Gall (Decathlon AG2R La Mondiale Team)

2:28

6

Lennard Kämna (Lidl – Trek)

2:59

7

Ben O'Connor (Team Jayco AlUla)

3:34

8

Pablo Castrillo (Movistar Team)

4:27

9

Ilan Van Wilder (Soudal Quick‑Step)

4:30

10

Clément Champoussin (XDS Astana Team)

6:07

11

Felix Großschartner (UAE Team Emirates XRG)

6:35

12

Will Barta (Movistar Team)

7:47

13

George Bennett (Israel–Premier Tech)

10:06

14

Georg Zimmermann (Intermarché–Wanty)

10:43

15

Finlay Pickering (Bahrain Victorious)

11:17

16

Warren Barguil (Team Picnic PostNL)

13:33

17

Romain Grégoire (Groupama–FDJ)

14:42

18

Eduardo Sepúlveda (Lotto)

15:19

19

Bart Lemmen (Team Visma | Lease a Bike)

17:41

20

Joseph Blackmore (Israel–Premier Tech)

17:54

21

Nicola Conci (XDS Astana Team)

24:21

22

Ewen Costiou (Arkéa–B&B Hotels)

26:34

23

Aleksandr Vlasov (Red Bull–BORA–hansgrohe)

26:43

24

Tao Geoghegan Hart (Lidl – Trek)

29:53

25

Tijmen Graat (Team Visma | Lease a Bike)

32:12

26

Valentin Madouas (Groupama–FDJ)

33:21

27

Sam Maisonobe (Cofidis)

36:31

28

Callum Scotson (Decathlon AG2R La Mondiale Team)

38:40

29

Matteo Sobrero (Red Bull–BORA–hansgrohe)

39:10

30

Quinn Simmons (Lidl – Trek)

40:45

31

Marcel Camprubí (Q36.5 Pro Cycling Team)

41:17

32

Hugo Houle (Israel–Premier Tech)

43:37

33

Emiel Verstrynge (Alpecin–Deceuninck)

44:00

34

Ramses Debruyne (Alpecin–Deceuninck)

44:36

35

Juan Pedro López (Lidl – Trek)

45:15

36

Léo Bisiaux (Decathlon AG2R La Mondiale Team)

46:07

37

Bob Jungels (INEOS Grenadiers)

46:40

38

Neilson Powless (EF Education–EasyPost)

46:55

39

Javier Romo (Movistar Team)

46:58

40

Tiesj Benoot (Team Visma | Lease a Bike)

47:29

41

Frank Van Den Broek (Team Picnic PostNL)

51:12

42

Mauro Schmid (Team Jayco AlUla)

51:40

43

Mauri Vansevenant (Soudal Quick‑Step)

51:52

44

Ben Swift (INEOS Grenadiers)

51:59

45

Victor Langellotti (INEOS Grenadiers)

52:10

46

Marc Hirschi (Tudor Pro Cycling Team)

52:49

47

Gianluca Brambilla (Q36.5 Pro Cycling Team)

53:45

48

Rainer Kepplinger (Bahrain Victorious)

55:20

49

Nairo Quintana (Movistar Team)

55:58

50

Lorenzo Fortunato (XDS Astana Team)

56:52

51

Sam Oomen (Lidl – Trek)

57:22

52

Andrew August (INEOS Grenadiers)

57:34

53

Ion Izagirre (Cofidis)

58:34

54

Junior Lecerf (Soudal Quick‑Step)

59:19

55

Anthon Charmig (XDS Astana Team)

59:25

56

Sergio Samitier (Cofidis)

1:00:04

57

Otto Vergaerde (Lidl – Trek)

1:00:47

58

Stefan Küng (Groupama–FDJ)

1:02:04

59

Matteo Badilatti (Q36.5 Pro Cycling Team)

1:02:58

60

Pello Bilbao (Bahrain Victorious)

1:03:04

61

Matej Mohorič (Bahrain Victorious)

1:03:32

62

Stefano Oldani (Cofidis)

1:03:39

63

Simone Petilli (Intermarché–Wanty)

1:04:30

64

Pieter Serry (Soudal Quick‑Step)

1:06:06

65

Felix Engelhardt (Team Jayco AlUla)

1:06:57

66

António Morgado (UAE Team Emirates XRG)

1:08:24

67

Fabio Christen (Q36.5 Pro Cycling Team)

1:11:04

68

Jonas Rutsch (Intermarché–Wanty)

1:12:29

69

Mathijs Paasschens (Bahrain Victorious)

1:12:53

70

Fausto Masnada (XDS Astana Team)

1:13:54

71

Larry Warbasse (Tudor Pro Cycling Team)

1:14:13

72

Jan Maas (Cofidis)

1:14:25

73

Arjen Livyns (Lotto)

1:14:29

74

Gal Glivar (Alpecin–Deceuninck)

1:16:06

75

Lucas Hamilton (INEOS Grenadiers)

1:16:21

76

Paul Lapeira (Decathlon AG2R La Mondiale Team)

1:16:45

77

Nans Peters (Decathlon AG2R La Mondiale Team)

1:17:59

78

Thomas Gloag (Team Visma | Lease a Bike)

1:18:53

79

Nelson Oliveira (Movistar Team)

1:18:59

80

Rui Costa (EF Education–EasyPost)

1:20:12

81

Harry Sweeny (EF Education–EasyPost)

1:20:48

82

Mathis Le Berre (Arkéa–B&B Hotels)

1:20:49

83

Patrick Gamper (Team Jayco AlUla)

1:21:53

84

Fabio Van Den Bossche (Alpecin–Deceuninck)

1:22:17

85

Nicolò Buratti (Bahrain Victorious)

1:23:57

86

Gerben Kuypers (Intermarché–Wanty)

1:25:37

87

Sean Flynn (Team Picnic PostNL)

1:27:01

88

Brent Van Moer (Lotto)

1:27:56

89

Luke Durbridge (Team Jayco AlUla)

1:28:16

90

Vegard Stake Laengen (UAE Team Emirates XRG)

1:28:47

91

Martin Tjøtta (Arkéa–B&B Hotels)

1:29:12

92

Lewis Askey (Groupama–FDJ)

1:29:20

93

Julien Vermote (Team Visma | Lease a Bike)

1:29:44

94

Marius Mayrhofer (Tudor Pro Cycling Team)

1:29:55

95

Danny Van Poppel (Red Bull–BORA–hansgrohe)

,,

96

Mikkel Bjerg (UAE Team Emirates XRG)

1:30:19

97

Samuele Battistella (EF Education–EasyPost)

1:30:45

98

David González (Q36.5 Pro Cycling Team)

1:32:27

99

Chris Froome (Israel–Premier Tech)

1:33:47

100

Antoine Huby (Soudal Quick‑Step)

1:35:40

101

Sylvain Moniquet (Cofidis)

1:35:51

102

Jonas Koch (Red Bull–BORA–hansgrohe)

1:36:13

103

Alberto Bettiol (XDS Astana Team)

1:36:16

104

Luc Wirtgen (Tudor Pro Cycling Team)

1:37:08

105

Julius Johansen (UAE Team Emirates XRG)

1:37:40

106

Marco Haller (Tudor Pro Cycling Team)

1:38:43

107

Madis Mihkels (EF Education–EasyPost)

1:39:06

108

Vincenzo Albanese (EF Education–EasyPost)

1:39:42

109

Stefan Bissegger (Decathlon AG2R La Mondiale Team)

1:40:12

110

Ayco Bastiaens (Soudal Quick‑Step)

1:40:49

111

Jonas Gregaard (Lotto)

1:42:31

112

Eddy Le Huitouze (Groupama–FDJ)

1:43:26

113

Pavel Bittner (Team Picnic PostNL)

1:43:51

114

Alexander Kamp (Intermarché–Wanty)

1:44:20

115

Silvan Dillier (Alpecin–Deceuninck)

1:45:24

116

Davide Ballerini (XDS Astana Team)

1:46:51

117

Arnaud De Lie (Lotto)

1:49:02

118

Max Walker (EF Education–EasyPost)

1:50:02

119

Tim Naberman (Team Picnic PostNL)

1:51:25

120

Jimmy Janssens (Alpecin–Deceuninck)

1:54:16

121

Henri Uhlig (Alpecin–Deceuninck)

1:54:20

122

Jasper De Buyst (Lotto)

1:56:12

123

Sébastien Grignard (Lotto)

1:57:38

124

Alex Edmondson (Team Picnic PostNL)

2:02:46

125

Olivier Le Gac (Groupama–FDJ)

2:12:24

Stephen Farrand
Head of News

Stephen is one of the most experienced member of the Cyclingnews team, having reported on professional cycling since 1994. He has been Head of News at Cyclingnews since 2022, before which he held the position of European editor since 2012 and previously worked for Reuters, Shift Active Media, and CyclingWeekly, among other publications.

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