Froome first lost contact with the front of the contenders group on the category one Col de Peyra Taillade with 32km to go before immediately suffering a puncture. A roadside wheel change saw him having to fight to regain contact with the group containing rivals Fabio Aru (Astana) and Romain Bardet (Ag2r).
However, the British Sky leader made the junction with the help of team-mate Mikel Landa to retain his position at the top of the general classification ahead of Aru.
Meanwhile, the stage victory came from the day’s escape group, with Dutchman Bauke Mollema (Trek-Segafredo) taking a solo win. Diego Ulissi (UAE) led home the chasers for second, with Tony Gallopin (Lotto-Soudal) in third.
Big group on the attack
The day kicked off with an escape group instigated by polka-dot jersey holder Warren Barguil (Team Sunweb) in the hunt for mountains points with four classified climbs on offer.
Barguil’s group were joined by a further group headed up by team-mate Michael Matthews (Team Sunweb), to swell the break to 28 riders. Included were several representatives from squads who have so far come up empty-handed at the 2017 Tour – Katusha-Alpecin, Cofidis and Bahrain-Merida included.
Damiano Caruso (BMC) was the highest-placed overall of the riders in the break, starting the day at 11-26 behind Froome – so no immediate threat for the overall.
Barguil crested the first two classified climbs – Montée de Naves d’Aubrac and Côte de Vieurals – in pole position to scoop up the points, and Matthews was first over the intermediate sprint at the stage’s mid-way point at Sant-Alban-sur-Limagnole. He now closes the gap on green jersey Marcel Kittel (Quick-Step Floors).
With 62km to go, world time trial champion Tony Martin (Katusha-Alpecin) picked his moment to attack, launching a solo move in an attempt to time trial to the finish. By 50km to go, Martin had opened up quite a gap on his former escape companions and was nine minutes ahead of the bunch.
Moment of panic for Sky
The first set-back of the day for Froome came at 40km to go, as Ag2r hit the front of the peloton and opened up a gap. Froome and Sky were caught out and had to chase hard to regain contact. Then disaster struck again, when Froome had a mechanical and had to stop at the side of the road and swap rear wheels with Michal Kwiatkowski.
The Ag2r-led group forged on ahead, leaving Froome to be paced by Sergio Henao and Vasil Kiryienka in an attempt to try and catch up with the contenders group as they hit the slopes of the Col de Peyra Taillade. Nieve then dropped back to help Froome, but swung off to leave Froome to catch up on his own, accompanied by an unpleasant number of boos from roadside spectators.
Meanwhile, Tony Martin cracked on the climb, went backwards and was caught and passed by Barguil, continuing his hunt for mountains points at the top of the climb.
Landa – fifth overall at the start of the day – then dropped out of the contenders group with 34km to go to pace up Froome. The move meant that Sky were putting all of their eggs into one basket – but it worked, as Landa and Froome rejoined the contenders.
Ag2r kept up the pressure, with Alexis Vuillermoz leading team-mate Romain Bardet on his ‘home’ roads. On his wheel were Froome, Landa, Aru, Daniel Martin (Quick-Step Floors), Rigoberto Uran (Cannondale-Drapac), Simon Yates (Orica-Scott), Louis Meintjes (UAE) and Alberto Contador (Trek-Segafredo).
One rider who was absent, and again looking in bad shape, was Nairo Quintana (Movistar). The Colombian dropped off the pace of the front group relatively early on the Col de Peyra Taillade.
Over the top of the Peyra Taillade, Bauke Mollema (Trek-Segafredo) attacked from the reformed escape group on the descent and towards the day’s final classified climb of Côte de Saint-Vidal. The Dutchman powered on, opening up a significant gap with 15km to go. By this point, he was 50 seconds ahead of the chasers and over six and a half minutes ahead of the GC contenders group containing Froome, Bardet and Aru.
Having seen that they had not shaken off Froome, the Ag2r-led GC group eased off a little allowing the Sky leader to recoup some energy. It didn’t last long as Yates attacked on the Côte de Saint-Vidal, causing a frantic chase – and he was reeled in before the top.
Then it was Dan Martin who launched a move on the flat after the climb, with little reaction from the rest of the GC group.
Mollema continued on to take the stage victory, with Ulissi sprinting from a group of four chasers to take second.
By the finish, Dan Martin managed to open up a gap of 14 seconds to his rivals, to claw back some valuable time as Froome led in the rest of the GC favourites with a determined sprint – job done for another day.
Froome still leads Aru by 18 seconds overall, with Bardet in third at 23 seconds. Uran is fourth at 29 seconds – slim differences at the end of two weeks of racing.
Martin moves up to fifth overall at 1-12, moving Landa down to sixth. Yates keeps hold of the best young rider’s jersey in seventh spot. Quintana dropped out of the top 10 after his bad day, with Caruso moving up to 10th overall after his effort in the break.
The 2017 Tour de France takes its second rest day on Monday, when the riders will be able to recoup their energy after another bruising stage. Then it’s on to the Alps in a gruelling final week before the race concludes on Sunday, July 23, in Paris.
Tour de France 2017, stage 15: Laissac Sévérac l’Église to Le Puy en Velay, 189.5km
1. Bauke Mollema (Ned) Trek-Segafredo, in 4-41-47
2. Diego Ulissi (Ita) UAE Team Emirates, at 19 seconds
3. Tony Gallopin (Fra) Lotto-Soudal
4. Primoz Roglic (Slo) LottoNL-Jumbo, at same time
5. Warren Barguil (Fra) Team Sunweb, at 23 secs
6. Nicolas Roche (Irl) BMC Racing, at 1-00
7. Lilian Calmejane (Fra) Direct Energie, at 1-04
8. Jan Bakelants (Bel) Ag2r La Mondiale
9. Thibaut Pinot (Fra) FDJ
10. Serge Pauwels (Bel) Dimension Data, at same time
25. Daniel Martin (Irl) Quick-Step Floor, at 6-11
27. Simon Yates (GBr) Orica-Scott, at 6-25
28. Chris Froome (GBr) Team Sky, at 6-25
31. Fabio Aru (Ita) Astana, at 6-25
46. Nairo Quintana (Col) Movistar, at 10-19
General classification after stage 15
1. Chris Froome (GBr) Team Sky, in 64-40-21
2. Fabio Aru (Ita) Astana, at 18 secs
3. Romain Bardet (Fra) Ag2r La Mondiale, at 23 secs
4. Rigoberto Uran (Col) Cannondale-Drapac, at 29 secs
5. Daniel Martin (Irl) Quick-Step Floors, at 1-12
6. Mikel Landa (Esp) Team Sky, at 1-17
7. Simon Yates (GBr) Orica-Scott, at 2-02
8. Louis Meintjes (RSA) UAE Team Emirates, at 5-09
9. Alberto Contador (Esp) Trek-Segafredo, at 5-37
10. Damiano Caruso (Ita) BMC Racing, at 6-05
11. Nairo Quintana (Col) Movistar, at 6-16