"It is comforting to see the way the players are performing but nothing has been decided yet," said Barca coach Pep Guardiola. "The game was difficult as we expected but we had luck on our side. I think that even with 10 men we were too impetuous and there were moments when Xavi and [Dani] Alves were too far forward and we were caught out. We have to know how to manage these types of matches even though it is difficult for a coach to get players to stay back."
Cani had given Villarreal the lead on a chip over Victor Valdes, but the Yellow Submarine's lead was short-lived. Jozy Altidore did not suit up for Villarreal, which dropped to sixth lace with the loss.
Sevilla, which tied struggling Real Mallorca, 0-0, away, moved into second place with 31 points.
Atletico Madrid is third after winning, 3-2, at Espanyol on Saturday.
Real Madrid's 1-0 win over Valencia left the defending champion in fifth place ahead of Villarreal on goal difference. Valencia fell to fourth behind Atletico on goal difference.