Girona's Valentin Castellanos became the first player to score four in a La Liga game against Real Madrid this century as they secured a stunning 4-2 win over Carlo Ancelotti's side whose faint title hopes were dealt another blow.

With seven games to play, second-placed Real Madrid have 65 points and are 11 behind Barcelona, who will face tenth-placed Rayo Vallecano on Wednesday.

The hosts stunned Real with their first goal 12 minutes into the match as an unmarked Castellanos headed in from close range following a cross from Miguel Gutierrez.

Girona doubled their lead 12 minutes later when Castellanos latched on to a long ball, worked his way into the box and fired low beneath Real keeper Andriy Lunin.

Real's Vinicius Jr reduced the deficit in the 34th minute when he was left unmarked at the far post to head in Marco Asensio's cross.

Castellanos scored his third goal 36 seconds into the second half, sweeping home a right-footed half-volley after Real's defence gave him space in the box.

The 24-year-old Argentine was left alone inside the box again and headed in his fourth goal of the evening, and his 11th in La Liga this season, in the 62nd minute, before being substituted 10 minutes later.

Real's Lucas Vazquez scored a consolation goal from close range in the 85th minute.