Xavi (center) celebrates with Dani Alves and Adriano as Barcelona beat Sporting Gijon 3-1 at the Nou Camp.

Story highlights

Two late goals earn Barcelona 3-1 win over Sporting Gijon

Real Madrid can restore 10-point gap with with against Espanyol on Sunday

Ibrahimovic nets quickfire hat-trick for AC Milan as Juventus drop points against Chievo

CNN  — 

Two late goals from Seydou Keita and Xavi Hernandez earned 10-man Barcelona a 3-1 win over Sporting Gijon at the Nou Camp on Saturday.

Barca, who were without Lionel Messi who is serving a one-match suspension for picking up five yellow cards, opened the scoring in the 42nd minute through Andres Iniesta.

But when Gerard Pique saw red immediately after the break, the visitors were handed a lifeline which they duly grabbed – David Barrel leveling the scores in the 49th minute.

The home fans had to wait until the 78th minute for a breakthrough as Keita curled in a shot from the edge of the area before Xavi made sure of the three points two minutes from time.

The win narrows the gap with leaders Real Madrid to seven points who host Espanyol on Sunday.

In Saturday’s other La Liga fixtures Malaga fought back from a goal down to beat Getafe 3-1, while Rayo Vallecano clawed back a two-goal deficit to beat 10-man Racing Santander 4-2.

Osasuna are up to sixth place after a 1-1 draw against Mallorca.

Meanwhile in Italy, a rapid first-half hat-trick by Zlatan Ibrahimovic helped AC Milan to a 4-0 win over Palermo at the Stadio Renzo Barbera to stay top of Serie A.

The Swedish striker, who was returning after serving a three-match suspension, scored three goals in 15 minutes.

His slotted home from 12 yards for his first in the 21st minute before finishing off a counter-attack ten minutes later, before lashing home his third from 20 yards 10 minutes before the break.

Thiago Silva added a fourth in the 58th minute to keep the reigning champions ahead of second-placed Juventus who dropped points at home to Chievo.

Paolo De Ceglie headed home from close range to give the hosts the lead after 18 minutes but they couldn’t find a second goal to kill off the game.

Instead it was Chievo who scored the game’s second and final goal – Boukary Drame netting in the 76th-minute.

The draw means AC Milan now have a three-point cushion at the top although Juve have a game in hand.