He scored a free kick for Barcelona before finishing from close range in the 4-2 La Liga victory over Real Betis at the Nou Camp.
The win takes them to just one win away from the title, but they had to work hard for their victory after twice going behind.
Pabon and Ruben Perez had put Betis ahead, with Alexis Sanchez and then David Villa replying.
The latter was replaced immediately by Messi after netting the equaliser and it proved to be a smart move by Tito Vilanova as the Argentinian made an instant impact.
First he curled a free-kick into the top corner before finishing a wonderful team goal with a tap in from close range to seal the points.
Mallorca remain bottom of the league after only managing a 1-1 draw with Levante at home.
Tomer Hemed gave the Islanders a dream start by scoring inside seven minutes, but Robert Acquafresca equalised just before half-time.
Despite dominating possession and having 17 attempts on goal, Mallorca were unable to get a winner, which could have a huge impact on their chances of avoiding relegation.
Real Zaragoza recorded back-to-back league wins for the first time this season as Rayo Vallecano succumbed meekly at La Romareda.
An Apono penalty got Zaragoza on their way in the 26th minute before Rodri doubled their advantage after 51 minutes.
Apono struck his second in injury time as Zaragoza moved out of the bottom three.
Sevilla kept their dreams of Europa League football alive for next season with a convincing 3-0 win over Espanyol.
Joan Capdevila's own goal gave the home side an early lead with Andujar Coke and Alvaro Negredo scoring the second and third in the space of four minutes as Sevilla moved three points off Betis, who occupy the final European spot.
Cristiano Ronaldo netted twice as Real Madrid ensured the La Liga title race would stay alive for at least one more weekend with a 4-3 win over Real Valladolid.
The hosts bounced back from their Champions League semi-final elimination at the hands of Borussia Dortmund to close the gap on leaders Barcelona to eight points ahead of their home match with Real Betis on Sunday.
There are four rounds of matches left after this weekend.
The build-up to the clash with Valladolid was dominated by the future of coach Jose Mourinho and his expected departure to Chelsea, but once the match started it was Ronaldo who again attracted much of the attention.
He helped the hosts recover from conceding an early goal to Oscar, making it 2-1 after Angel Di Maria had levelled.
Javi Guerra equalised before the break for the visitors, but second-half efforts from Kaka and Ronaldo - who also struck the crossbar just before half-time with a stunning 30-yard free-kick - looked to have got Madrid home and dry.
Sastre's brilliant volley got Valladolid a late third, but there was no dramatic equaliser as Madrid ensured arch rivals Barca will have to wait a while longer to take their league crown.
In Saturday's other matches, third-placed Atletico Madrid were held to a goalless draw at lowly Deportivo La Coruna but got the point they needed to be assured of Champions League football next season, while Valencia boosted their hopes of a top-four finish with a 4-0 win over nine-man Osasuna.
Two goals late in the first half from Roberto Soldado and Ricardo Costa gave the hosts a comfortable lead and the second half became a formality after Alejandro Arribas was sent off and Ever Banega scored from the resulting free-kick.
David Timor then also saw red and Jonas added to the visitors' pain by scoring a penalty in injury time.
Valencia's win saw them move to within two points of fourth-placed Real Sociedad, who play Getafe on Monday, and lifted them three points above sixth-placed Malaga as Manuel Pellegrini's men slumped to a 1-0 defeat at Granada, Jude Ighalo scoring the only goal after 28 minutes.
Friday's La Liga Result
Saturday's La Liga Results
Sunday's La Liga Results