Match reports from La Liga: goals, line-ups, stats and what each result means in the table.
Dean Huijsen's 52nd-minute red card and penalty gave Alejandro Grimaldo the opener, Jonathan David doubled it, and Antonio Rüdiger's late reply wasn't enough at the Metropolitano.
Cucho Hernández put Real Betis ahead just before half-time at Riazor, but Diego Villares levelled it for Deportivo in the 87th minute to make it 1-1.
Valencia twice pulled level through Aaron Mayol and an own goal, but Ander Barrenetxea's 90+1' strike gave Real Sociedad a 2-3 win at Mestalla.
Ayoze Pérez, Alberto Moleiro and Georges Mikautadze scored either side of an Iván Romero leveller as Villarreal beat local rivals Levante 3-1 at the Estadio de la Cerámica, their second straight league win after four defeats in five.
Iván Azón scored eight minutes from time to give Getafe a 1-0 win over Málaga at the Coliseum, despite the visitors having more of the ball and more corners on the day.
Youssouf Fofana put Sevilla ahead inside 19 minutes at the Sánchez-Pizjuán, but Raphinha answered with a hat-trick — his second in as many matches — as Barcelona came from behind to win 3-1.
Athletic had 69% possession and 24 shots to Alavés's two, including a 70th-minute penalty saved by Antonio Sivera, but the Basque derby at San Mamés finished goalless.
Ante Budimir's acrobatic finish brought up his 100th goal in Spain's top flight, but Sergio Camello equalised after the break as Rayo Vallecano held Osasuna to a 1-1 draw at El Sadar.
Hugo González's penalty and a Pablo Durán brace were among five unanswered goals as Celta Vigo beat Racing Santander 5-0 at Balaídos, their first win in six league games this season.