After three tough days in the Alps, the teams of the few remaining sprinters kept the race under tight control with the break never allowed more than two minutes as they made sure everything came back together for the finish in Valence.
Groupama-FDJ had worked hard all day, and led the race into the final kilometre as Philippe Gilbert (Quick-Step Floors) tried to liven things up with a late attack that was pulled back with 400m to go.
Démare was kept at the very front of the race by lead-out man Jacopo Guarnieri, who dropped the Frenchman off with 200m to go with Kristoff and Sagan in his wheel.
Démare launched his bid for victory with 200m to go, but found himself overwhelmed by Kristoff and then Sagan, before the Slovak edged out the European champion to win by half a wheel on the line.
With all of the main contenders finished safely in the bunch the only change to the top of the general classification was caused by the abandonment of Vincenzo Nibali (Bahrain-Merida) who did not start the stage after crashing on Alpe d'Huez.
How it happened
With the profile of day suggest that this could be the best chance yet for a breakaway in the 2018 Tour de France there were plenty of attacks in the opening kilometres of stage 13.
Unsurprisingly one of the first men to attack was Thomas De Gendt (Lotto Soudal) who was able to get clear with Tom Scully (EF Education First-Drapac), while a number of others including Sylvain Chavanel (Direct Energie) tried and failed to get across.
With a large number of sprinters having been eliminated or abandoned in the Alps, it was up to Groupama-FDJ and Bora-Hansgrohe to stop too many more riders getting away.
Despite those efforts Michael Schär (BMC Racing) and Dmitry Claeys (Cofidis) were able to slip off the front but found themselves struggling to close the gap to De Gendt and Scully and having to expend a lot of effort to make the junction.
From there the race settled down with the four riders out front extending their lead to around two minutes and no further as Groupama-FDJ, UAE Team Emirates, and Bora-Hansgrohe kept them on a very short leash.
The gap remained steady for around 70km, but fell to less than a minute by the 60km to go mark as the break climbed the fourth-category Côte de Sainte-Eulalie-en-Royans.
Groupama-FDJ and Bora-Hansgrohe continued to control the pace through the next 30km as the gap to the leaders fell to just 30 seconds, at which point Michael Schär decided to take things into his own hands to attack out of the break and extend his lead out to 45 seconds.
However the peloton was never going to let the Swiss rider ride clear, continuing to close the gap back to 20 seconds with 12km to go, and making the catch with 5.5 remaining with Team Sunweb and Team Sky controlling the front of the bunch to keep Tom Dumoulin and Chris Froome out of trouble.
With four kilometres to go the sprinters' teams took over once again with Groupama-FDJ and Bora-Hansgrohe moving to the front and Daniel Oss raising the pace to string the bunch out.
Trek-Segafredo were the next to move to the front with two men in front of John Degenkolb with two kilometres to go, and the German followed by Alexander Kristoff (UAE Team Emirates). But as the pace slackened with one kilometres to go Philippe Gilbert (Quick-Step Floors) attacked leaving Groupama-FDJ to chase.
Gilbert was able to open a decent gap, but faded quickly as Groupama-FDJ shut the move down and put Arnaud Démare in a perfect position to open his sprint from the front.
Démare was the first to go with 200m to go, but was soon challenged by Kristoff and Sagan, with both men able to come over the top of the Frenchman and Sagan edge out the European champion for the win.
Meanwhile all of the general classification contenders finished safely in the bunch, meaning there was no change to the top 10 of the overall standings.
Tour de France 2018, stage 13: Bourg d'Oisans to Valence, 169.5km
1. Peter Sagan (Svk) Bora-Hansgrohe, in 3-45-55
2. Alexander Kristoff (Nor) UAE Team Emirates
3. Arnaud Demare (Fra) Groupama-FDJ
4. John Degenkolb (Ger) Trek-Segafredo
5. Greg Van Avermaet (Bel) BMC Racing
6. Yves Lampaert (Bel) Quick-Step Floors
7. Magnus Cort (Den) Astana
8. Andrea Pasqualon (Ita) Wanty-Groupe Gobert
9. Sonny Colbrelli (Ita) Bahrain-Merida
10. Taylor Phinney (USA) EF Education First-Drapac, all at same time
General classification after stage 13
1. Geraint Thomas (GBr) Team Sky, in 53-10-38
2. Chris Froome (GBr) Team Sky, at 1-39
3. Tom Dumoulin (Ned) Team Sunweb, at 1-50
4. Primoz Roglic (Slo) LottoNL-Jumbo, at 2-46
5. Romain Bardet (Fra) Ag2r La Mondiale, at 3-07
6. Mikel Landa (Esp) Movistar, at 3-13
7. Steven Kruijswijk (Ned) LottoNL-Jumbo, at 3-43
8. Nairo Quintana (Col) Movistar, at 4-13
9. Daniel Martin (Irl) UAE Team Emirates, at 5-11
10. Jakob Fuglsang (Den) Astana, at 5-45
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1