It had been a brutal stage from the start, with BORA-hansgrohe driving the pace nearly from the very start of the race. That eliminated approximately half of the peloton from the main bunch, with the pace kept high throughout the race.
The speed ramped up further with 35 kilometres left to go as Michal Kwiatkowski (INEOS Grenadiers) did a strong turn at the front of the race that strung the peloton out in a ling before splitting the already reduced main bunch.
Yates made it into the select front group, the only Mitchelton-Scott representative to make the final move.
The pace didn’t relent all the way to the finish as the GC teams looked to put as much time as possible into those left behind. The stage concluded with a reduced bunch sprint as Wout van Aert (Team Jumbo-Visma) took his second stage win of the race, while Yates crossed the line safely in ninth place to remain in yellow.
The British climber will now go into stage eight wearing the yellow jersey for a third successive day as the race heads into the Pyrenees.
"There were only a few critical moments where you had to be in position," said Yates. "The wind wasn’t crazy strong, but it was just kind of enough to create a few splits.
"But the guys looked after me perfectly, even in the final I ended up on my own just because they put me in position and used a lot of energy to keep me up there.
"The next two days should be pretty tough, I think today everyone was expecting to have an easier day before the two big mountain stages, but BORA-hansgrohe had other ideas and we rode pretty much full gas from start to finish. It was a hard day for everybody."
Yates holds a three-second lead over Primož Roglič (Jumbo-Visma) as the race heads into the Pyrenees for Stages 8 and 9.
The Tour de France continues with Stage 8 as the race ventures into the Pyrenees, cresting the hard climbs of the Port de Bales and the Col de Peyresourde. Watch LIVE on SBS and SBS On Demand from 9:30pm AEST.