Sam Bennett suffered a net loss, but remains comfortably in charge of the green jersey after stage 12 of the Tour de France.
This year's longest stage was never likely to be one for the sprinters, with a 2nd category and a 3rd category climb coming in the final 50km to Sarran.
In the end it was a day dominated by Team Sunweb, who claimed three of the top 10 places on the stage.
It was sweetest of all for Marc Hirshci, who took the stage win ahead of Pierre Rolland (B&B Hotels–Vital Concept), with Sunweb teammate Soren Kragh Andersen in third.
Nicolas Roche placed 10th on the stage, and it was his hard riding towards the end which saw Julian Alaphilppe (Deceuninck–Quick-Step) abandon notions of a stage victory and possibly taking yellow from Primoz Roglic (Team Jumbo-Visma).
The day's intermediate sprint saw Bennett get the better of Sagan by two places and two points to extend his lead to 70.
However, in mopping up the final points at the finish, Sagan turned a two-point negative day into a two-point positive.
Bennett will go into the 13th stage on 252-points, with Sagan on 186 - a lead of 66. With Friday's finish the culmination of a 1st category climb, an intermediate sprint at Lanobre will be where the Carrick-on-Suir rider earns his corn.
Roglic retains the leader's yellow jersey with a 21-second lead over Egan Bernal.
Roche ends the day 66th on general classification, 1h29'54" down on Roglic, while Dan Martin is 56th (1h15'57" down on yellow).