Bayern Munich have cruised into the semi-finals of the Champions League thanks to a 6-1 victory over Porto at the Allianz Arena.
The Bundesliga champions recovered from a 3-1 loss in the first leg by taking a 5-0 lead at the break with goals from Thiago Alcantara, Jerome Boateng, Thomas Muller and a brace from Robert Lewandowski.
Jackson Martinez scored a consolation goal for the visitors before Ivan Marcano picked up a second yellow card, and Xabi Alonso had the final say by scoring a 25-yard free kick late on.
Below, Sports Mole takes a look at who impressed and which players struggled in the second leg of a dramatic quarter-final.
BAYERN MUNICH
Goal
Manuel Neuer: Porto couldn't even apply enough pressure for Neuer to do his usual sweeper-keeper job, and the World Cup winner will surely be frustrated to have lost his clean sheet to a goal from Martinez, who should have been flagged for offside. (6/10)
Defence
Rafinha: A typically energetic performance from the full-back as he offered a good outlet combining with Philipp Lahm on the right wing. Forced off with what appeared to be a groin problem in the second half. (7/10)
Jerome Boateng: The central defender put last week's horror show in Portugal behind him with the type of performance most supporters have become accustomed to this season. He wasn't offered too many problems, but he started a number of attacks with long balls to his attacking teammates and scored a header during the first-half onslaught. (7/10)
Holger Badstuber: Played his part in Boateng's goal and looked far more solid than Dante did in the first leg. Fortunate to stay on the pitch after lunging into a dangerous tackle on Yacine Brahimi before the break. (6/10)
Juan Bernat: Much like Rafinha on the other side of the pitch, Bernat was given the freedom to attack as often as possible on the left wing. Caused problems with his pace and trickery in a fine performance. (8/10)
Midfield
Xabi Alonso: The Spaniard produced a performance slightly out of the ordinary as he pressed the Porto players and displayed an energy not seen from many players his age. Proved to be the perfect partner for Thiago, who benefited from his excellent passing and defensive efforts. (8/10)
Thiago Alcantara: The midfielder's best performance as Bayern player. Pep Guardiola has shown faith in him since his return from injury, and he proved his worth with a display full of clever passing, positive running and trickery. Opened the scoring with a powerful header. (9/10)
Philipp Lahm: The captain's contribution is unlikely to steal many headlines, but he played an important role in the win. Covered a lot of ground out wide in the first half before tucking inside to control the midfield after the break. (7/10)
Mario Gotze: The target of a lot of criticism following the first leg, Gotze produced a fine response as he offered an option out wide for most of the first half and caused problems with his clever runs cutting inside. (8/10)
Attack
Robert Lewandowski: A constant thorn in the side of the Porto defence with his strength and impressive positional play. Took both of his goals well and led the line superbly. (8/10)
Thomas Muller: An all-action performance from the forward as he chased down lost causes and dropped deeper to link up with the midfielders. Set up two goals for his strike partner and deserved the luck which handed him his own goal. (8/10)
Substitutes
Sebastian Rode: Replaced the injured Rafinha in a reshuffle and he came close to finding the net with an effort which was blocked by Maicon. (6/10)
Mitchell Weiser: Sent on in the closing stages, but barely involved as Bayern eased to the win. (5/10)
Dante: Replaced Thiago in the final minute of normal time as Guardiola took the chance to use all three changes late on. (5/10)
PORTO
Goal
Fabiano: Given very little chance with five of the goals, but certainly should have kept out Muller's strike after a deflection had slowed the effort down. (5/10)
Defence
Diego Reyes: Struggled to cope with the movement of Gotze for 33 minutes before being forced off with a knock. (4/10)
Maicon: Showed a willingness to fight for his side when Porto were on the back foot, but he couldn't keep tabs on Lewandowski. (6/10)
Ivan Marcano: Dragged out of position on a number of occasions by Muller's clever running and a poor performance finished with a second yellow card in the closing stages. (4/10)
Bruno Martins Indi: One of the heroes from the victory in the first leg, but he never looked comfortable at left-back as the threat of Lahm and Rafinha took its toll. Often appeared unsure about who he should mark. (5/10)
Midfield
Hector Herrera: The Mexican was one of the few positives for the visitors. Pushed forward with the ball at his feet and most of the Porto attacks started with him. (6/10)
Casemiro: Missed a couple of tackles in the opening minutes and the Brazilian never managed to recover. Trusted to protect the visiting defence, but forced to leave his post due to the intelligent play of Thiago. (5/10)
Oliver Torres: Unable to provide the energy in midfield Porto benefited from in the first leg. Drifted in and out of the game and was caught out of position on too many occasions. (5/10)
Yacine Brahimi: Played a key role in Porto's improvement in the second half, but he was nowhere to be found when Bayern were running riot in the opening 45 minutes. Replaced midway through the second half. (5/10)
Ricardo Quaresma: Unrecognisable from the player who caused Bayern so many problems in a two-goal display in the first leg. Lucky to avoid a red card after raising his hand to Bernat's face and he was removed at the break. (3/10)
Attack
Jackson Martinez: The biggest victim of Bayern's dominance in midfield. Left isolated despite battling impressively against Bayern's central defenders. Scored his side's goal and almost added a second with a fine effort from the edge of the box. (6/10)
Substitutes
Ricardo: Replaced Reyes in the first half, and followed his teammate by struggling to follow the movement of Gotze and Bernat. (5/10)
Ruben Neves: Sent on for the ineffective Quaresma at the break but the 18-year-old found it difficult to get involved on a regular basis. (5/10)
Evandro: Given over 20 minutes to make an impact, but the Brazilian barely had a kick for long spells as Bayern remained comfortable. (4/10)