Team Sky's Chris Froome came sixth in stage 13 of the Tour de France to keep the overall lead as Greg van Avermaet stunned Peter Sagan in a sprint finish.
Belgian Van Avermaet held off Slovakia's Sagan on the line to win the 198.5km leg from Muret to Rodez.
Early breakaway riders Thomas de Gendt, Wilco Kelderman and Cyril Gautier were caught with 200 metres remaining.
Britain's Froome, 30, remains two minutes and 52 seconds ahead of second-placed Tejay van Garderen.
American Van Garderen, who finished 10th but with the same time as Froome, had few opportunities to make up ground on the yellow jersey holder on a stage that lacked drama until the final minutes.
|Stage 14: Rodez - Mende, 178.5km (111 miles)|
|"A day for the breakaway but the steep finish into Mende could see drama in the race for the yellow jersey, so keep an eye on Chris Froome, Alberto Contador, Vincenzo Nibali and Nairo Quintana."|
|Read Geraint Thomas's stage preview|
Froome, having showed his resilience in the previous stage by holding off attacks from his general classification rivals, had a more straightforward time in the peloton on a day when temperatures of up to 38C proved the most troubling factor for riders.
The steep finish on Saturday's 178.5km route to Mende may offer slight grounds for optimism to Froome's prospective GC contenders.
"We already saw on a 500m climb like today gaps opening up, so tomorrow on a climb like Mende at 3km and more than 10%, I definitely think the general classification guys will be fighting to gain time," said Froome.
Stage 13 came agonisingly close to being won by a breakaway rider, but Belgian De Gendt, Dutchman Kelderman and France's Gautier, having led the field for the whole day, were overhauled by the peloton on the streets of Rodez with the finish line in sight.
The final incline allowed the peloton to catch them with BMC rider Van Avermaet, 30, claiming his first Tour stage win by finishing stronger than Sagan, who has not won a Tour stage in two years.
"I was dead, really dead,'' said Van Avermaet. "I thought I'd caught second. I pushed for the line and was so happy he didn't overtake me."
|Analysis: BBC Sport's Matt Slater|
|"Stages in the second week of the Tour, particularly long, straight-ish ones, are sometimes called 'transition' stages as they can be a bit, well, dull. "They are days when the Tour is trying to get to from A to B as quickly, and as safely, as possible, with just a gallop into B to share the glory and keep the sponsors happy."Today looked like being that kind of day for 99% of the stage, as the riders toiled in 38C heat, but that last 1% was epic as three survivors from an early break were caught on the final leg-shredding climb, 500m from the line."Another defeat for the escape artists, then, but they will keep digging."|
|Listen to the latest BeSpoke podcast from the Tour|
The result takes Tinkoff-Saxo rider Sagan's number of second-place finishes in his Tour career to 15, compared with just four victories.
Sagan, 25, who keeps hold of the green points jersey, told ITV4: "It's not about luck. It was my mistake for waiting too long.
"I was pushing in the saddle and then sat down. I had to continue to push but it was my stupidity."
Stage 13 result
1. Greg Van Avermaet (Bel) BMC Racing 4hrs 43mins 42secs
2. Peter Sagan (Svk) Tinkoff-Saxo)
3. Jan Bakelants (Bel) AG2R +3secs
4. John Degenkolb (Ger) Giant +7secs
5. Paul Martens (Ger) LottoNL
6. Chris Froome (GB) Team Sky
7. Vincenzo Nibali (Ita) Astana
8. Alberto Contador (Spa) Tinkoff-Saxo
9. Alejandro Valverde (Spa) Movistar
10. Tejay van Garderen (US) BMC Racing
General classification after stage 13
1. Chris Froome (GB) Team Sky 51hrs 34mins 21secs
2. Tejay van Garderen (US) BMC Racing +2mins 52secs
3. Nairo Quintana (Col) Movistar +3mins 9secs
4. Alejandro Valverde (Spa) Movistar +3mins 58secs
5. Geraint Thomas (GB) Team Sky +4mins 3secs
6. Alberto Contador (Spa) Tinkoff-Saxo +4mins 4secs
7. Robert Gesink (Ned) LottoNL +5mins 32secs
8. Tony Gallopin (Fra) Lotto +7mins 32secs
9. Vincenzo Nibali (Ita) Astana +7mins 47secs
10. Bauke Mollema (Ned) Trek +8mins 1secs