Lionel Messi scored twice as Barcelona struck three times in the final 13 minutes of the first leg to whisk their Champions League semi-final tie away from a stubborn Bayern Munich side.
The hosts seemed set for a frustrating night before Messi fired a low shot home from the edge of the area.
Three minutes later he raced past Jerome Boateng and dinked home coolly.
Bayern Munich pushed for an away goal and were punished as Neymar scampered clear to slot home in injury-time.