Pada pertandingan lain, Atletico Madrid menang dramatis lewat dua gol pada delapan menit terakhir atas Osasuna. Mereka bertahan di puncak klasemen, unggul dua poin atas Real Madrid yang menang atas Athletic Bilbao, demikian catatan laman resmi Liga Spanyol.
Barcelona langsung mencoba mengontrol permainan sejak pertandingan dimulai, tetapi lebih sering memainkan bola di wilayah sendiri.
Peluang pertama tercipta pada menit ke-10, saat Lionel Messi meloloskan diri dan mengoper ke Antoine Griezmann. Penyerang timnas Prancis itu melepaskan tembakan, tetapi bisa dihalau kiper Ivan Villar.
Kini giliran Griezmann yang memberikan peluang bagi Messi tujuh menit kemudian.
Operannya diterima Messi di tepi kotak penalti dan diselesaikan dengan sepakan melengkung, sayangnya bola masih meluncur ke atas gawang.
Tak lama berselang, Messi menusuk setelah melakukan umpan satu-dua dengan Griezmann. Namun, tembakan La Pulga lagi-lagi masih melambung.
Pada menit ke-28, Barcelona mencetak gol lewat tandukan Lionel Messi setelah menerima umpan brilian Sergio Busquets.
Baca juga: Koeman akui bakal kehilangan pekerjaan usai timnya ditahan Levante
Celta mampu menyamakan kedudukan di menit ke-38. Santi Mina melepaskan tembakan dari depan kotak penalti, yang gagal diblok Gerard Pique dan tak terbaca oleh Marc-Andre ter Stegen.
Barcelona mencoba mengancam Celta, tetapi tim tamu tak memberikan banyak celah. Babak pertama tuntas 1-1.
Tim tuan rumah melanjutkan tekanan dan menciptakan situasi bagus di menit ke-51. Umpan silang Ousmane Dembele gagal disapu dengan sempurna oleh Villar dan bola dikuasi Riqui Puig.
Geladang asal Spanyol tersebut mencoba menembak, tetapi terhalang oleh Nestor Araujo.
Pada menit ke-61, Messi melayangkan umpan dan diteruskan Pique ke arah Ronald Araujo yang coba menyonteknya ke dalam gawang. Namun, upayanya melambung.
Pada menit ke-67, Barcelona memberikan ancaman lewat tusukan Dembele di kanan sebelum melepaskan tembakan yang bisa dihalau oleh Villar.
Serangan dari Celta di menit ke-71. Umpan Brais Mendez diterima Denis Suarez di dalam kotak penalti dan tembakannya masih bisa ditepis Ter Stegen.
Terus mendesak Celta, Barcelona malah harus bermain dengan sepuluh orang pada menit ke-83.
Aksi ceroboh Clement Lenglet yang menabrak Mina dari belakang membuatnya mendapatkan kartu kuning kedua.
Baca juga: Menang dramatis atas Osasuna, Atletico Madrid tetap puncaki klasemen
Tim tuan rumah menciptakan peluang mencetak gol melalui aksi Messi pada menit ke-85, tetapi tembakannya bisa ditahan oleh Villar.
Serangan balik dari Barcelona nyaris berbuah gol. Alba merangsek di kiri dan mengirim umpan silang yang disontek oleh Martin Braithwaite, tetapi masih melebar
Barcelona kebobolan pada menit ke-89. Berawal dari umpan silang Solari dari kanan melambung melewati atas Ter Stegen dan nyaris masuk ke gawang, tetapi kemudian mengenai tiang dan gagal dipotong oleh Ronald Araujo sehingga disambar Santi Mina ke dalam gawang. Skor 2-1 untuk tim tamu.
Beberapa percobaan Barcelona masih gagal untuk menyamakan kedudukan dan pertandingan dimenangkan oleh Celta Vigo.
Susunan pemain:
Barcelona (3-1-4-2): Marc-Andre ter Stegen; Ronald Araujo, Gerard Pique (Sergino Dest 64'), Clement Lenglet; Sergio Busquets; Ousmane Dembele (Trincao 70'), Ilaix Moriba, Pedri (Riqui Puig 46'), Jordi Alba; Antoine Griezmann (Martin Braithwaite 70'), Lionel Messi
Celta Vigo (4-4-2): Ivan Villar; Kevin Vazquez, Carlos Dominguez, Nestor Araujo, Aaron Martin; Fran Beltran (Hugo Sotelo 93'); Brais Mendez, Denis Suarez, Nolito (Solari 69'); Iago Aspas (Miguel Baeza 78'), Santi Mina.
Baca juga: Menang atas Bilbao, Real Madrid tetap bertarung hingga pekan terakhir
Baca juga: Sebagian laga dua pekan akhir Liga Spanyol boleh dihadiri penonton