Argentine is now just two off his 500th Barca goal as he smashed home an effort from 25 yards to open the scoring.
Madrid: Lionel Messi kept Barcelona’s title hopes alive with two goals and an assist to see off Real Sociedad 3-2 as Spain’s top two-edged five-goal thrillers ahead of next weekend’s El Clasico.
Barcelona will need Messi on this form if they are to produce another miracle Champions League fightback against Juventus on Wednesday from a 3-0 first leg defeat suffered in midweek. The Argentine is now just two off his 500th Barca goal as he smashed home an effort from 25 yards to open the scoring.
Messi then took his tally to 45 goals in 44 games this season with a far less spectacular finish as he bundled home from close range after Geronimo Rulli had saved from Luis Suarez.
However, Barca passed up the chance to enjoy a comfortable evening in a three-goal spell in as many minutes just before half-time. Firstly, Samuel Umtiti turned Inigo Martinez’s driven effort into his own net.
Paco Alcacer, deputising for the suspended Neymar, briefly restored Barca’s two-goal lead with a composed finish from Messi’s pass. Yet, Sociedad scored again almost straight from kick-off as Xabi Prieto cushioned William Jose’s cross into the bottom
Isco showcases squad depth
Earlier on Saturday, Isco struck at the death to keep Real Madrid three points clear and with a game in hand at the top of the table after twice coming from behind to beat Sporting Gijon 3-2.
Not for the first time this season Madrid needed a late show after Duje Cop and Mikel Vesga put Sporting in front early in both halves.
Isco’s fine individual effort and a towering header from Alvaro Morata ensured neither lead lasted more than a few minutes.
And Isco sealed the comeback when he drilled home from the edge of the box.
Atletico Madrid warmed up for the second leg of their Champions League quarter-final against Leicester City with a comfortable 3-0 win over rock bottom Osasuna despite missing two penalties in the same game for the second time this season.
Yannick Carrasco’s low strike and back-post header put Atletico comfortably ahead either side of half-time.
Left-back Filipe Luis then added his third goal in five games.
However, Atletico’s problems from the spot continued as they have now failed to score any of their last six penalties in La Liga.
The victory takes Atletico four points clear of Sevilla in third.
Napoli chasing second in Serie A
Napoli turned on the style in a classy second-half performance that left Udinese struggling to respond, eventually running out 3-0 winners.
After a first half of missed chances for the San Paolo giants, Mertens broke the deadlock with a fine strike on the run from the edge of the area three minutes into the second period. Brazilian midfielder Allan raced to a loose ball to beat Orestis Karnezis on the hour.
Spanish forward Callejon completed the win with Napoli's third on 72 minutes, although Maurizio Sarri's men could have had more.
Results: La Liga: Saturday: Deportivo la Coruna 2 (Joselu 47, Mosquera 67) Malaga 0, Sporting Gijon 2 (Cop 14, Vesga 50) Real Madrid 3 (Isco 17, 90, Morata 59), Atletico Madrid 3 (Carrasco 30, 47, Filipe Luis 61) Osasuna 0, Barcelona 3 (Messi 17, 37, Alcacer 44) Real Sociedad 2 (Umtiti 42-og, Xabi Prieto 45+1)
Serie A: Torino 1 (Belotti 66-pen) Crotone 1 (Simy 81), Sassuolo 2 (Ragusa 49, Acerbi 56) Sampdoria 1 (Silvestre 28), Napoli 3 (Mertens 48, Allan 63, Callejon 72) Udinese 0