BARCELONA — Barcelona drew 2-2 at Villarreal after squandering a two-goal lead Sunday, as the defending champion settled for increasing its lead in the Spanish league to nine points.
Ivan Rakitic opened the scoring in the 20th minute and Neymar added a penalty in the 41st, after the referee had sent off Villarreal coach Marcelino Garcia for protesting.
But fourth-place Villarreal rallied with a goal from forward Cedric Bakambu in the 57th before Barcelona substitute Jeremy Mathieu knocked in an own goal in the 63rd.
Barcelona's 12-round winning streak ended a day after second-place Atletico Madrid stumbled in a 2-1 loss at Sporting Gijon.
Barcelona extended its Spanish record unbeaten streak to 39 consecutive games in all competitions as it begins the run-in to maintaining the domestic crown with eight rounds left. Next round Luis Enrique's side hosts third-place Real Madrid, which trails the pacesetters by a provisional 13 points before hosting Sevilla later.
As promised, the match between two of the most attractive attacking squads produced an entertaining contest from start to finish.
Bakambu was particularly inspired. He caused Barcelona center back Gerard Pique, and replacement Mathieu, problems until he was substituted due to an apparent leg problem in the second half.
Not a minute into the match, Bakambu's pass hit teammate Manuel Trigueros, deflected off Barcelona's Arda Turan, and reached the post before goalkeeper Claudio Bravo smothered it.
Bravo saved a shot by Bakambu as the host dictated the pace until Rakitic swayed the match in Barcelona's favor.
The Croatia midfielder fired a ball through a packed area that had fallen to him when Villarreal defender Victor Ruiz disrupted a free kick by Lionel Messi destined for Luis Suarez.
Garcia was ejected in the 24th and spent the rest of the match from a private box apparently for protesting a handball by Pique that went unpunished. Pique had already been booked for a handball to stop a Villarreal counterattack.
Bakambu came within inches of reaching a cross that ran across the goalmouth, but Barcelona struck a second time after Messi threaded a pass forward to meet Neymar's run.
Goalkeeper Sergio Asenjo brought down the Brazil striker, colliding with his left leg just before he could paw the ball away. Neymar then waited until Asenjo leaned one way before floating his spot kick into the other side of the net for his 21st league goal and 27th in all competitions this season.
But far from fading, Villarreal recovered all of its verve from the start of the match after halftime, and Bakambu finally got his goal when he slotted in a ball that Bravo had parried from a shot by Denis Suarez.
Barcelona's control was shattered as Villarreal almost scored again seconds later if not for Javier Mascherano intercepting Bakambu's pass for the unmarked Roberto Soldado.
Neymar almost quashed the host's rally when he drew an excellent save from Asenjo in the 60th, but Villarreal quickly leveled the score when a corner kick hit Mathieu and fell into the net.
Both sides had their chances to claim a winning goal. Rakitic's header was turned away by Asenjo in the 71st, while Javier Mascherano was again critical to stopping Adrian Lopez from streaking toward Bravo's goal in stoppage time.
A moment of silence was held before the match at El Madrigal for the victims of a bus accident in northeastern Spain that left at least 13 dead.
Elsewhere, Espanyol came back to beat Athletic Bilbao 2-1 to move seven points from the relegation zone.
Celta Vigo also visits Valencia later.