Espanyol stun 10-man Barca, Real rout Betis
Ten-man Barca slipped to only their second defeat of the campaign and saw their lead, which stood at 12 points just over a week ago, reduced to seven.
Espanyol's Ivan de la Pena, who once played for Barca, made the most of Seydou Keita's first-half dismissal, scoring twice after the break in the Catalan derby.
Yaya Toure pulled one back just past the hour but it was not enough to prevent champions Real edging even closer with their ninth successive victory.
Klaas Jan Huntelaar and Raul helped themselves to two goals each while Gonzalo Higuain and Sergio Ramos weighed in with one apiece as Real went in 6-1 up at halftime at the Bernabeu.
"No one said this would be easy," Guardiola said. "But we are still in a good position and tomorrow we will pick ourselves up and we'll get everyone back on track."
Barca are on 60 points and Real have 53 while third-placed Sevilla climbed on to 44 after Jesus Navas grabbed a late winner for a 1-0 win at home to Atletico Madrid.
Villarreal are up to fourth with 41 points after a 2-1 home win over Sporting Gijon.
Spanish media spent the week talking about the possibility of Real staging a comeback to win the league after Barca dropped two points against Betis last week, and Pep Guardiola's team looked nervous from the outset versus Espanyol.
The stop-start nature of the game, and an increasingly heated atmosphere, led to Keita getting a red card for a late challenge after 38 minutes.
De la Pena was left unmarked to head home at the back post after 50 minutes and four minutes later Victor Valdes was put under pressure with the ball at his feet and passed straight to De la Pena, who lobbed into the open net.
Toure's fine volley after a freekick in the 62nd was the best Barca could muster in reply. It was Espanyol's first win in 15 attempts in the league.
Some woeful Betis defending gifted their hosts a flying start at the Bernabeu.
Higuain rounded goalkeeper Ricardo Pereira for the opener after seven minutes, and Huntelaar bagged the second soon after when Pereira weakly pushed a cross straight to him.
The Dutchman volleyed in the third when Pereira could only palm his header on to the woodwork.
Ricardo Oliveira pulled one back for the shell-shocked visitors on the half-hour and then hit the post after Iker Casillas miscued a pass to him a couple of minutes later.
Defensive lapses could explain Real's opening goals but the next three were of the highest quality.
Raul swept in Marcelo's pass with a first-time shot from outside the area, and bettered that with a sublime chip when one-on-one with the keeper.
Ramos's diving header at a freekick made it six before halftime and Real strolled through the rest of the game ahead of Liverpool's visit in the Champions League on Wednesday.