Barcelona suffered their biggest La Liga defeat under Luis Enrique as Celta Vigo ended the champions’ 100% record in the league this season.
Former Liverpool forward Iago Aspas scored twice after Nolito opened the scoring against his former club.
Neymar pulled one back for Barca with 10 minutes remaining, before ex-Manchester City and Stoke striker John Guidetti netted a fourth for the hosts.
Barcelona had lost only one of their previous 25 matches in La Liga.
Victory took Celta briefly top of the table, but Real Madrid replace them after beating Athletic Bilbao later on Wednesday.
Haba!!! Messi, what hath thou looketh?