Tadej Pogacar won stage 15 of the Tour de France to slightly cut Primoz Roglic's lead as defending champion Egan Bernal dropped out of contention.
Pogacar beat yellow jersey Roglic in a sprint to the line and now trails his fellow Slovenian by 40 seconds.
Bernal cracked badly on the final climb to Grand Colombier and lost over seven minutes to slip from third to 13th overall.
Britain's Adam Yates moved up to fifth in the general classification.
Roglic was expertly delivered to the finish after another supreme display by his Jumbo-Visma team but Pogacar again showed he will attempt to reduce the deficit at every opportunity.
The 21-year-old UAE Team Emirates rider kicked clear late on to take his second stage win of the Tour and 10 bonus seconds, with Roglic second and Richie Porte in third.
"Jumbo-Visma set a really high pace all day and it made it a really difficult stage so I was just waiting for the sprint at the end and I'm so happy to win again," said Pogacar.
"The plan is to win the Tour de France. Primoz Roglic seems unstoppable but today Bernal cracked and maybe one day myself or Primoz will crack - there are still a lot of opportunities ahead."
Pogacar, who lost over a minute after being caught out by the crosswinds on stage seven, will have to attack from further out in the final week to overhaul Roglic, which will be tough given the strength of Jumbo-Visma.
Belgian all-rounder Wout van Aert, who has won two bunch sprints in this year's Tour, drove the group of favourites for the first 8km of the 17.4km final climb and set such a high pace he dropped Grand Tour winners Bernal and Nairo Quintana.
Former Giro d'Italia champion Tom Dumoulin then reeled in an attack by Yates at 6km to go and led the main group all the way into the final kilometre before Roglic attacked.
Porte, Pogacar and Miguel Angel Lopez were the only riders able to react before Pogacar prevailed in a repeat of the Slovenian one-two on stage nine.
But despite being beaten again, this was another strong showing by Roglic, who will be confident his team can control the rest of the race.
Yates also rode well to finish eighth and is now just 29 seconds off the podium entering the final week.
Jumbo's strength was in marked contrast to Ineos Grenadiers, who have won seven of the past eight Tours as Team Sky and Team Ineos.
All of Bernal's support riders except Michal Kwiatkowski and Jonathan Castroviejo were dropped early on before the Colombian, who came into the race still recovering from a back injury, also began to slip back and rapidly lose time.
The 23-year-old is now eight minutes 25 seconds down on Roglic and Ineos have no back-up option, with deputy leader Richard Carapaz over 30 minutes down.
While four-time Tour winner Chris Froome looks to still be working his way back to top form, Ineos' decision not to select 2018 champion Geraint Thomas will come under scrutiny again.
The Welshman, who is now targeting this year's Giro in October, is currently third overall heading into the final stage of Tirreno-Adriatico on Monday.
In a frantic start to stage 15, Ireland's Sam Bennett managed to prevent green jersey rival Peter Sagan going up the road before beating him at the intermediate sprint to extend his lead in that competition to 45 points.
After a rest day on Monday, the race resumes with a rolling 164km route from La Tour-du-Pin to Villard-de-Lans on Tuesday.
Stage 15 result
1. Tadej Pogacar (Slo/UAE Team Emirates) 4hrs 34mins 13secs
2. Primoz Roglic (Slo/Jumbo-Visma) Same time
3. Richie Porte (Aus/Trek-Segafredo) +5secs
4. Miguel Angel Lopez (Col/Astana) +8secs
5. Enric Mas (Spa/Movistar) +15secs
6. Sepp Kuss (US/Jumbo-Visma) Same time
7. Mikel Landa (Spa/Bahrain McLaren)
8. Adam Yates (GB/Mitchelton-Scott)
9. Rigoberto Uran (Col/EF Pro Cycling) +18secs
10. Alejandro Valverde (Spa/Movistar) +24secs
General classification after stage 15
1. Primoz Roglic (Slo/Jumbo-Visma) 65hrs 37mins 07secs
2. Tadej Pogacar (Slo/UAE Team Emirates) +40secs
3. Rigoberto Uran (Col/EF Pro Cycling) +1mins 34secs
4. Miguel Angel Lopez (Col/Astana) +1mins 45secs
5. Adam Yates (GB/Mitchelton-Scott) +2mins 03secs
6. Richie Porte (Aus/Trek-Segafredo) +2mins 13secs
7. Mikel Landa (Spa/Bahrain McLaren) +2mins 16secs
8. Enric Mas (Spa/Movistar) +3mins 15secs
9. Nairo Quintana (Col/Arkea-Samsic) +5mins 08secs
10. Tom Dumoulin (Ned/Jumbo-Visma) +5mins 12secs