|Messi, left, is congratulated as the little Argentine scores his second goal and Barcelona's third [AFP]
Barcelona shrugged off a hastily-arranged five-hour train and coach journey to clinch a 3-0 win at Osasuna and stay top of the Spanish Primera Division, two points clear of Real Madrid who beat 10-man Valencia 2-0.
Lionel Messi scored a second-half double with his 14th and 15th league goals of the season after creating the 25th minute opener for Pedro Rodriguez as Barcelona built on Monday's 5-0 El Clasico drubbing of Real by notching their eighth consecutive league win.
Real bounced back from that mauling, their first defeat under Jose Mourinho, with Cristiano Ronaldo scoring his 15th and 16th goals of the season on 72 and 86 minutes as Madrid made it a perfect seven home wins in the league.
Valencia had their moments but midfielder David Albelda was sent off after 64 minutes for a second booking and Ronaldo made them pay.
Barcelona were buoyant after their Real rout five days ago but saw their Osasuna preparations go bad when the Spanish Football Federation reversed their initial decision to postpone the match to Sunday after an air traffic controllers strike, which had paralysed the country, prevented Barca from flying.
That forced the Catalan giants to undertake a five-hour overland journey that saw kick-off delayed by 50 minutes on Saturday.
Coach Pep Guardiola fielded the same starting XI that crushed Real 5-0 and the visitors turned in a polished display.
With 25 minutes gone the goal arrived with Messi feeding a pin-point pass to World Cup winner Pedro who arrived on cue to dispatch a fine finish into the corner.
Barcelona were not as slick in the second half but got the second goal they wanted on 64 minutes when Villa fed Messi who sprinted away from his marker before sliding in a neat finish.
Eight minutes from time Messi was fouled in the penalty area and the Argentine picked himself up to convert the spot-kick for his 15th goal of the season.
In other matches, Atletico Madrid's poor form continued with a 2-0 loss at Levante.
It was a third successive defeat for Atletico, the Europa League holders, following 3-2 home defeats by Espanyol and Greek side Aris Salonika and the club now lie in seventh place.