Chelsea beat PSG to overturn a 3-1 first leg defeat, while Real Madrid survived despite a 2-0 loss to Borussia Dortmund.
We now know the names of two Champions League semi-finalists and the others will be decided tomorrow night.
Paris Saint-Germain badly missed injured star Zlatan Ibrahimovic at Stamford Bridge and crashed out after a 2-0 defeat, overturning the 3-1 first leg victory.
Chelsea lost Eden Hazard early on to injury, but his replacement Andreas Schurrle broke the deadlock when he was left unmarked when David Luiz flicked on a long Branislav Ivanovic throw-in.
This made it 2-3 on aggregate and Jose Mourinho’s men hit the crossbar twice in quick succession with Schurrle and an Oscar free kick.
Pocho Lavezzi also tested Petr Cech with one of his curling set pieces, while Edinson Cavani missed a great opportunity when sent clear by a long Cabaye pass.
At the 87th minute Chelsea got their second goal to make it 3-3 on aggregate, ahead with the away goal in Paris. Cesar Azpilicueta’s strike flashed across the six-yard box for Demba Ba to prod in at full stretch.
The Ligue 1 leaders poured forward to the final whistle, when Cech needed a fine save at his near post on Marquinhos.
Real Madrid thought they were already in the semi-final after a 3-0 first leg victory over Borussia Dortmund, but were given a rude awakening in Germany.
Lukasz Piszczek handled after 15 minutes, but Angel Di Maria’s penalty was brilliantly saved by Roman Weidenfeller.
Dortmund’s confidence was boosted and they netted twice before the break. Marco Reus pounced on a poor Pepe backpass, then another error saw Robert Lewandowski hit the post with Reus following up for his second.
Henrikh Mkhitaryan also hit the woodwork twice, including one chance in front of an open goal, while Xabi Alonso was fortunate not to receive a second yellow card after the restart.
Iker Casillas performed a series of desperate saves on Mkhitaryan and Kevin Grosskreutz, though Weidenfeller did the same on Gareth Bale late on to keep the tie alive.