The Catalan giants, who have stretched their unbeaten league record to 40 matches, had Sergi Roberto sent off in the second half of the clash while 2-1 ahead, and Iago Aspas struck in the 82nd minute to level the scores in Vigo.
Centre-back Yerry Mina featured for just the second time in La Liga, while Thomas Vermaelen and Lucas Digne also came into the XI. Further forward, Ousmane Dembele supported Paco Alcacer as Lionel Messi and Luis Suarez were both named on the bench.
Barcelona had the game's first chance in the fifth minute when Digne picked out the head of Paulinho with a brilliant cross, but the Brazilian sent the ball wide of the post.
Denis Suarez was next to come close for the visitors in the eighth minute following a brilliant pass from Coutinho, with the Spaniard just whipping his effort wide of the Celta goal.
Celta had a golden opportunity to make the breakthrough in the 11th minute when Maxi Gomez met a low cross from Aspas, but Ter Stegen was on hand to make a super save.
The home side continued to threaten in the period that followed, with Daniel Wass, who was operating at right-back, given the freedom of the Barcelona box on more than one occasion.
Paulinho thumped a header against the Celta post in the 25th minute as Barcelona came close, before Brais Mendez just clipped the outside of the post down the other end following a quick counter-attack.
Mendez again came close in the 34th minute as the attacker's effort was clawed away by Ter Stegen, who did not have too much protection from the Barcelona defence.
It was the visitors that made the breakthrough in the 36th minute, however, when Dembele found the bottom corner with a brilliant half-volley for his first La Liga goal.
Barcelona almost doubled their advantage late in the first period when Coutinho found Paulinho with an excellent cross, but Celta defender Jonny managed to clear over his own crossbar at the vital moment.
Jonny was heavily involved in the first period, and the left-back ensured that Celta would enter the half-time break on level terms when he converted a low Maxi Gomez cross moments before the whistle.
Denis Suarez brought a smart save from Celta goalkeeper Sergio Alvarez in the early stages of the second period, before Jozabed just curled the ball wide down the other end of the field.
Messi came off the Barcelona bench on the hour alongside Roberto, and the visitors were ahead just four minutes later when Paulinho turned a low Nelson Semedo cross into the back of the net.
Barcelona were reduced to 10 men in the 71st minute, however, when Roberto was handed a straight red card for pulling back Aspas, who was through on goal. The resulting free kick came from Aspas, and the ball just missed the Barcelona goal.
Emre Mor hit the side-netting for the home side 10 minutes from time, but Celta were level in the 82nd minute when the substitute's low cross was turned into the bottom corner by Aspas.
The hosts pressed for a third in the latter stages, and had a golden chance when Aspas released Lucas Boye inside the Barcelona box, but Ter Stegen made a huge save before Digne cleared his lines.
CELTA VIGO (4-3-3): Alvarez; Wass, S.Gomez, Roncaglia, Jonny; Lobotka, Mendez (Boye 85'), Jozabed (Radoja 72'); Aspas, M.Gomez, Sisto (Mor 79')
BARCELONA (4-3-3): Ter Stegen; Semedo, Mina, Vermaelen, Digne; Gomes (Roberto 60'), Paulinho, D.Suarez; Dembele (Vidal 78'), Alcacer, Coutinho (Messi 60')