
Jeremy Whittle’s stage three race report from Dunkirk:
Thank you for following the Guardian’s Tour de France 2025 stage three live blog today. I appreciate your emails, so thank you for sharing your thoughts, questions and predictions.
After a mostly sleepy stage, today’s race from Valenciennes to Dunkirk ended in a chaotic finish with a few crashes. Although the most notable of these was earlier during the stage’s intermediate sprint which resulted in Alpecin-Deceuninck’s Jasper Philipsen having to withdraw from the Tour. The sports team will have a full race report for you shortly.
Updated
Here are some pictures from the today’s podiums:
In a post race interview, yellow jersey leader Mathieu van der Poel said of his team mate Jasper Philipsen:
It’s really sad that we lose him today and for the rest of the tour. We had a plan to go for the green jersey with him. It’s not a happy day today. It was difficult to refocus today.
On stage four, van der Poel said:
It looks quite a hard stage but I hope to find some good legs and fight for the yellow jersey.
Updated
KOM classification: top five after stage three
Tim Wellens (UAE Team Emirates), 3pts
Tadej Pogačar (UAE Team Emirates), 3pts
Benjamin Thomas (Cofidis), 2pts
Jonas Vingegaard (Visma-Lease a Bike), 2pts
Kévin Vauquelin (Arkéa-B&B Hotels), 1pt
Points classification: top five after stage three
Jonathan Milan (Lidl-Trek), 81pts
Biniam Girmay (Intermarché-Wanty), 77pts
Tim Merlier (Soudal Quick-Step) 63pts
Jasper Philipsen (Alpecin-Deceuninck), 63pts
Mathieu van der Poel (Alpecin-Deceuninck), 50pts
General classification: top 10 after stage three
Mathieu van der Poel (Alpecin-Deceuninck) 12hrs 55mins 37secs
Tadej Pogačar (UAE Team Emirates) +4secs
Jonas Vingegaard (Visma-Lease a Bike) +6secs
Kévin Vauquelin (Arkéa-B&B Hotels) +10secs
Matteo Jorgenson (Visma-Lease a Bike) +10secs
Enric Mas (Movistar) +10secs
Joe Blackmore (Israel-Premier Tech) +41secs
Tobias Halland Johannessen (Uno-X Mobility) +41secs
Ben O’Connor (Jayco-Alula) +41secs
Emmanuel Buchman (Cofidis) +49secs
Updated
It was a 'really hard battle', says Merlier, after stage three sprint win
Tim Merlier spoke to reporters after that chaotic and close finish. The Soudal Quick-Step said it was a “really hard battle”. He added:
It was really difficult to find [a] position. The last kilometre, I fought back to get into position. I know next to Milan is always difficult.
Asked if he was sure he’d taken the win, Merlier replied:
At first, I was sure, but then I put my hands in the air and then I wasn’t sure any more.
He said that although he was dissapointed not to win stage one and bag the yellow jersey, he’s happy to have achieved his aim today by taking victory in today’s stage.
Top five on stage three
1. Tim Merlier (Soudal Quick-Step)
2. Jonathan Milan (Lidl-Trek)
3. Phil Bauhaus (Bahrain Victorious)
4. Soren Waerenskjold (Uno-X Mobility)
5. Pavel Bittner (Picnic PostNL)
Tim Merlier wins stage three!
There was a massive crash going into the last 200m of the finish. Tim Merlier (Soudal Quick-Step) and Jonathan Milan (Lidl-Trek) crossed in a very close finish. It’s about a tyre width’s difference between the two but Merlier takes the win.
Updated
1.3km to go: Tim Merlier (Soudal Quick-Step) is getting squeezed back through the group, he looks boxed in. Jonathan Milan (Lidl-Trek) looks as if he’s in a good position. Actually, Merlier is now on Milan’s wheel!
Updated
2.4km to go: There’s been a crash! A lot of riders have been caught up behind and there’s a seperate front group speeding towards the finish. Jordi Meeus (Red Bull-Bora-Hansgrohe) is on the ground. Remco Evenepoel (Soudal-Quick-Step) was also involved.
💥 Crash at the rear of the peloton !
— Tour de France™ (@LeTour) July 7, 2025
💥 Chute dans le peloton. Jordi Meeus est notamment concerné.#TDF2025 pic.twitter.com/2YMhUccQTo
Updated
3km to go: It’s getting a bit close and squirmy in the bunched together peloton. The riders passed into the 5km ‘safe zone’ meaning if they crash they won’t lose time.
6km to go: The peloton are riding parallel to a canal and straight into a headwind. In other news, the Tour de France jury have decided there will be no combativity award today.
8km to go: Remco Evenepoel (Soudal Quick-Step) is at the front of the bunch, as is Quinn Simmons (Lidl-Trek). The peloton is tightly packed as the riders try to get into prime position.
12km to go: You might have noticed that one of today’s favourites for the stage win, Tim Merlier (Soudal-Quick-Step), did not contest the intermediate sprint. Staying out of trouble perhaps?
The team trains are forming – there’s a feeling of calm before the storm at just over 10km to go.
⏱️ Please note: for todays stage, the sprint zone is extended from 3km to 5km. Any rider who suffers a crash or mechanical problem in this zone will be reclassified with the time of the group to which he belonged.
— Tour de France™ (@LeTour) July 7, 2025
⏱️ A noter : la sprint zone est aujourd'hui étendue de 3 à 5 km.… pic.twitter.com/P7gF9Em6AD
Updated
17km to go: US national champion, Quinn Simmons, has moved up to lead the Lidl-Trek train. Vito Braet (Intermarché-Wanty) is about 22secs off the back of the peloton.
Updated
20km to go: The peloton looks pretty settled as they head towards the pointy end of this stage. This is a handy explainer from the Tour de France race centre on how the polka dot jersey is decided:
The first placed rider is the one with the most first place finishes at the top of HC [Hors catégorie] climbs, then cat one climbs, cat two climbs, cat three climbs, cat four climbs, and finally the overall ranking based on time (if needed).
That’s why Tim Wellens will take the polka dot jersey tonight. He’s tied on points with Pogačar, both have a first place in a cat three summit, but Wellens also won in a cat four summit, while Pogačar has not.
Updated
Prior to the crash involving Jasper Philipsen and his subsequent withdrawal, I was about to post this message from Bill:
Good afternoon Amy!
I used to view these long flat stages as necessary interstitials, a chance to reflect upon what has happened so far, and what might be. Early on in the race, there’s fewer breaks as everyone settles in, knowing there’s many miles to cover over the next few weeks.
I have a theory, though, that later on in the Grand Tours, breakaways become more frequent, as team discipline begins to burr on the edges. A rider might want to get a stomp on those pedals just to get away from his teammates he has spent every day with since for ever. Tired of the same jokes, the same chats, the same games of chess, they long for the thrilling heroics of a long solo ride.
Not today, though, it’s been wet, windy, and far early on in the trip. As my friend James says: “There’s many miles to cover, let’s consider them all.”
Cheers, Bill.
p.s I won’t be having a cup of tea as it is past 3pm and I won’t sleep.
Don’t worry Bill, my tea was decaf.
Tim Wellens takes KOM point and polka dot jersey
30km to go: Tim Wellens (UAE Team Emirates) has taken the KOM points at the top of Mont Cassel, and will wear the polka dot jersey tomorrow. He’s eased off now and the peloton are tackling the climb.
34km to go: Tim Wellens (UAE Team Emirates) has attacked and created a 1min gap. If he takes the KOM points on the Côte de Cassel, he’ll take the polka dot jersey from his team mate Tadej Pogačar. The commentators on TNT Sports reckon the UAE Team Emirates team are keen for Pogačar to pass on his polka dot jersey and have to avoid spending time on the podium.
The UAE Team Emirates radio just confirmed that the plan is for Wellens to get the KOM points and take the jersey.
Updated
38km to go: The peloton, riding at a speed of about 41km/h, are together and heading towards the catgeory four climb of Côte de Cassel.
After the intermediate sprint crash, I received a question from Ger about the yellow cards that can be issued for bad behaviour by riders, thanks to cycling’s answer to football’s VAR. As Jeremy Whittle wrote on his piece about this:
Every touch of shoulders, switch of wheels, dramatic acceleration and multilingual insult in the peloton will be scrutinised by a growing number of in-race cameras and UCI commissaires.
Ger asked:
These new ‘yellow cards’ for dangerous riding or insults etc, have any been issued yet?
As far as I know, none have been issued yet during this Tour, but the first rider to be suspended under the new system was the Dutch rider Oscar Riesebeek, of the Alpecin-Deceuninck team, who received two yellow cards in three days in May. “Looking back, I realise my behaviour in the race was not only wrong, but also put fellow riders at risk,” he said.
50km to go: Now that Jasper Philipsen of Alpecin-Deceuninck has crashed out, who will wear the green jersey? Well, here are the standings after the intermediate sprint and the withdrawal of Philipsen:
1. Biniam Girmay (Intermarché-Wanty), 63pts
2. Jonathan Milan (Lidl-Trek), 51pts
3. Mathieu Van der Poel (Alpecin-Deceuninck), 50pts
4. Anthony Turgis (TotalEnergies), 49pts
5. Paul Penhoët (Groupama-FDJ), 43pts
56.6km to go: Here are the results from the intermediate sprint:
1. Milan, 20 pts
2. Penhoët, 17 pts
3. Groves, 15 pts
4. Turgis, 13 pts
5. Page, 11 pts
6. Consonni, 10 pts
7. Girmay, 9 pts
8. Waerenskjold, 8 pts
9. Rex, 7 pts
10. Wellens, 6 pts
11. Vauquelin, 5 pts
12. Capiot, 4 pts
13. Garcia Pierna, 3 pts
14. Démare, 2 pts
15. Stuyven, 1 pt
Updated
Jasper Philipsen withdraws from the Tour 2025
Jasper Philipsen (Alpecin-Deceuninck) is out of the Tour. That was a shocking crash. Philipsen is being attended to by the race doctor on the side of the road and has his arm in a sling. He’s also being put through a concussion check by the looks of it.
Updated
Milan wins intermediate wins as Philipsen crashes hard
60km to go: Jonathan Milan (Lidl-Trek)won that intermediate sprint but Jasper Philipsen (Alpecin-Deceuninck) crashed hard. Laurenz Rex (Intermarché-Wanty) and Bryan Coquard (Cofidis) got tangled up and that pushed Coquard into the path of Philipsen who went down hard on his shoulder. Looks as if he could be out of the race.
😟 @JasperPhilipsen crashed hard as he approached the intermediate sprint. The green jersey was forced to retire ❌
— Tour de France™ (@LeTour) July 7, 2025
😟 @JasperPhilipsen a chuté violemment à l'approche du sprint intermédiaire. Le maillot vert est durement touché et doit abandonner ❌#TDF2025 pic.twitter.com/RdKBQgr8oK
Updated
67km to go: According to the Tour de France race centre, in Chocques, where the peloton has been passing through, there is a north wind blowing at 25 km/h with gusts of up to 50 km/h. “As the cyclists are approaching sideways, there is a possibility of echelons forming,” it notes.
Justin from Bath has been in touch with his prediction for today’s finish:
Hi Amy,
It’s a day for snoozing in front of the telly, relying on the commentator’s excitement to waken you if anything happens, isn’t it?
I reckon that by the 500m to go marker, Jasper will have forgotten (again) how to sprint in a straight line, he’ll box Biniam against the barriers and Jonathan Milan will cross the line first (nodding like a dashboard donkey over the cobbles).
While, I’m not snoozing, I think I’ll go make myself a cuppa in a minute. Not something that’s easy to do on the very busy stages when covering this blog! So, like the riders, I’ll enjoy it while I can.
74km to go: While we wait for some more action, here are a few more pictures from today’s stage:
Updated
85km to go: No major changes to report. Looking ahead, there is an intermediate sprint in about 25km. There’ll be 20 green jersey points up for grab for the first rider to cross the line. After that, it’ll be about another 30km until the one and only category four climb on this stage: the 2.4km Côte de Cassel with an average gradient of 3.8%.
95km to go: There’s less than 100km to go now. The sun is shining. Emiel Verstrynge, Silvan Dillier (Alpecin-Deceuninck) and Max Schachmann (Soudal Quick-Step) have taken turns pulling the bunch.
108km to go: The pace is upping a bit – the peloton are riding at an average speed of 44km/h now.
Here is a video of the Alpecin-Deceuninck team controlling the front of the peloton earlier.
🏁 127KM
— Tour de France™ (@LeTour) July 7, 2025
🚴♂️🚴♂️🚴♂️ 🚗
ඞ An Impostor Among Us; 🇩🇪 @MaxSchachmann
infiltrates the 🇧🇪 @AlpecinDCK train that is guarding the pace after 50km of racing completed.
ඞ Un imposteur parmi nous ; 🇩🇪 @MaxSchachmann
infiltre le train 🇧🇪 @AlpecinDCK qui surveille l'allure après 50 km de… pic.twitter.com/sNXo7StbPD
According to the Tour de France Fantasy by Tissot players, Jasper Philipsen, Biniam Girmay and Mathieu Van der Poel have been the most selected riders for today’s stage. For any readers taking part, who have you got for you double points scorer this stage?
Updated
116km to go: Owain Doull makes a good point on the live TV coverage; today might be a bit boring for viewers but the riders will be loving it after two day’s of hectic racing.
Eric has been in touch from “the windy Emerald Isle” and responds to David (see 12.49pm BST) by saying:
Could you please advise David that I have already started shouting ‘echelons’; in fact, there’s rarely a day goes by here in Ireland that I don’t shout ‘echelons’.
Updated
125km to go: You know not much is happening when Adam Blythe is going into great detail about a lemon tart on the commentary. He gave it 18.8 out of 20.
The first hour of racing is almost done. Intermarche-Wanty’s team perfomance manager Aike Visbeek spoke to Hannah Walker before today’s stage. On Biniam Girmay’s knee, which he hurt in a crash yesterday, Visbeek said the knee is fine but they’ll have to see how it is with “maximum pressure” in a sprint. He also said the riders “shouldn’t be too scared of taking on the wind too early”. Visbeek said sidewinds would have been prefferable though as it would create a “big fight into the finish”.
Updated
136km to go: The average speed of the peloton has upped slightly to 36.4 km/h – that’s still pretty relaxed for this bunch. It does look as if they’ve cycled away from the rain and wet roads though, which will be blessed relief for the riders.
It’s too late for the white jerseys though – they’ve already been dirtied, according to Kévin Vauquelin (Arkéa-B&B Hotels).
🎙️ "We've got the white jersey dirty! What’s this northern weather like? Can't wait for Normandy, it's going to be better!" @kevin_vauquelin promises us the sun in Normandy! 😆
— Tour de France™ (@LeTour) July 7, 2025
☀️ @kevin_vauquelin nous promet le soleil normand ! 😆#TDF2025 pic.twitter.com/E1wAMiKZSd
143km to go: In an interview with TNT Sports prior to this stage, Mathieu Van der Poel said it was good to be back in his best shape, which he says he’s struggled with in previous Tours, and win yesterday’s stage. On today’s stage, Van der Poel said:
It’s a good chance for Jasper [Philipsen] to win and it’s important for points for the green jersey.
Former professional cyclist, Jens Voigt is out on the back of a motorbike on the route, and he tells TNT Sports that today is “wait, wait, wait” before we see an attack from any of the teams. He says, as the stage is highly likely to end in a bunch sprint, none of the riders will want to waste energy in trying to unsuccesfully establish a breakaway.
Updated
149km to go: The TV coverage just showed a Tour fan on a bike suspended in the air by some sort of farm machinery or crane. Brave.
Over in the peloton, not much to report at the moment apart from the fact that Mathieu Van der Poel and his Alpecin-Deceuninck teammates have taken positions at the front of the peloton. Could they be hoping for a hat-trick of stage wins? Jasper Philipsen won the first stage and Van der Poel took the second stage, so a third win in as many days would be a real show of dominance for the team.
Fans are out along the wet roadside:
157km to go: Oh, look at that. Max Schachmann (Soudal Quick-Step) and Jonas Rickaert (Alpecin-Deceuninck) quietly opened up a gap of 20secs. But, they’ve been swallowed up by the peloton.
It’s going to be tricky for any breakaways to form and stick this early, especially given the cross headwinds for the first half of the route. There’ll be headwinds as they start heading north later on too.
160km to go: We have movement! Tim Wellens and Nils Politt of UAE Team Emirates accelerate away with grins, but Alpecin-Deceuninck take no chances and swiftly shut it down.
Over on the Soudal-QuickStep team radio, the riders have been advised not to hold on to the rain jackets for too long in case they overheat.
Updated
163km to go: The bunch are very much chilling (at 34.7 km/h), chatting away like they’re on a club ride in their rain jackets. Tim Wellens (UAE Team Emirates) stops for a quick mechanical.
David has emailed in. He says:
With it being a flat stage today, and the great chance of crosswinds (so we all get to shout “echelons!”) which might make the peleton very nervous. There’s a cat four near the end but I don’t think it’s going to be enough to create a selection there.
Feel a bit sorry for Damien T, no way to spend a birthday in the wind and rain!
Pogačar and Vingegaard looking imperious, we are in forms treat this year.
Have a lovely day
Thanks David. You too!
169km to go: Matej Mohorič (Bahrain Victorious) was alone out front for a bit but the peloton has caught up and the riders are together again. Not much is happening at the moment, just the riders rolling along nicely.
Updated
173km to go: Jonas Rickaert (Alpecin-Deceuninck) fancied getting away and has been followed by Matej Mohorič (Bahrain Victorious). They’ve managed a modest 30secs gap so far.
The racing has begun!
175km to go: The flag has dropped and racing is officially under way on stage three. The start was delayed by six minutes due to a few mechanicals in the neutralised section and riders then getting back to the bunch.
Updated
There’s a birthday in the peloton! Joyeux anniversaire Damien Touzé of Cofidis.
Joyeux anniversaire @damientouze 🥳 pic.twitter.com/Akp2fZc02q
— Team Cofidis (@TeamCOFIDIS) July 7, 2025
On another note, TNT Sports’ viewer prediction poll has Jasper Philipsen (Alpecin-Deceuninck) as the favourite for today’s stage, but the presenters seem to be favouring Tim Merlier (Soudal Quick-Step). Does anyone have any riders tipped for the win outside the top names? Let me know if you do.
Here’s a weather report from the Tour’s race centre:
Right now, it’s raining heavily on the outskirts of Valenciennes. Fortunately, the rain will ease off as the stage progresses … at the same time as the north wind picks up. It will blow sideways to the peloton until Lilliers (km 108.5). Then, it will be a headwind. Temperatures will range between 15ºC and 20ºC.
Updated
Today's rollout has begun
Stage three of the Tour de France 2025 is under way. The peloton have rolled out from a very rainy Valenciennes. There’s a 6.6km neutralised section before the racing begins.
Jem has been in touch fom Kenilworth, Warwickshire, and says:
Anyone else enjoying this year purely for the fact that it is free from the unbearable stress of waiting for Cav to get that 35th win?
I don’t mind who wins the sprints any more and I don’t have to worry about him hauling himself over an Alp within the time limits.
It’s Pogi for me from now on – but it’s TDF time which is always exciting for me.
That’s a good point Jem. Also, if anyone has been following Mark Cavendish’s posts and videos from the Tour on social media so far, you’ll have seen how the Manx missile is having the time of his life from the sidelines. It’s fascinating to see him discovering the buzz of the Tour from a fan’s perspective. He told Ned Boulting in an interview that the TdF is even bigger than he had realised and joked that he wished he’d retired five years ago.
On that note, Rouleur’s Stephen Puddicombe has written about the Paris-Roubaix landscape that today’s stage will – and won’t – touch upon:
This landscape will be recognisable to cycling fans as Paris-Roubaix country – the Arenberg Forest, one of the most famous sites of that race, is located a mere 10 kilometres away from Valenciennes. Yet the organisers have chosen not to include any of that race’s notorious pavé sectors; much to the disappointment of fans who’d have relished the rare and thrilling spectacle of cobblestone racing at a Grand Tour, but to the relief of many GC contenders and their staff, anxiously aware of how one piece of bad luck on such a chaotic stage, be it a crash of puncture, can see their dreams of a high GC finish unravel even this early in the race.
Instead, he writes, the peloton will cover flat, tarmacked roads to Dunkirk – the northernmost point of this year’s Tour.
Talking about Paris-Roubaix, I can highly recommend going to watch on the roadside. It’s absolutely thrilling and has a great atmosphere. Also, it’s worth seeing some of those cobbles up close.
Updated
A stage three briefing, via Thierry Gouvenou, ex-professional cyclist, director of the race and architect of the Tour de France race route:
Third stage of the Tour de France, Valenciennes to Dunkirk, [is] certainly the flattest stage, but perhaps not the least tricky.
We’ll pass through places like Orchies, Mons-en-Pévèle, and the roads of Paris-Roubaix without the cobblestones. And then quickly, we’ll head towards the Flanders Plain. We’ll have the climb of Cassel, which will be the highest point of the stage. But right after Cassel on the way to Dunkirk, we’re in very flat areas but also very windy and we can expect echelons.
Everything will depend on the wind, but it will still be a moment of caution for the Tour de France leaders, and for the sprinters it will still be a chance to win another stage.
Oh dear, the sun is not shining in Valenciennes:
☔️ Bonjour @Valenciennes_ #TDF2025 pic.twitter.com/0uoPvX0L4h
— Tour de France™ (@LeTour) July 7, 2025
Not to be smug, but the weather looks decidedly better out of my window in London. Where are you all following along from?
Here’s the profile of stage three of the Tour de France 2025:
🚲 Stage 3 / Étape 3 🚲
— Tour de France™ (@LeTour) July 7, 2025
🚩 @Valmetropole
🏁 @Dunkerque
📏 178.3 km
⏰ 13:10 CEST > 17:28 CEST
⛰ 1x4️⃣
💚 km 118,2#TDF2025
🔎 More details and stage description on our official website pic.twitter.com/LlAMERRYLe
Stage two: Valenciennes to Dunkirk, 178km
Here’s a look at today’s stage, Monday 7 July: Valenciennes to Dunkirk, 178.3km, with William Fotheringham’s preview:
A third very accessible day for UK fans, another ascent of Cassel, but the safe money is on a bunch sprint in Dunkirk, famed among cycling fans for the Quatre Jours de Dunkerque stage race which actually lasts six days. The same proviso as day one: a westerly equals crosswinds on the final exposed 35km and splits in the field. These early days will be packed with crashes and tension, but Philipsen and company will be licking their lips.
Also, you can look ahead to every stage with this handy guide:
Updated
Preamble
Welcome back to the Guardian’s Tour de France 2025 live blog! Join me for coverage of stage three – the flattest of the entire race this year. The 178.3km route from Valenciennes to Dunkirk features just one category four climb and 800m of elevation gain. The rollout is expected at 1.10pm CEST (12.10pm BST) and the finish should be about 5.18pm CEST (4.18pm BST) – although often the peloton go faster than the predicted speeds.
Does that mean it’ll be boring? Hopefully not. I think it’ll be fast and, possibly, furious. The GC contenders will be vying to stay out of trouble, while the sprinters will have their eyes set on a stage win. There’s a prediction of windy conditions too, which could cause a bit of tension in the peloton.
So, who might ride to victory today? Tim Merlier (Soudal Quick-Step) is a firm favourite with pundits, but it’ll be worth keeping an eye on Ineos Grenadiers’ Sam Watson with him having triumphed at the Four Days of Dunkirk stage race in May. Other sprinters looking to contest a sprint finish? Obviously there’s stage one winner, Jasper Philipsen (Alpecin-Deceuninck), as well as Jonathan Milan (Lidl-Trek), Dylan Groenewegen (Jayco-Alula), Jordi Meeus (Red Bull-Bora-Hansgrohe) and Biniam Girmay (Intermarché-Wanty). Although the latter might be feeling sore after a crash on yesterday’s stage. I would love to hear your predictions so please email me your thoughts.
While we wait for the live TV coverage to kick off, here’s Jeremy Whittle’s stage two race report from Boulogne-sur-Mer: