Rare draw for Barcelona
Defending champions held by Osasuna; Atletico suffer first defeat
Champions Barca, who visit AC Milan in the Champions League on Tuesday, were held 0-0 at Osasuna. It was the first time they failed to score in a domestic league game in 65 matches since a 0-0 draw at Villarreal in January 2012.
Atletico also lost 1-0 at Espanyol as Real Madrid's record nine straight wins to kick off the 1968-69 campaign remained intact.
Third-placed Real won 2-0 at home to Malaga, Carlo Ancelotti's side closing within three points of leaders Barca ahead of next week's 'Clasico' at the Nou Camp and two points shy of Atletico.
Real won thanks to a goal from Angel Di Maria and a stoppage-time Cristiano Ronaldo penalty, won by world record signing Gareth Bale who was a late substitute.
Barca were unable to breach a well-drilled Osasuna defence in Pamplona and Atletico were thwarted by an Espanyol side who have made a strong start to the season under Mexican coach Javier Aguirre.
The only goal of the game at Espanyol's Cornella-El Prat stadium in Barcelona came in the 54th minute when the ball deflected into the net off the outstretched leg of Atletico goalkeeper Thibaut Courtois.
Argentine Lionel Messi, who had not played since the end of last month due to a thigh strain, came off the bench for the final 25 minutes of Barca's game but not even he could conjure a goal for the champions. "We knew it was going to be tough," said captain Carles Puyol after making his first appearance in almost eight months following knee surgery.
Cesc Fabregas had two golden chances but fluffed an attempted chip before sending a wild shot sailing over the crossbar.
Real warmed up for Wednesday's Champions League game against Juventus with a victory.
It was hardly the sparkling display coach Ancelotti wanted to dispel doubts after some unconvincing performances this term but the Italian was happy about a general improvement from his expensive squad.
"Today I am pleased," Ancelotti told a news conference. "Everyone was focused on defending, we pressed well and recovered possession quickly.
The visitors did well to keep Real at bay until half-time but fell behind in the first minute after the break when Di Maria's whipped cross from the right evaded goalkeeper Willy Caballero's despairing dive before nestling in the back of the net.
Caballero was in inspired form and pulled off a brilliant stop to deny Ronaldo eight minutes from time and made another stunning save to palm away a low shot from substitute Jese two minutes later.
Real winger Bale, who has been out for several weeks with a thigh strain, came on for Alvaro Morata with 15 minutes left, suggesting he could play a part against Juventus. Bale won a penalty when the referee ruled he was fouled by Weligton in the area and Ronaldo dispatched the spot kick low to Caballero's right for his eighth league goal of the season.
Real Sociedad won in La Liga for the first time since the opening day of the season as they beat Valencia 2-1.
Valencia, who host St Gallen in the Europa League on Thursday, are eighth with 13 points, one fewer than Espanyol who climbed to fifth.