The Frenchman, who had been accused by fellow sprint specialist Andre Greipel of holding on to his team car in Wednesday’s mountain stage to avoid missing the time cut, was perfectly set up by Italian team mate Jacopo Guarnieri.
He beat compatriot Christophe Laporte and Norway’s Alexander Kristoff, who were second and third respectively as Briton Geraint Thomas retained the overall leader’s yellow jersey after 171km from Trie sur Baize.
Demare grinded his teeth though the mountain stages, narrowly avoiding missing the time cut on a couple of occasions.
Five men, including former Paris-Roubaix winners Niki Terpstra and Matthew Hayman, formed the day’s breakaway, but they were kept on a tight leash by the peloton and were reined in way before the line.
World champion Peter Sagan did not contest the final sprint after his crash on Wednesday left him in pain.
The only incident in an otherwise dull stage raced in searing hot temperatures came 105km from the finish when Colombian Nairo Quintana, fifth overall after his stage win on Wednesday, hit the asphalt when he and Briton Adam Yates were caught in a pile-up.