Bayern Munich overturned a two-goal deficit for the first time in a Champions League tie and thrashed Porto 6-1 at the Allianz Arena to reach the semi-finals with a 7-4 aggregate win.
Trailing 3-1 from the first leg, five goals in 26 first-half minutes firmly shifted the tie in favour of the Bundesliga side, as strikes from Thiago Alcantara, Jerome Boateng, two from Robert Lewandowski and Thomas Muller’s deflected effort equalled Porto’s tally before surpassing it.
Jackson Martinez reduced the arrears on 73 minutes, and missed a glorious chance to set up what would have been a grandstand finish, before their hopes of an unlikely comeback were dashed when Ivan Marcano picked up a second yellow card and Porto ended the game with 10 men.
Xabi Alonso ensured Bayern would have the last word by converting the resulting free kick two minutes from time, as the 2013 champions booked their place in the hat for Friday's semi-final draw in Nyon and ended Porto's unbeaten run in this season's competition.
Porto's wait for a first semi-final since their trophy-winning campaign in 2004 continues while Bayern sealed a fourth-consecutive semi-final appearance in Europe’s elite club competition.
Pep Guardiola dropped Brazilian centre-back Dante to the bench after a number of costly errors in the first leg, with Holger Badstuber filling in at the back.
Porto manager Julen Lopetegui was forced into two changes after full-backs Danilo and Alex Sandro were suspended. Diego Reyes, who made only his third appearance of the season, joined Dutch international Bruno Martins Indi in the starting line-up.
The hosts dominated from the first whistle and went close early on when Lewandowski steered Muller’s saved effort onto the frame of Porto’s goal.
The reprieve was short-lived as Thiago, who scored Bayern’s away goal at the Estadio do Drago last week, headed Juan Bernat’s cross from the left home from close range on 14 minutes.
It was 2-0 just eight minutes later as Badstuber headed Alonso’s corner back across the face of goal for Boateng to head desperately past the reach of Porto keeper Fabiano to erase Porto’s first-leg lead.
Lewandowski soon had Bayern in front in the tie, as he headed low past Fabiano just before the half-hour mark after great work from Philipp Lahm and Muller to keep the ball in play down the right channel.
Bayern then got a fortuitous fourth as Muller's ambitious strike from 25 yards took a wicked deflection off Martins Indi before trickling though Fabiano’s legs on 36 minutes.
Lewandowski completed the turnaround with his second five minutes before the interval, drilling low to the left-hand side of the goal after great footwork to fashion a sight of the target.
Bayern’s stunning first-half display almost ended on a sour note as Badstuber was booked by referee Martin Atkinson for a lunge on Ricardo Quaresma, although it may have warranted a red.
Lopetegui altered his formation at the break and, allied with Bayern easing the pressure to an extent, Porto began to enjoy a larger share of possession.
Having struggled to penetrate the resolute Bayern backline, substitutes Ricardo and Evandro finally produced a quality attack down the right before the latter squared for Martinez to nod home from close range on 73 minutes as Bayern conceded their first goal at home in this season's competition.
The Colombian then missed the chance to move his side to within a goal of Bayern as he dragged a shot wide of the goal after neat footwork to create the chance.
The night went from bad to worse for Porto as Marcano was sent off for a foul on Thiago, and manager Lopetegui was sent to the stands for his protest, before Alonso sealed Bayern’s passage to the last four with a delightful curling free-kick.