Paris Saint-Germain are level with Barcelona at 2-2 after a pulsating Champions League quarter-final first leg at the Parc des Princes.
The hosts were quickly on the attack and went agonisingly close to an opening goal through Ezequiel Lavezzi early on.
The Argentine forward wriggled clear of Javier Mascherano but saw his effort hit the post under a challenge from Sergi Busquets.
David Beckham was heavily involved and crossed for Alex to head wide from a corner as PSG continued to carry a threat.
Javier Pastore and Zlatan Ibrahimovic both forced Victor Valdes into good saves from distance as Barca struggled to cope with the home side's pressing style.
Barca slowly began to control possession as the half wore on, with Andres Iniesta and Alexis Sanchez both testing Salvatore Sirigu.
Ten minutes before the break Messi latched onto an incisive pass from Dani Alves before slotting home at the far post for his 57th goal of the season.
Messi then curled a clever strike just over from 18 yards as Barca controlled the closing stages.
Just before the interval Messi pulled up with a hamstring problem as Barca saw out stoppage time with their star man struggling for fitness.
Cesc Fabergas replaced Messi at the break as both sides continued to press the action in an entertaining contest.
Mascherano and Blaise Matuidi both picked up yellow cards that rule them out of the second leg, before the Argentine was forced off with a painful injury.
With 15 minutes left PSG equalised when Ibrahimovic reacted quickest to tap home after Thiago Silva's strike came back off the post.
In the 88th minute Barca were handed a chance to reclaim their lead when Sirigu conceded a penalty after bringing down Sanchez.
With Messi on the sidelines, Xavi stepped up to take the spot kick and made no mistake with a cool finish into the bottom corner.
PSG surged forward in stoppage time and equalised for a second time when Matuidi's strike took a deflection and drifted past Valdes at his near post in what was the last kick of the match.