Loading...
The French treble winners had Willian Pacho and Lucas Hernandez sent off in the final stages but managed to oust the German giants in Atlanta.
Bundesliga champions Bayern, who lost Jamal Musiala just before half-time with a horror ankle injury, shared an intense and even battle with the Parisians.
Bayern had won their last four matches straight against PSG, including a 1-0 Champions League victory last November, before Luis Enrique's side hit their peak.
Players and nearly 67,000 spectators observed a minute of silence in honour of Liverpool forward Diogo Jota and his brother Andre Silva, who tragically died in a car crash on Thursday.
It was an emotional moment, especially for a PSG side with five Portuguese players in the squad, including starters Vitinha, Joao Neves and Nuno Mendes.
Luis Enrique began with leading Ballon d'Or candidate Dembele on the bench, as he continues his comeback from a quadriceps injury, but Bayern playmaker Musiala was fit to start after a calf issue.
It was FIFA's expanded tournament's biggest heavyweight clash thus far and Bayern coach Vincent Kompany said on the eve of the game he would pay to watch a match he described as a "perfect storm", because of the teams' similar high-pressing, attacking styles.
The air-conditioned Mercedes-Benz Stadium also produced the perfect conditions for a pulsating game, lit up by supremely talented dribblers on both sides, as well as two elite goalkeepers in Gianluigi Donnarumma and Manuel Neuer.
Both sides exchanged early blows as Desire Doue fired narrowly wide and Donnarumma saved Michael Olise's low effort.
Khvicha Kvaratskhelia hit the side netting after a razor-sharp PSG counter before Donnarumma produced a fine save at full stretch to tip away another Olise effort.
Georgia international Kvaratskhelia forced Neuer into an excellent stop from close range after the effervescent Bradley Barcola floated a ball out to him on the left and the winger surged inside at pace.
Donnarumma was called into action as Aleksandar Pavlovic's low cross for Musiala eluded the German and nearly found the bottom corner, but for a swift reaction from the Italian.
The goalkeeper could do nothing about Dayot Upamecano's header from Olise's free-kick in first-half stoppage time but the French defender had strayed offside and it was disallowed.
England captain Harry Kane also came close for Bayern with a header that flew narrowly off target after fine work by Kingsley Coman.
Unfortunately Musiala suffered a gruesome ankle injury before half-time as he fell following a collision with Donnarumma, with the goalkeeper appearing distraught in the aftermath.
Bayern's 39-year-old stopper Neuer produced a sensational save to deny Barcola early in the second half, as the French winger ran through on goal and tried to bend the ball into the far corner.
With 20 minutes remaining, Luis Enrique sent on Dembele to try and make the difference and avoid extra-time, which neither side needed at the end of a gruelling season.
Dembele came inches from doing just that when Neuer gave the ball away outside his area and the Frenchman lunged to try and roll into the empty net, but it trickled just wide of the post.
Eventually 20-year-old Doue found the breakthrough as Kane gave the ball away and PSG attacked in numbers.
Doue, who burst into the limelight in PSG's run to Champions League glory, worked some space on the edge of the box and flashed a low strike home at the near post.
Bayern were given hope as they hunted for an equaliser when PSG defender Pacho was sent off for a high tackle on Leon Goretzka after 83 minutes.
Kane headed home from an offside position before PSG substitute Hernandez was dismissed for an elbow.
Dembele hit the crossbar on the break as Luis Enrique's side clung on before sealing their victory through the French forward, who tucked home after Achraf Hakimi's run through and paid tribute to Jota by copying his video-gaming celebration.
PSG will face Real Madrid or Borussia Dortmund in the semi-finals on Wednesday at the MetLife Stadium in New Jersey.