Manuel Neuer kept the record German champions in the game with a string of exceptional saves, but Barcelona went up a gear after the break, with Lionel Messi scoring twice and Neymar Jr adding his name to the scoresheet to settle an absorbing encounter in the La Liga leaders' favour.
Frenetic first half
Pep Guardiola packed the midfield on his first outing back at the club where he won 14 trophies during a four-year spell as head coach. Bayern were pressing high up the pitch, virtually going man-for-man in all areas of the field whilst looking to catch the home side on the break. It was a daring approach, but the Bundesliga champions were almost caught out when Messi’s flicked header sent Luis Suarez clean through. He only had Neuer to beat, but the Bayern stopper made himself big and saved with his outstretched right leg.
Barcelona were beginning to get a grip on the game when Suarez jinked past Jerome Boateng and crossed for Neymar. The Brazilian international must have thought he’d scored, but his first-time effort struck Rafinha and trickled wide with Neuer rooted to the spot. As the game settled, a mistake by Jordi Alba gifted possession to Thomas Müller, whose inviting cross was stabbed wide by the mask-clad Robert Lewandowski. Suarez headed over from an unmarked position at the other end, before Neuer pulled off another fantastic save to deny Dani Alves following a fine ball over the top from Andres Iniesta.
Thiago goes close
Buoyed by a tenacious first-half display, Bayern took the game to the hosts at the start of the second. Lewandowski had his shirt pulled on the edge of the area by Alves, only for Alonso to send the ensuing free kick straight into the Barcelona wall. The pendulum swung back in the home side’s favour as Neuer gobbled up a fierce Messi effort that followed a typically incisive exchange with Neymar. The Brazilian forward was seeing much more of the ball, but didn't anticipate the sweeper-keeper qualities of Bayern's No.1 when played through by Messi.
Neuer watched another Neymar strike sail comfortably over the crossbar, but as the game ticked past the 70-minute mark there were signs that the Bayern players were beginning to tire. After former Borussia Mönchengladbach custodian Marc-Andre ter Stegen made his first save of note to keep out Thiago's deflected strike, Messi profited from a mistake by Juan Bernat to open the scoring with an unstoppable effort that whistled past Neuer at his near post.
The Argentine made it two moments later, leaving Boateng on his back and lifting an audacious effort over the onrushing goalkeeper, before Neymar punished Bayern's high defensive line with a late third to leave Guardiola's men staring down the barrel of a second successive semi-final exit at the hands of Spanish opposition.
Barcelona: Ter Stegen - Alves, Mascherano (Bartra 89'), Pique, Alba - Rakitic (Xavi 82'), Busquets, Iniesta (Rafinha 87') - Suarez, Messi, Neymar
Bayern: Neuer - Rafinha, Boateng, Benatia, Bernat - Lahm, Alonso, Schweinsteiger - Müller (Götze 79'), Lewandowski, Thiago
Goals: 1-0, 2-0 Messi (77', 80'), 3-0 Neymar (90+4')