Cristiano Ronaldo scored twice as Real Madrid beat Athletic Bilbao 4-2 in a thrilling match at the Bernabeu to move within a point of leaders Barcelona in La Liga on Saturday.
Barca, at home to Celta Vigo on Sunday, have 54 points, Real are on 53 and Atletico Madrid 51 before their trip to Getafe on Sunday.
Valencia handed coach Gary Neville his first La Liga win when they beat Espanyol 2-1.
Hosts Valencia fought their way back from Oscar Duarte's opening goal for fourth from bottom Espanyol with strikes from Alvaro Negredo and Denis Cheryshev in the final 19 minutes.
"The fans were amazing, above all when we went behind they stuck with us," said former England and Manchester United defender Neville.
"When Espanyol scored we responded with better play and that's because of how the fans supported the team. We knew that it was going to be a night of emotion."
Real made a blistering start and Ronaldo opened the scoring after three minutes, attacking into the box from the left, cutting inside Xabier Etxeita and beating Gorka Iraizoz for his 15th goal in 14 matches.
Athletic replied in kind, hitting Real with a string of counter-attacks and were on level terms seven minutes later when midfielder Javier Eraso pounced on a poor back pass from Raphael Varane to Keylor Navas and made the most of the gift.
James restored Real’s lead in the 37th with a ferocious shot from the edge of the edge of the box that the Colombian, who has struggled for form and goals, celebrated with clenched fists.
Real led by two goals at halftime after Toni Kroos scored from Ronaldo’s pass in first-half added time.
“If it had been 1-1 at the break, it would have been possible to get a good result. When we were at our best, they scored two goals,” Eraso told reporters.
Athletic were equal to Real in the first half and Aritz Aduriz hit the bar in the 28th minute but the home side controlled play after the interval and cruised to victory.
The home side had Varane sent off for a second booking after he elbowed striker Aduriz for the second time in the match as they went for a high ball.
The match ended in a flurry with Ronaldo scoring his 21st league goal in the 87th, Iraizoz denying him a hat-trick with a save a minute later and Athletic pulling one back with substitute Gorka Elustondo’s header in added time.