Real Madrid rally to keep heat on Barcelona

Vinicius Junior has sparked Real Madrid to a 3-1 comeback win over Espanyol in the Spanish league, keeping leaders Barcelona within reach before the rivals meet next weekend.

Joselu Mato put Espanyol ahead at the Santiago Bernabeu in the eighth minute.

But Vinicius equalised in the 22nd and Eder Militao headed Madrid in front for good minutes before halftime.

Substitute Marco Asensio added a third goal in stoppage time as Madrid ended a three-game winless run across the league and the Copa del Rey.

Carlo Ancelotti's team reduced Barcelona's lead to six points before the front-runners visit Athletic Bilbao on Sunday (Monday AEDT).

Karim Benzema missed the game as he rested to recover from an ankle problem. Before the game, Ancelotti said he expected his striker to be ready to face Liverpool in the Champions League on Wednesday. Madrid hold a 5-2 advantage from the first leg of the round of 16.

Madrid will then visit Barcelona on March 19 in a clasico that will likely weigh heavily on the title fight.

"It was a game we had to win at any cost," Ancelotti said. "This week is important with the Champions League and the clasico, and now we can face it with good momentum."

Espanyol, who were left in 13th place, took the lead when Joselu scored with a fine touch of his left boot. Joselu became the league's second-leading scorer, along with Getafe's Enes Unal, with 12 behind only Barcelona's Robert Lewandowski (15).

But when Vinicius got going, Madrid never gave Espanyol much of a chance to pull off the upset.

The Brazil forward looked hemmed in by Espanyol when he received the ball on the left side of the area. But a quick change of direction opened up just enough space to thread a shot between four defenders and in off the post.

When Madrid had Espanyol scrambling again, Militao jumped over his marker at the near post to head in a short cross by Aurelien Tchouameni.

Asensio rounded off the win after defender Nacho Fernandez dribbled forward and set him up.

"We were in the match until the final minutes," Joselu said. "We gave it all we had, but Real Madrid shows no mercy."

Last-placed Elche grabbed a point in stoppage time when Tete Morrente scored to draw 1-1 against a Valladolid team that finished with eight players.

Cyle Larin struck in the fourth minute for his fourth goal in seven appearances for Valladolid.

But Valladolid lost their hold on the game when Darwin Machis was injured and had to leave after coach Jose Rojo made all his substitutions.

After Morrente scored, two Valladolid players - Roque Mesa and Martin Hongla - were sent off for second bookings.

Iago Aspas scored his 10th and 11th league goals to lead Celta Vigo to 3-0 over Rayo Vallecano. His second goal was superbly executed by a touch of the outside of his left foot to float the ball over the goalkeeper from a tight angle.

Justin Kluivert's goal in the 74th minute gave Valencia a 1-0 win over Osasuna and helped to lift them out of the relegation zone. Osasuna Sergio Herrera goalie saved a penalty by Hugo Duro in injury time.