Diego Costa netted the only goal of the game as Atletico kept the pace at the top to sit three points below Real, who earlier beat Malaga by the same scoreline.
Despite a late onslaught, the visitors could not find an equaliser and the defeat leaves them ninth after just one win in their last four league games.
The home side began to enjoy the majority of possession in the opening exchanges but it was Espanyol that had the first real chance to go ahead.
Christian Stuani came close to opening the scoring as he had a go at the Atletico goal with a good effort just inside the penalty box, but in the end goalkeeper Thibaut Courtois made a comfortable save.
Filipe Luis Kasmirski had a chance for the home side, forcing a save from Francisco Casilla, and he put in a good cross minutes later as the home started to dominate, but no one was on hand to put it to bed.
After 13 minutes Casilla managed to hold out two close Atletico efforts. First keeping out David Villa's header with a brilliant save as he tipped the ball around the post and then holding out Jose Sosa's resulting corner as the home side pressed for an opener.
Sergio Garcia forced a fantastic save from Courtois at the other end of the pitch as the first half wore on, moments before Villa came close with another header for the home side.
Atletico began the second half well and they went ahead 10 minutes in after Diego Costa picked up Villa's cross from the left and made no mistake as he curled it into the bottom of the net from 12 yards out for his 29th goal of the season.
David Lopez could have equalised for Espanyol just after the hour mark, but his powerful effort from just outside the penalty box was parried to safety by Courtois.
The visitors were not giving up and came close with further chances from Garcia and Lopez as they tried to break the deadlock.
Both sides pressed for a goal as the match began to draw to a close, but neither were able to make a difference to the scoreline late on.