Javier Pastore gave the visitors the lead early in the second half but Pedro cancelled the goal out with 20 minutes remaining, helped by the appearance of Lionel Messi, who began the match on the substitutes’ bench after injuring a hamstring in the first leg.
It meant Barcelona progressed on away goals after the tie finished 3-3 on aggregate.
The Catalans were far from their usual brilliant selves without Messi and met their match in a disciplined and intelligent PSG, who afforded them little space and caused a lot of problems on the counter attack.
Xavi almost gave the hosts the dream start from a 30-yard free-kick, but his effort went inches wide of the post.
PSG did not take long to have their first attempts on goal either.
A lively Ezequiel Lavezzi tested Barcelona goalkeeper Victor Valdes after two minutes and then raced towards goal after getting the ball from an off-colour Sergio Busquets. He was stopped by Gerard Pique, who did exceptionally well to recover.
Lucas Moura then forced Valdes into a save, and a few moments later Lavezzi shot over the bar in a period of surprising superiority from the visitors, who were allowed a fair amount of possession of the ball and space.
Barca did not create another chance until 21 minutes, when Pedro forced a low save from Sirigu and the ball fell to the forward again, who hit the side netting. Lavezzi then missed PSG’s best chance of the half, forcing his way into the area but poking his shot straight at the legs of Valdes.
Barcelona’s first-half performance was well below their usual high standards, and although they had 13 shots on goal, could only hit the target once.
The second period initially followed the script of the first half, with Barca controlling possession but creating little danger.
The difference was that once PSG created a chance of their own, they made it count. Zlatan Ibrahimovic played Pastore in with a wonderful ball to the left-hand side and the Argentine surged forward ahead of Barca’s line of defence, controlled the ball and slotted into the net, the ball bouncing off Valdes on its way into the corner.
With Barca needing to score and looking unlikely to do so, they brought on the man who has scored 51 times for them in the Primera Division and in Europe this season.
Messi was brought on in place of Cesc Fabregas, while Adriano was replaced by Marc Bartra.
The Argentine had an immediate impact on Barca’s spirit and gave them an edge to their attack.
Sirigu had to dive low to stop an effort from Iniesta and the ball fell to Messi, who could not get his shot beyond the defender in front of him.
Pastore then had a third effort, this time shooting just over the bar, before Barca pounced. Messi created the danger on the edge of the area as he tried to play in David Villa. Instead the ball was scuffed only as far as Pedro, who lashed the ball into the top corner.
It was only Barca’s third attempt on target but it was struck with such power that Sirigu was left with no chance.
The goal forced PSG to come at their opponents, when before they had been causing all their damage from the counter attack.
They struggled in this new role and Carlo Ancelotti brought on David Beckham with seven minutes remaining to add to their creativity.
Barca took off Villa for defensive midfielder Alex Song as they sought to hold on and progress to the final four.
Barca breathed a huge sigh of relief when the final whistle sounded as they celebrated becoming the first team to qualify for the semi-finals of the Champions League six times in a row.
They will, however, be praying that Messi will be at full fitness when they do contest the final four of the competition, because they were a shadow of their usual selves without him.
BARCELONA: Valdes, Dani Alves, Pique, Adriano (Bartra 62), Jordi Alba, Xavi, Busquets, Iniesta, Pedro, Fabregas (Messi 62), Villa (Song 83).
PSG: Sirigu, Jallet (Van Der Wiel 88), Alex, Thiago Silva, Maxwell, Lucas Moura, Verratti (Beckham 83), Thiago Motta, Pastore, Ibrahimovic, Lavezzi (Gameiro 81).
Referee: Bjorn Kuipers (Holland).