(CNN) -- Barcelona moved three points clear of Real Madrid in the Spanish league despite dropping their first home points of the season on Saturday night.
Villarreal became the first team to avoid defeat at the Nou Camp in eight matches, deservedly drawing 1-1 in a game that could just as easily have ended in defeat for Pep Guardiola's all-conquering Catalans.
Barca returned from the short winter break having ended 2009 with an incredible six trophies, but were held at home by "The Yellow Submarines" for the second successive season.
Ninth-placed Villarreal came back from 3-1 down to earn a point in their previous visit, and this time also had to retrieve a deficit.
Young winger Pedro put Barcelona ahead in the seventh minute as he showed good control to volley home after Thierry Henry's spectacular effort hit the crossbar and rebounded into his path.
Henry was at the heart of his side's best moves in a dominant opening half-hour, but Villarreal fought back and had two penalty claims turned down -- the second being a somewhat bemusing decision after a blatant push by Barca defender Carles Puyol on Brazil striker Nilmar.
David Fuster should have equalized before the break but his diving close-range header bounced over the bar with the goal at his mercy.
He blazed wide with another good opportunity after the interval, but made amends in the 50th minute as he did well to stab home a bouncing cross at the far post.
Buoyed by the goal, the visitors continued to attack as Barcelona's defense continued to look shaky and their much-vaunted attack -- missing world player of the year Lionel Messi --- showed an uncharacteristic lack of penetration.
Prolific scorer Zlatan Ibrahimovic became increasingly frustrated, and was lucky not to be sent off for a crude tackle on Javi Venta. The Swede was booked and will now miss next weekend's trip to to Tenerife due to suspension.
Barca needed Puyol to clear off the line from Giuseppe Rossi, and Guardiola said: "It is a lesson for the future -- it will make us stronger and make us realize that everything is difficult."
Real can now join Barcelona on 40 points from 16 games with victory at Osasuna on Sunday night.
Earlier on Saturday, Valencia moved into third place as substitute Nikola Zigic scored a late winner against visiting Espanyol.
The giant Serbian headed the only goal from Joaquin's cross two minutes into time added on, with teammate David Villa having nodded against the post earlier in the second half.
Sevilla, who have lost defender Sergio Sanchez for an indefinite period, failed to reclaim third after losing 2-1 at Atletico Madrid in the late match.
Renato headed the visitors into the lead from a corner just before halftime, but Ivica Dragutinovic was unlucky to concede an own-goal three minutes after the break when the ball hit him after rebounding off his goalkeeper Andres Palop as Atletico striker Diego Forlan lost control of the ball.
Sevilla were reduced to 10 men in the 73rd minute when Aldo Duscher was sent off for a second booking, and Antonio Lopez headed the winner from Simao's free-kick in the third minute of time added on.