Gerard Pique's header spared 10-man Barcelona's blushes as Girona denied them victory for the first time this season in the Catalan derby.
Lionel Messi had given Barca an early lead, but defender Clement Lenglet's 35th-minute dismissal was followed by Cristhian Stuani's equaliser before the break - and the Uruguay international doubled his tally six minutes after the restart.
Pique levelled in the 63rd minute but the home side had to settle for a 2-2 draw which took them back to the top of the LaLiga table on goal difference.
Wissam Ben Yedder plundered a first-half hat-trick as Sevilla scored six times away from home in LaLiga for the first time to win 6-2 at Levante.
Ben Yedder struck after 11, 35 and 45 minutes either side of Roger Marti's equaliser and the visitors' second from Daniel Carrico.
Andre Silva and Pablo Sarabia made it 6-1 before the hour-mark, but Levante, who had seen a 26th-minute Jose Luis Morales penalty saved by Tomas Vaclik, reduced the deficit at the end through Simon Kjaer's own goal.
Marc Bartra and Sergio Canales snatched a 2-2 draw for Real Betis as 10-man Athletic Bilbao allowed a commanding lead to slip at the Benito Villamarin.
Athletic roared into a 2-0 lead inside 18 minutes as Inaki Williams and Raul Garcia both found the back of the net, but they were dealt a blow on the stroke of half-time when captain Markel Susaeta was sent off after collecting a second yellow card.
Betis needed just six minutes of the second half to make their numerical advantage count when defender Bartra pulled a goal back, and they were level with 22 minutes remaining when Canales struck.
Valencia emerged from their derby trip to Villarreal with a 0-0 draw despite playing the final 32 minutes with only 10 men.
The visitors had skipper Dani Parejo sent off for a 58th-minute challenge on Ramiro Funes Mori, but created the better chances as time ran down with home keeper Sergio Asenjo having to save from substitute Goncalo Guedes and Denis Cheryshev.