
Second-placed Real, who scored through Vinicius Jr, Eder Militao and Marco Asensio, maintained their slim title chances by moving up to 56 points – six behind leaders Barcelona, who travel to Athletic Bilbao tomorrow.
Espanyol, who remain 13th, opened the scoring in the eighth minute, as Joselu lashed the ball into the top corner past goalkeeper Thibaut Courtois following Ruben Sanchez’s cross from the right flank.
Real stepped up the pressure as they sought a leveller, with Eduardo Camavinga getting a shot on target, before Vinicius showed his individual skill in the 22nd minute to cut into the box, beat two defenders and rifle in.
With Espanyol pinned back in their own half, the home side took the lead six minutes from halftime as Militao scored with a bullet header after Aurelien Tchouameni put in a cross with the outside of his foot.
Real continued to press after the break and Rodrygo almost scored their third with a freekick effort that cannoned off the crossbar in the 75th minute.
Asensio smashed in a third in added time to wrap up the win for Real, who had dropped points in draws with rivals Atletico Madrid and Real Betis in their last two league games.