Free-scoring Neymar hit a double as Barcelona beat Villarreal 2-1 to move three points clear at the top of La Liga, while 10-man Real Madrid lost ground as they were held to a 2-2 draw at Osasuna after Sergio Ramos was sent off. Brazil forward Neymar, who got a treble in a 6-1 Champions League win over Celtic in mid-week, scored with a first-half penalty and then put Barca back in front later after Mateo Musacchio headed the visitors level early in the second period. The Catalan side are now on 43 points, three more than Atletico Madrid, who were to host Valencia overnight, and five in front of rivals Real Madrid, who fought back from two goals down to claim a draw after being reduced to 10 men in the 44th minute. "This performance has made me the happiest yet as it follows on from the good performances against Cartagena [4-1 win in the King's Cup] and Celtic, and we were against a strong Villarreal side," Barca coach Gerardo Martino said. "We are on a good run but I always think we are able to improve. It wasn't always easy for us and that's not a bad thing either as it is something that you can learn from. Villarreal knew how to wait and attack the spaces while later in the game they were able to pressure us." Meanwhile, two first-half headers from Oriol Riera gave Osasuna the advantage but Isco pulled a goal back before the break and a Pepe header salvaged a draw for Madrid after the home side had Francisco Silva sent off in the 79th minute. Real's Ramos, whose discipline has been questioned, was just returning from suspension but saw red again after 43 minutes.