tactical plan to play three at the back nearly proved costly.
Bayern’s intense pressing was forcing Barca to play long more than they are accustomed to, but it nearly worked to perfection when Messi’s headed flick-on sent Luis Suarez clear behind the Bayern defence after 12 minutes.
Neuer, though, stood up brilliantly to divert the Uruguayan’s effort to safety with an outstretched right leg.
Suarez turned provider for the next opening as his low cross picked out Neymar only for his goalbound effort to strike Rafinha and deflect behind.
The visitors then had a huge chance of their own as Thomas Mueller picked out the unmarked Robert Lewandowski, but the Polish international — who was playing with a protective facemask after suffering a broken nose and cheekbone just last week — sliced his effort wide.
Neuer came to Bayern’s rescue again six minutes before the break, spreading himself to deny Dani Alves as he latched onto Andres Iniesta’s through ball.
Bayern started the second period the brighter, but it was once again Neuer who was the busiest goalkeeper as he handled a driven shot with Messi after a neat one-two with Neymar.
The two combined once more moments later but Neymar just couldn’t bring Messi’s lofted pass under control and Neuer galloped from his line to clear the danger.
However, Messi was not so forgiving when offered room on the edge of the area for the first time as he fired past Neuer at his near post 13 minutes from time.
Three minutes later he produced an even more sublime finish as the Argentine received Alves’s pass and left Jerome Boateng stumbling to the ground before dinking the ball over the advancing Neuer on his weaker right foot.
Suarez should have made it 3-0 moments later when he raced onto Neymar’s through ball but blazed wildly over.
Yet, Neymar was cooler when bearing down on Neuer in stoppage time from Messi’s pass as this time he found the back of the net and all but secured Barca’s passage to the final in Berlin early next month.
The other semi-final first leg played Tuesday saw Juventus claim a 2-1 lead over Real Madrid.