The French champions won 2-1 at the Parc des Princes having thrashed the German side 4-0 in the last-16 first leg, with Marquinhos and Ezequiel Lavezzi wiping out the visitors' early strike by Sidney Sam.
Sami Hyypia's Leverkusen, who finished with 10 men after Emre Can picked up a second yellow card in the 68th minute, were also hampered by Simon Rolfes's missed penalty in the first half.
PSG, who have now won their last six games in all competitions, could have gone through even more easily had Ibrahimovic not missed a couple of clear chances either side of the interval.
"We played one of our worst first halves since the beginning of the season," fullback Christophe Jallet told French TV channel Canal Plus.
"There was a lot of waste but we found the mental strength to equalise and then in the second half we were in control."
Hyypia told a news conference: "I am proud of that team because we showed character and we played well in the first half.
"Before the game I insisted on the fact we needed to be more stable defensively, and we have been."
PSG coach Laurent Blanc rested his usual midfield of Marco Verratti, Thiago Motta and Blaise Matuidi, while Marquinhos was handed a start in central defence in place of Alex.
Bayer, looking to become the third team to progress from a knockout tie in the Champions League after losing the first leg at home, made a strong start.
In the sixth minute, Sam powered home a downward header from Giulio Donati's cross to make it 1-0 to the visitors.
The hopes of Bayer, who were without injured midfielder Jens Hegeler, causing a major upset were shortlived, though.
PSG restored order in the 13th minute when Marquinhos headed in a corner and six minutes later Ibrahimovic's delicate chip hit the crossbar as PSG tightened their grip on the game.
However, Christophe Jallet pulled back Eren Derdiyok in the area, only for Salvatore Sirigu to parry away Rolfes's penalty kick.
The hosts went ahead eight minutes into the second half when Lavezzi slotted home from Lucas Digne's fine pass for his fifth goal in his last six matches.
With a potentially tricky Ligue 1 home game against St Etienne on Sunday looming, Blanc substituted Ibrahimovic with Jeremy Menez in the 72nd minute, giving the former AS Roma forward his first appearance in almost a month.
Leverkusen keeper Bernd Leno then made two saves to deny Javier Pastore and Adrien Rabiot in the closing stages.
"It's not easy playing a match like this when you know that you are out, but for us it was about honour and prestige," Rolfes said.
Before kickoff, police were called to central Paris to break up a fight between Parisian and German hooligans.