Barcelona suffered their first LaLiga home loss since September 2016 as Real Betis claimed a thrilling 4-3 win at the Nou Camp.

Quique Setien's side found themselves 2-0 up at the break after Firpo Junior and Joaquin put the visitors in control.

Lionel Messi, in his first appearance since suffering a broken arm last month, pulled one back for Barcelona from the penalty spot in the 68th minute, only for Giovani Lo Celso to restore Betis' two-goal cushion.

Arturo Vidal responded once more for the hosts before Ivan Rakitic was sent off for two bookable offences to reduce Barca to 10 men, and Sergio Canales made the numerical advantage count with Betis' fourth.

Messi grabbed his second in added time but it was a mere consolation for Barcelona as their lead was cut to one point at the top of the table.

Real Madrid made it two LaLiga wins from two under caretaker boss Santiago Solari after they won 4-2 at 10-man Celta Vigo.

Karim Benzema broke the deadlock for Madrid with a composed finish after 23 minutes before a Gustavo Cabral own goal doubled the visitors' lead.

Hugo Mallo pulled one back for Vigo, but Sergio Ramos restored Los Blancos' two-goal cushion when he converted from the penalty spot.

Cabral was dismissed three minutes from time but there was still time for Dani Ceballos to get on the scoresheet for Real and Brais Mendez to net a late consolation as Los Blancos remain in sixth place, just four points off Barcelona.

Wissam Ben Yedder scored a last-gasp winner to move Sevilla up to second with a 2-1 comeback victory against surprise package Espanyol.

Borja Iglesias found the bottom corner to give the visitors a half-time lead before Gabriel Mercado levelled 20 minutes from time.

But France international Ben Yedder won it in the 89th minute when he drilled home Ever Banega's through ball to end Espanyol's six-match unbeaten league run.

Alaves remain in contention at the top of the table with a 2-1 win against bottom-side Huesca.

Moi Gomez fired the visitors into a shock 34th-minute lead but Jony headed home an equaliser six minutes later for Alaves.

Substitute Ruben Sobrino proved to be the match-winner just six minutes after coming on as a substitute after he latched onto a mistake from an Alaves defender to slot home.

Strugglers Rayo Vallecano and Villarreal played out a 2-2 draw at Campo de Futbol de Vallecas.

Samuel Chukwueze broke the deadlock for Villarreal but Raul De Tomas levelled on the stroke of half-time.

Alvaro Garcia put Rayo back in front just three minutes after coming on a substitute in the second half, however, Nicola Sansone earned the visitors a point with a strike in the 80th minute before Gonzalez Alvaro saw red.