• Barcelona hold off Bayern to reach final for first time since 2011
• Medhi Benatia's first UEFA Champions League goal gives Bayern early lead
• Neymar notches twice (15, 29) to put Barcelona back in charge
• Robert Lewandowski (59) and Thomas Müller (74) score to end visitors' 18-match unbeaten run
• The final will take place at Berlin's Olympiastadion on 6 June
FC Barcelona will play in the European Cup final for the eighth time after some devastating attacking interplay in the first half at FC Bayern München proved crucial.
With just a 4.8% chance of turning round a 3-0 first-leg deficit, Bayern made the perfect start as Medhi Benatia headed them in front in the seventh minute. With home anticipation rising, however, Neymar rounded off a clinical Barcelona attack to level and his second of the night in the 29th minute effectively ended the contest. Robert Lewandowski equalised on the night and Thomas Müller's 74th-minute strike halted Barça's 18-game unbeaten streak in all competitions – but the Blaugrana will be in Berlin on 6 June seeking their fifth European title and fourth in nine years.
Having conceded three times in the closing 14 minutes of last week's semi-final opener, Bayern had it all to do and their task nearly became insurmountable within five minutes as Daniel Alves's lofted pass set Ivan Rakitić free. Manuel Neuer was down to his right to push the attempt away.
Bayern, though, were quick to threaten themselves, breaking at pace following a visiting corner. Müller's cross picked out Thiago Alcántara for a shot that Gerard Piqué blocked, yet the home side soon had the early goal they craved. Xabi Alonso's deep corner found Benatia in space near the penalty spot and Marc-André ter Stegen could not keep the header out.
If the Munich fans were daring to hope, their mounting optimism was abruptly crushed in the 15th minute. Lionel Messi had registered twice and set up the other goal at the Camp Nou and his threaded ball unlocked the Bayern defence. Luis Suárez might have scored himself but opted to square for Neymar to tap in.
Bayern were visibly deflated although they continued to push forward, Ter Stegan clawing away Müller's header and then saving from Lewandowski before Thiago fed Müller for an effort that was straight at the goalkeeper. It was far from one-way traffic, however, Neymar playing in Messi for a strike that Neuer held. Even so, Barcelona were ahead on the night a minute before the half-hour.
Again Messi sprang the defence, this time flicking on a long pass forward to send Suárez racing through. Again the Uruguayan was unselfish, playing in Neymar; once more the finish was unerring.
To their credit, Bayern heads did not drop, Ter Stegen tipping over Bastian Schweinsteiger's header before a sensational stop from the goalkeeper denied Lewandowski after the ball had broken to the Poland forward inside the box. Ter Stegen, falling the wrong way, stuck out a hand to half-block the shot, then recovered quickly to push the loose ball away on his goal line.
Had that gone in, perhaps the match would not have been quite so becalmed as the second half began, Juan Bernat flashing a drive past the post. Bayern did strike again, Lewandowski showing neat footwork on the edge of the area before curving his attempt inside the post.
Müller then hooked wide, though Bayern were unable to establish a firmer grip on proceedings until their No25 curled in with 16 minutes remaining. That gave the German champions victory on the night, but the celebrations at the final whistle belonged to Barcelona.
Neymar, Lionel Messi and Luis Suárez emerge for the warm-up
Medhi Benatia heads Bayern into an early lead
Bayern's Medhi Benatia celebrates after opening the scoring in the seventh minute
Neymar (No11) levels for Barcelona
Neymar is mobbed after scoring his and Barcelona's first goal
Thomas Müller reacts as Bayern go close
Neymar makes it Bayern 1-2 Barcelona
Neymar after scoring his second goal of the night
Josep Guardiola reacts during the first half
Marc-André ter Stegen makes a fine save to deny Robert Lewandowski
Bayern's Robert Lewandowski accepts the plaudits after making it 2-2
Thomas Müller curls in to put Bayern 3-2 up
Thomas Müller after scoring the goal that gave Bayern victory