Espanyol celebrateImage source, Getty Images
Image caption,

Espanyol have won three of their last six home games against Real Madrid in La Liga

Espanyol pulled off a stunning victory over Real Madrid, who missed an opportunity to move four points clear at the top of La Liga.

After soaking up huge amounts of pressure, the home side caught Carlo Ancelotti's side on the counter-attack and Carlos Romero slotted beyond Thibaut Courtois at the back post in the 85th minute.

Real thought they had taken the lead in the first half when Vinicius Jr curled beautifully into the far corner, but Kylian Mbappe was deemed to have committed a foul in the build-up.

Rodrygo came closest to breaking the deadlock for Real in the second half when he jinked inside before prodding an effort off the post as home keeper Joan Garcia dived on the ball.

Minutes later, Garcia made his seventh and best save when he tipped Mbappe's effort wide as it arrowed towards the far corner.

The Real bench were also incensed when Romero only received a yellow card for a calf-high challenge on the back of Mbappe, with the Spanish defender scoring the winner 24 minutes later to move his side out of the bottom three.

Real, who face Manchester City in the Champions League play-offs on 11 February, had a concern too on the fitness of Antonio Rudiger after the German defender was replaced with a suspected hamstring injury in the first half.

Ancelotti's side pushed for an equaliser in the final moments as goalkeeper Courtois came up for a corner, but Espanyol held firm to hand Real their third defeat of the season and end a four-game winning streak.

Second-placed Atletico Madrid enjoyed a 2-0 home win over Mallorca to move within a point of Real, who they visit next Saturday in the Madrid derby.

Player of the match

Number: 5 Fernando Calero
Average rating 8.64
Number: 5 Fernando Calero
Average Rating: 8.64
Number: 31 Antoniu Roca
Average Rating: 8.58
Number: 2 Roberto Fernández
Average Rating: 8.39
Number: 10 Pol Lozano
Average Rating: 8.29
Number: 19 Urko González
Average Rating: 8.24
Number: 7 Javi Puado
Average Rating: 8.24
Number: 17 Jofre Carreras
Average Rating: 8.21
Number: 20 A. Král
Average Rating: 8.17
Number: 12 Álvaro Tejero
Average Rating: 8.17
Number: 22 Carlos Romero
Average Rating: 8.13
Number: 9 A. Véliz
Average Rating: 8.08
Number: 23 O. El Hilali
Average Rating: 7.89
Number: 1 Joan García
Average Rating: 7.74
Number: 6 L. Cabrera
Average Rating: 7.68
Number: 4 M. Kumbulla
Average Rating: 7.33

After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.