Three days after Barcelona ended Real Madrid's Copa del Rey title defense, the Spanish champions' own hopes of a fourth successive league title suffered a setback in a 0-0 draw at Villarreal on Saturday.
Barcelona's slip let Madrid move seven points clear of its fierce rival on top of the standings just past the season's midway point, thanks to its earlier 3-1 comeback win over last-place Zaragoza.
The Catalan side's troubles away from home, where it has dropped 13 of 30 points in play, compounded by an attack thinned by injuries took their toll at El Madrigal Stadium.
Lionel Messi missed with a chip shot early, and Cesc Fabregas hit the crossbar late in Barcelona's best scoring chances against a Villarreal that did well to hold off the visitors' late surge.
"There are 18 games left to play, and I want to fight for every point just like we did here tonight," Barcelona coach Pep Guardiola said. "Playing like this we will have a good season. I have no reproaches for my players."
Zaragoza started well at Santiago Bernabeu Stadium with Angel Lafita scoring an 11th-minute opener.
But Kaka leveled for Madrid, and Cristiano Ronaldo and Mesut Oezil added two more shortly after halftime to decide the game.
Madrid has won nine of 10 league home games this season, with its only home loss to Barcelona in December. And while Barcelona has dominated their head-to-head meetings with only one loss over the past three seasons, Madrid is proving to be the more consistent team in the league.
Even so, Kaka wasn't completely happy with his team's showing.
"We can't always have to rally to win and concede so many goals both home and away," Kaka said about his Madrid which hasn't kept a clean sheet in 10 straight home games overall. "These are things that we can improve."
Guardiola patched together a front line of Lionel Messi, Cesc Fabregas and Adriano, with the injured Andres Iniesta, Pedro Rodriguez, David Villa and Ibrahim Afellay all unavailable and Alexis Sanchez tagged as a reserve.
Villarreal pressed the European and world champions high up the pitch from the start, and the risky tactic almost cost the "Yellow Submarine" dearly in the 17th when Dani Alves' long pass left Messi alone with only the goalkeeper Diego Lopez to beat. But Messi, usually so precise in front of goal, sent his lob bouncing wide.
Alexis, who was a late inclusion in the squad after hurting his shoulder in Wednesday's elimination of Madrid in the Copa del Rey, went on as a substitute with half an hour to play.
Guardiola also sent on Thiago Alcantara and youth player Cristian Tello, and Tello set up Fabregas at the edge of the area in the 79th, only to see his shot come off the woodwork.
Messi had a chance to grab the win when he got through the defense in the 87th, but Lopez blocked his close-range strike, and Fabregas sent the rebound sailing over the bar.
"Seven points is an important advantage," Dani Alves said. "But I have seen bigger ones, so we have to keep looking ahead."
After the strong display in the second leg of its losing Copa del Rey series with Barcelona, Madrid coach Jose Mourinho opted again for an attack-minded starting 11 with rarely used Esteban Granero and Kaka in midfield behind Oezil and scoring pair Karim Benzema and Ronaldo.
Mourinho, who had been jeered last weekend for his team's defensive tactics in its first-leg defeat to Barcelona, was applauded during the pre-game introductions. The Portuguese manager, however, sent assistant Aitor Karanka to the postgame press conference.
Madrid started sluggish and Zaragoza grabbed an unexpected lead.
Lafita, who netted a double in Zaragoza's 3-2 surprise win at Madrid last April, redirected recent signing Carlos Aranda's short cross into the back of the net as the visitors caught Madrid a step slow.
"Their goal was our fault," Granero said. "We should have been more aware."
Madrid dominated possession as it looked for the equalizer which came through Kaka in the 32nd. He ran onto Ricardo Carvalho's excellent throughball down the left side of the area and slotted under goalkeeper Roberto Jimenez.
Madrid went ahead for good in the 49th when Granero played Oezil wide on the right flank, and the Germany midfielder placed a cross behind the defense for Ronaldo to tap in and take his league-leading tally to 24 goals.
Oezil gave Madrid a two-goal cushion in the 56th with a left-footed rising blast after Kaka set him up inside the left side of the box.
Elsewhere, Fernando Llorente scored a hat trick to give Athletic Bilbao a 3-2 win at Rayo Vallecano, while Espanyol edged 10-man Mallorca 1-0.
On Sunday, it's: Real Betis vs. Granada, Real Sociedad vs. Sporting Gijon, Levante vs. Getafe, Racing Santander vs. Valencia, and Malaga vs. Sevilla.
Atletico Madrid is at Osasuna on Monday.