Barcelona dropped their first home points this season when they were held 1-1 at home by Villarreal on Saturday, handing Real Madrid the chance to top La Liga.
The champions have 40 points from 16 matches but second-placed Real can overhaul them on goal difference with victory at Osasuna on Sunday. The match will start late, India time.
Barca coach Pep Guardiola had given World Player of the Year Lionel Messi a few extra days holiday and the Argentina forward was watching from the stands at a rain-soaked Nou Camp.
After presenting the six trophies won in 2009 to their fans before kickoff, Barcelona took the lead in the seventh minute and appeared on track for an eighth home win of the campaign.
Thierry Henry lashed a superb first-time shot against the bar and Pedro controlled the rebound on his chest before arrowing a drive into the far corner of the net. The visitors worked well to deny space to Barca's creative midfielders and David Fuster had a chance to level just before the half hour but his downward header bounced just over the bar.
Fuster made amends six minutes after the break when he met Cani's cross at the far post and beat goalkeeper Victor Valdes with a low half-volley.
With the rain lashing down, Villarreal keeper Diego Lopez palmed away a curling effort from substitute Andres Iniesta in the 65th minute and Barca captain Carles Puyol cleared a Giuseppe Rossi effort off the line in the 87th.
Guardiola had warned his all-conquering side against complacency before the match and said the result would make the players stronger and more committed. "It was a very tough game, returning from the holidays to play one of the best teams like Villarreal," he said.