Cristiano Ronaldo struck a first-half hat-trick for Real - his third Primera Division treble of the season - as they eased to victory at La Rosaleda.

Ronaldo had not scored in his previous three Madrid matches but he brought that mini-drought to an end in some style with goals in the 23rd, 28th and 38th minutes to take his tally to 10 in La Liga this season.

Gonzalo Higuain also continued his good recent goalscoring form with Madrid's opener as Jose Mourinho's side made it six wins on the trot in all competitions, during which run they have scored 25 times.

That put Mourinho's men on 19 points and Barca, in the late kick-off, could only add one to end the night with 18.

Sevilla goalkeeper Javi Varas saved a stoppage-time Lionel Messi penalty to cap a brilliant display as his team became the first to shut out Barcelona at home in the league this season.

The game ended in controversial fashion with Sevilla reduced to nine men, Frederic Kanoute sent off for two bookable offences after the penalty award - the first for kicking the ball off the spot and the second for clipping Cesc Fabregas around the head - and Fernando Navarro following him down the tunnel in the sixth minute of added time.

But Barca could not find the breakthrough as Varas frustrated Pep Guardiola's champions, saving everything they threw at him.

Sporting produced a stunning first-half display to secure their first win of the season in a 2-0 success over Granada.

The hosts started with a bang as Diego Barral put them in front after only five minutes, with Castro extending the lead three minutes from the interval after a goalkeeping error.

Meanwhile, Espanyol secured their second consecutive 1-0 win on the road thanks to Sergio Garcia's second-half winner against rock bottom Racing Santander at El Sardinero.