Barcelona hammered Atletico Madrid 6-0 in the Vicente Calderon to keep pace with leaders Real Madrid on Sunday.
The superb Messi celebrates Barca's opener, and his first, in Madrid
Barcelona's victory keeps them level on 69 points with Real, who continue to lead La Liga on head-to-head results after a 3-2 win at Recreativo Huelva.
Goals from Lionel Messi, Gianluca Zambrotta and Samuel Eto'o late in the first-half set up Barca's win.
Roberto Carlos struck in stoppage time as Real Madrid ruined Huelva's comeback after falling two goals behind.
Barca were never troubled in their win and, with Atletico in tatters at 3-0 down, Ronaldinho struck a fourth goal in the 58th minute.
Messi added a fifth five minutes from time and Andres Iniesta completed the rout at the end.
A shambolic Atletico, who remain sixth and in the Uefa Cup places, finished with 10 men after Brazilian defender Fabiano Eller was sent off for his second yellow card in the 72nd minute.
Real were not so comfortable and left it until injury time to claim the winner.
Robinho's first-half strike, from David Beckham's cross, and a Ruud van Nistelrooy penalty had put the visitors in control but Antonio Jesus Vazquez's spot-kick and a goal from substitute Ikechukwu Uche looked to have salvaged a point for Recreativo before Roberto Carlos' timely contribution.
Sevilla maintained their challenge with a 2-1 win at Deportivo La Coruna.
Only four days after retaining the UEFA Cup, with a penalty shoot-out defeat of Espanyol in Glasgow, the Andalusians were victorious once more - Fredi Kanoute's 83rd-minute goal proving decisive.
Porto won their second successive Portuguese Premier League title when they beat Desportivo Aves 4-1 at home.
Argentine striker Lisando Lopez scored twice for Porto, who led the standings from the first week and ended with 69 points from 30 matches for their 22nd league crown.