Real Mallorca spoiled Frank Rijkaard's last home game with Barcelona, as they came back from two goals down to beat the Catalans 3-2 at Nou Camp.
Barca were 2-0 up on the hour mark, thanks to goals from the in-form Thierry Henry and Samuel Eto'o.
However, the visitors made a remarkable comeback as Borja Valero and Pierre Webo leveled the scoring, before the Primera Liga top scorer Daniel Guiza snatched an injury time winner with his 26th of the season.
Barca are now in danger of losing third place to Atletico Madrid after the latter's 1-0 victory over Deportivo Lacoruna made them level on 64 points with Rijkaard's team.
Elsewhere, champions Real Madrid played out a 2-2 draw at Real Zaragoza, who are on the verge of relegation.
Villarreal cemented their second place with a 2-0 home victory over Espanyol.
نرشح لكم
مانشستر يونايتد يتحرك لتلبية أولى مطالب أموريم
بدأت بصناعة حكيمي.. باريس سان جيرمان يسحق تولوز بثلاثية
الهاتريك الثامن.. هاري كين يقود بايرن ميونيخ لسحق أوجسبورج
دي زيربي يوضح حقيقة رحيله عن مارسيليا: لم أغادر أوكرانيا عندما قصف بوتين مدينة كييف
ميسي: أفتقد برشلونة حيث قضيت حياتي.. والفريق مذهل لهذا السبب
هالاند: جوارديولا أفضل مدرب على وجه الأرض.. وهذا ما يميزه وأردت التوقف الدولي
مؤتمر أرتيتا: غياب بن وايت لعدة أشهر.. وعودة ساكا ورايس للتدريبات
مؤتمر فليك: لامين يامال لن يلعب ضد سيلتا فيجو.. ولا أريد أن أدرب برشلونة لـ10 أعوام