Astana's Cort was one of the last four riders from a breakaway that formed in the first 15 minutes of the 212km stage from Vichy.
He shed the three remaining riders, including Thomas De Gendt (Lotto-Soudal), Giulio Ciccone (Trek-Segafredo) and Alessandro De Marchi (CCC Team) in the last 400 metres to win in a time of 5hrs 3min and 49sec.
"We didn't have a plan but I was feeling good in the morning and I decided to go in the break," Cort said after the race. "And then when you're in the break, it's the goal to be in the finale."
Team Sky's Michal Kwiatkowski took the overall lead from Jumbo-Visma's sprinter Dylan Groenewegen. Luis Leon Sanchez (Astana) and Philippe Gilbert (Deceuninck-QuickStep) swapped placed for second and third on GC.
"It was maybe not the plan to take the yellow jersey, but the opportunity was there," Kwiatkowski said.
"We know that it was going to be a tough stage and very demanding for a lot of sprinters, we were expecting fireworks in the final, and I have to say it was a very strong breakaway and there were so many teams in it, so it gave them an opportunity to stay away.
"I could “only” take the yellow and not go for the stage win, but we are happy with it still."