Javier Aguirre's Zaragoza also claimed their third consecutive victory, Florent Sinama Pongolle completing a 2-1 comeback win at Malaga.
Levante, who started the weekend bottom of table, were 2-0 winners at home to Getafe and Real Sociedad sank Almeria 2-0.
Deportivo La Coruna scored an 89th-minute equaliser to earn a dramatic 3-3 draw against 10 man Sevilla, who had previously come from two goals down to lead 3-2 going into the final moments of a thrilling encounter at the Riazor.
Watch Eurogoals One to One with Xavi on Monday at 19:15 on British Eurosport
Follow live text commentary on these games this week: Hercules v Barcelona; Deportivo v Sevilla; Osasuna v Real Madrid; Espanyol v Villarreal