Raphinha had earlier scored twice for the Catalans at the Parc des Princes, slotting in the opener late in the first half and then volleying in an equaliser to make it 2-2 just after the hour mark.
In between, PSG had turned the game around as they awoke from a poor first-half display by starting in electrifying fashion after the restart with two goals in six minutes, neither coming from Kylian Mbappe.
Ousmane Dembele struck against his old club, and Vitinha briefly put the French giants in front, only for Barcelona to recover in stunning fashion to take control of the tie.
Christensen’s goal, which came just after he had been introduced as a substitute on his 28th birthday, ended PSG’s 27-game unbeaten run and gave Barca a lead to defend at home in the return next Tuesday.
That second leg will be played at Montjuic, the Catalan club’s temporary home, rather than the Camp Nou, the scene of Barcelona’s incredible 6-1 win over PSG in 2017 and of a lethal Mbappe hat-trick in a 2021 meeting of the teams.
The Parisians were widely seen as the favourites coming into this tie, in large part thanks to the presence of Mbappe and Dembele in the attack.
Security measures were reinforced at all of this week’s quarter-finals after the Islamic State group made threats against stadiums.
But the story of this game ended up partly being about the selection decisions of PSG coach Luis Enrique, who was missing the banned Achraf Hakimi but also omitted teenage prodigy Warren Zaire-Emery and gave Marco Asensio a surprise start.
The importance of the occasion for PSG, back in the quarter-finals having been eliminated in the last 16 in five of the previous seven seasons, was clear with Ronaldinho -– a former star for both clubs –- doing a lap of honour ahead of the game and home fans putting on a Star Wars display as the teams came out.
But Paris struggled to live up to it, with Mbappe for once unable to deliver in a big game.
Appearing in the Champions League quarter-finals for the first time in four years and since the departure of Lionel Messi, Barcelona grew into this game and almost went ahead on 20 minutes.
Home goalkeeper Gianluigi Donnarumma came to try to punch away a corner but Robert Lewandowski got there first, only for his header to be cleared off the line by Nuno Mendes.
Donnarumma in spotlight
That was the first wobble from Donnarumma, who did not cover himself in glory as Barcelona went ahead in the 37th minute.
The Italian came out to meet a low ball in from the right by Lamine Yamal but only succeeded in helping it into the path of Raphinha, who gratefully fired into an unguarded net for his first ever goal in the competition.
PSG sent on Bradley Barcola at the break for Asensio, with the substitute going to the right wing and Dembele moving across to an inside-left role close to Mbappe.
The tactical change paid off at once, as PSG drew level three minutes after the restart when Ronald Araujo failed to properly clear Mbappe’s cutback from the byline, the ball dropping to Dembele who rifled a shot high into the net while slipping.
It was just his second PSG goal since moving to the French capital from Barcelona last August.
The home side then went ahead in the 51st minute, Barcola and Lee Kang-in combining on the right before Fabian Ruiz supplied Vitinha, who controlled and prodded in.
Xavi responded with a double change just past the hour mark, as Pedri and Joao Felix entered and Yamal and Sergi Roberto came off, with Raphinha now on the right.
Pedri’s first contribution saw him float a ball forward for Raphinha, who arrived in the middle to meet it first-time on the volley, his shot beating Donnarumma to make it 2-2.
It was breathless stuff, and Dembele almost scored again, sending a shot off the far post just before Barcelona won it.
Donnarumma stayed rooted to his line as Ilkay Gundogan delivered a corner and Christensen headed in.
AFP