Paris Saint-Germain’s Eric Maxim Choupo-Moting celebrates with Neymar after scoring their second goal. Photograph: David Ramos/AFP/Getty Images

Paris Saint-Germain scored twice in injury time to seal their place in the semi-final of the Champions League and break the hearts of Atalanta.

Thomas Tuchel’s side fell behind in the 27th-minute when Mario Pasalic curled Atalanta ahead with a splendid left-footed curled effort with his 12th goal of the season.

With Kylian Mbappe only fit enough for the bench, Neymar floated between the sublime and the ridiculous in his absence. Although he was a class above his team mates, PSG’s two big chances of the first half fell to the Brazilian, and he fluffed his lines when through on goal early on and blazed high and wide from inside the box just before the interval.

Mbappe, who has just recovered from an ankle injury, was finally introduced with half an hour remaining and although he immediately improved PSG, the French giants looked destined to exit the competition prematurely once again.

Atalanta had battled bravely throughout and Pasalic’s first-half goal had looked set to be enough to send them into the last-four for the first time in the club’s history, but PSG had a sting in their tail.

Neymar laid on Marquinhos’ equaliser in the 90th minute, although the last touch may have come off the boot of Mattia Caldara, and just 90 seconds substitute Mbappe handed the winner on a plate for substitute Eric Maxim Choupo-Moting, as Tuchel’s men set up a semi-final clash with Atletico Madrid or Leipzig.