Real Madrid recovered from the second-minute dismissal of goalkeeper Iker Casillas to secure a battling 1-0 win at Espanyol on Sunday and cut Barcelona's lead at the top of La Liga to five points.
Barca's record 16-match winning run ended on Saturday when they had to fight back from a goal down to rescue a 1-1 draw at Sporting Gijon and Real took full advantage with a gritty display at a raucous Cornella-El Prat stadium.
Casillas, Spain's World Cup-winning captain, was shown a straight red after bringing down Jose Callejon just outside the area and Real coach Jose Mourinho immediately brought on reserve keeper Antonio Adan to replace Argentina winger Angel Di Maria.
The dismissal lifted the home fans but they were silenced on 24 minutes when Real defender Marcelo cut in from the left wing and squeezed a shot past Carlos Kameni from a tight angle.
January loan signing Emmanuel Adebayor almost snatched a second in the 40th minute but the Togo international's scooped shot bounced on top of the crossbar and out for a goal kick.
Adebayor had chances to make the game safe late in the second half but Kameni pulled off two superb saves, while at the other end Joan Verdu nearly surprised Adan with a deft chip.
Mourinho said Real had done well to beat such strong opponents with a man fewer.
"I am not going to change my tune just because we are two points closer," the Portuguese told a news conference.
"I would like to have a five-point lead over the team in second place."
In the earlier kickoff, Villarreal surrendered their grip on third place when they lost 1-0 at Deportivo Coruna.
Defender Alberto Lopo grabbed the only goal in the 60th minute at the Riazor when he popped up unmarked to steer home an Antonio Tomas free kick.
Villarreal's second defeat in a row following last weekend's 1-0 reverse at home to Levante left them in fourth, two points behind Valencia who won 2-1 at Atletico Madrid on Saturday.
Barca have 62 points from 23 matches, with Real on 57. Valencia are 10 points adrift on 47 and Villarreal have 45.
Fifth-placed Athletic Bilbao, who travel to Real Mallorca on Monday, are seven points behind Villarrreal, while Espanyol are sixth, a point behind the Basque club.
In Sunday's other matches, former France striker David Trezeguet struck the winner as promoted Hercules came from a goal down to beat visiting Real Zaragoza 2-1.
Malaga scored two late goals to snatch a 2-2 draw against visiting Getafe, although the Andalusian club, one of the biggest spenders in the January transfer window, remained bottom of the standings.
Promoted Real Sociedad moved up to ninth above Atletico thanks to a 1-0 home win over Osasuna, who had Damia Abella sent off late on for a second yellow card.
Levante, who also came up from the second division at the end of last season, beat Almeria 1-0 to climb to 15th.