Real Madrid turned up the heat on their La Liga title rivals with James Rodriguez scoring twice, including a stunning volley, in a 4-0 win at Granada.
However, Barcelona followed up last weekend's 3-1 defeat at Real with another reverse on Saturday that cost them the lead in La Liga, squandering a host of chances to lose 1-0 at home to Celta Vigo.
Barca forward Neymar hit the crossbar twice and teammate Lionel Messi did likewise once before hesitation in the defence let in forward Joaquin Larrivey to score 10 minutes after halftime at the Nou Camp.
Champions Atletico Madrid stayed hot on the heels of their neighbours thanks to an Antoine Griezmann double and goals from Mario Mandzukic and Raul Garcia which secured a 4-2 win at home to Cordoba.
Real are top on 24 points from 10 matches, two ahead of Barcelona and Sevilla, who have played one game fewer.
Atletico are second on 23 points from 10 games, and Valencia have 20 in fifth before their match at Villarreal on Sunday.