Tadej Pogacar retained his grip on the Tour de France yellow jersey despite having lost a second team member to Covid-19 before Tuesday's Stage 10.
Danish rider Magnus Cort defeated Australia's Nick Schultz in a thrilling sprint finish to the line and took the honours on a day when the race was held up for 10 minutes by climate-change protesters.
Luis Leon Sanchez was in front of Schultz and Cort in the final 250m but the chasing pair overtook the Spaniard at the 50m mark with the EF Education-EasyPost rider prevailing in a photo finish.
“It's unbelievable,” Cort said. “I can't believe what just happened today.
“I was on the limit for so long on the climb. Luckily, I had [Alberto] Bettiol who was really strong and in front in many moments, which meant I could sit on and save some energy.
“Somehow I was losing the group a couple of times in the last two kilometres, but suddenly it was all back together and I was there and I was able to take it in the sprint.”
Cort has been in the breakaway almost every day on the first few stages. He had some time in the polka-dot jersey but has now won what is considered one of the toughest stages of this year's Tour.
The race to Megeve was interrupted for a short time with 35km to go as a group of climate activists blocked the road before being hauled away by police and race officials.
UAE Team Emirates rider and race leader Pogacar, meanwhile, suffered another serious setback when New Zealand's George Bennett became his second teammate to drop out after testing positive for Covid-19.
Norwegian rider Vegard Stake Laengen had already been forced out of the race for the same reason.
Rafal Majka also tested positive but the Polish climber was given the green light to continue as he had a low viral load, which was deemed non-contagious, in similar circumstances to Stage 9 winner Bob Jungels.
Defending champion Pogacar now faces three key Alpine stages – including Thursday's trip to the famous Alpe d'Huez – with a depleted team.
“At first we didn't want to lose it then we were going to lose it kind of, but in the end it all worked out like it did and I'm happy I'm still in the yellow jersey,” said Pogacar, who finished 20th on Tuesday.
As for Bennett's departure before the start of the race, the Slovenian added: “Already if everyone is healthy and you're doing protocols, masks around people it's already hard.
“To get one positive in your own bubble, it's just worrying, stress. I hope we survive until the finish.”
Pogacar’s lead in the general classification was reduced to 11 seconds with German Lennard Kamna moving into second spot.
Jonas Vingegaard (Jumbo-Visma) remained 39 seconds down in third followed by Ineos Grenadiers pair Geraint Thomas and Adam Yates in fourth and fifth. The only other change in the top 10 was Sanchez moving into 10th ahead of American Neilson Powless.
Stage 10 - top 5 results
1. Magnus Cort (DEN) EF Education-EasyPost 3 hrs 18 mins 50 secs
2. Nick Schultz (AUS) Team BikeExchange-Jayco + 00
3. Luis Leon Sanchez (ESP) Bahrain Victorious + 7 secs
4. Matteo Jorgenson (USA) Movistar Team + 8
5. Dylan van Baarle (NED) Ineos Grenadiers + 10
General classification - top 5
1. Tadej Pogacar (Slo) UAE Team Emirates 37 hrs 11 mins 28 secs
2. Lennard Kamna (Ger) Bora-hansgrohe +11secs
3. Jonas Vingegaard (Den) Jumbo-Visma) +39
4. Geraint Thomas (GBR) Ineos Grenadiers +1min 17 secs
5. Adam Yates (GBR) Ineos Grenadiers +1:25