Luka Modric scored a stunning goal to help send Real Madrid second in La Liga as they ended a run of three games without a win against a battling Girona.
Rivals Barcelona occupy top spot with Real second on goal difference, and Atletico Madrid a point adrift in third.
With England midfielder Jude Bellingham watching on from the stands after receiving a red card in the draw with Osasuna, Modric opened the scoring by controlling the ball on his chest and smashing a half-volley past Girona goalkeeper Paulo Gazzaniga from 25 yards.
Vinicius Junior wrapped up the three points with a composed finish after being played through on goal by Kylian Mbappe in the 83rd minute.
Before Modric’s wonderful strike, former Manchester United midfielder Donny van de Beek forced Real keeper Thibaut Courtois into a fine one-handed save after he latched on to Arnaut Danjuma’s flick.
In the second half, Lucas Vazquez had Gazzaniga desperately diving across his goal but his powerful strike drifted inches wide of the post.
Danjuma missed a huge opportunity to level for the visitors when he was played through in the 56th minute but he curled the ball wide of Courtois’ near post.
Two minutes later, Vinicius collected the ball on the left, drifted into the centre and thundered a shot off the bar, before he sealed victory with his late strike.
The Real faithful were happy to welcome back defender David Alaba – the Austrian started his first game in 434 days after recovering from an anterior cruciate ligament (ACL) injury.
Up next for the European champions is a trip to San Sebastian on Wednesday when they take on Real Sociedad in the Copa del Rey semi-finals.