The home side kicked off the match with their usual passing flair and did keep the Scottish champions under intense pressure and almost went ahead in the second minute with an Alexis Sanchez attempt but with Forster well beaten the ball drifted wide.
Jordi Alba floated another inviting ball in the ninth minute but both Sanchez and Pedro were nowhere to tap it in as another chance went begging and the visitors read the writing and defended well as they started settling well in the game.
Against the run of play, Celtic won a free kick on the right flank and Charlie Mulgrew stepped forward to take it. He picked out Giorgios Samaras whose header was heavily deflected past Victor Valdes by Javier Mascherano for the opener.
The Greece international however had to be withdrawn after 42 minutes with what looked like a serious injury when he twisted his left ankle under the challenge of Adriano. He was replaced by James Forrest.
Two minutes after Samaras’ withdrawal, Barcelona got their equaliser. Lionel Messi initiated a fine string of short passes with Xavi Hernandez who picked out Andres Iniesta in the six yard box and the Spanish international beat Forster with a first time shot to ensure the teams go to the break at par.
The Catalans continued with the pressure in the second half but Fraser Forster, in inspiring form denied them in at least four point blank situations while David Villa also hit the post on 90 minutes in a frustrating second half for the home side.
Just when Celtic felt they had squeezed a point off the Spanish giants, Jordi Alba stole in behind the Celtic defenders to tap in a volleyed cross by Adriano for the winner in the third minute of added time.
Despite the loss, Celtic remains second with four points while Barcelona stretch their lead of the group to nine points after three wins out of three.