The two riders were neck and neck for most of the day again, with Pogacar attacking multiple times but crashing on the descent of the penultimate climb of the Col de Spandelles in a dramatic moment.
Jumbo-Visma then controlled the race with Sepp Kuss carrying Vingegaard and the Slovenian past all other riders up the road before the final 5 kilometres when they reached teammate Wout van Aert, who led the race with Dani Martinez (INEOS Grenadiers) as the only remnants of the earlier breakaway.
Wout van Aert set a high enough pace to crack Pogacar in the final five kilometres of the ascent to the summit finish on the Hautacam, and Vingegaard took more than a minute to add to his overall lead, riding into the finish for a famous second stage victory at the race while also taking over the lead in the King of the Mountains classification by eight points over Simon Geschke (Cofidis).
"It's incredible," the Dane said after the stage.
"This morning I said to my girlfriend and my daughter that I wanted to win for them and I did, so I'm really really happy and proud. This one is for my two girls at home.
"I was just happy that it finally ended, it was incredibly hard. There's still two more days to come before Paris so we need to stay focused.
"Today I have to thank all my teammates, they were incredible. You see Wout van Aert dropping Tadej Pogacar at the end, Sepp Kuss was incredible, everyone was incredible, Tiesj [Benoot], Christophe [Laporte], Nathan [van Hooydonck], they were all incredible today.
A breakaway with 34 riders formed in the early kilometres of the stage, notable inclusions being two Jumbo-Visma riders, Tiesj Benoot joining green jersey Wout van Aert in the satellite role, both sure to play a part for the yellow jersey on the climbs.
There was drama in the peloton with 95 kilometres to go as Jack Bauer (BikeExchange-Jayco) was caught in a scary crash where a press motorbike cut off his lane as the road narrowed, the New Zealander only route left to slam into the back of the UAE team car after it slowed for another crash in front with Nils Eekhoff (Team DSM) down after clipping another motorbike.
In the overall battle, Tadej Pogacar waited until there were 40 kilometres left in the race to attack Jonas Vingegaard on the ascent of the Col de Spandelles, with the Dane again following and not giving an inch to the Slovenian.
The pace of the two caught many of the breakaway riders up the road who were now struggling, looks of disbelief on their faces as the top two motored through an 8 per cent gradient section of the climb.
Pogacar looked back and realised he again hadn't been able to distance Vingegaard, hoping there would be a UAE rider behind to help like Brandon McNulty in yesterday's stage but this time it was the Dane's teammate Sepp Kuss who managed to bridge across to the duo.
Geraint Thomas (INEOS Grenadiers) latched on briefly with teammate Dylan van Baarle who was up the road along with Nairo Quintana (Arkea-Samsic) and Aleksandr Vlasov (BORA-Hansgrohe) before Pogacar attacked twice more with no avail four kilometres from the summit.
The Welshman recovered the front pair, then decided it was time for his own attack before Pogacar went again and he and Vingegaard distanced the other top climbers in a show of strength.
Only three riders were now left out front, van Aert finishing the climb ahead of Thibaut Pinot (Groupama-FDJ) and Dani Martinez (INEOS Grenadiers) to take maximum KOM points over the top of the Spandelles, while Pogacar accelerated again to the polka dot line but Vingegaard remained firmly in the wheel.
Then pandemonium ensued on the descent, as a near-crash for Vingegaard saw him distanced with Pogacar taking his opportunity to attack again. The Dane managed to steady himself and rejoin, then Pogacar took a sharp corner too wide and crashed on the gravel.
In a beautiful display of sportsmanship, Vingegaard waited up the road and the two came back together, shaking hands before continuing on.
Vingegaard then had two teammates in Kuss and Benoot at the base of the Hautacam as Thomas and Meintjes also joined the group for the final hors categorie climb, while the battle was on for minor placings behind with Vlasov, David Gaudu (Groupama-FDJ), Nairo Quintana (Arkea-Samsic) and Adam Yates (INEOS Grenadiers).
Kuss led the way up the ascent, eventually catching van Aert and Martinez, with the Belgian star taking over at the front to do one hard turn that dropped Pogacar.
All the earlier attacks had taken their toll on the Slovenian, and he cracked with four and a half kilometres to go, an exhausted van Aert pulling off a kilometre later for the yellow jersey Vingegaard to go solo with a 20-second gap to his rival.
His gap went out to a minute on the winding two kilometres into the finish, the Dane keeping a clinical cadence and speed reminiscent of his performance to snatch yellow on the Col du Granon, blowing a kiss to the crowd as he crossed the line for his second stage win and the first while wearing the maillot jaune.
Pogacar battled again to come in second, but saw his overall deficit go out to another minute and the Tour effectively over bar bad luck for Vingegaard in the final three stages.
The Tour de France continues with a rare chance for the sprinters on Stage 19. Watch from 8.55pm AEST on the SBS SKODA Tour Tracker or on the SBS and SBS On Demand broadcast from 9.30pm AEST.