Messi (back) celebrates his landmark goal
Lionel Messi became the first player to score 50 goals in a Spanish season as Barcelona beat Osasuna 2-0.
Messi's strike three minutes from time and David Villa's 24th-minute opener ensured Barca maintained their eight-point La Liga lead over Real Madrid.
A Gonzalo Higuain hat-trick helped Real to a 6-3 rout at Valencia.
The top-two rivals will meet on Wednesday in the first leg of their Champions League semi-final at the Bernabeu.
Barca's hopes of a Treble were ended when Cristiano Ronaldo's extra-time goal earned Real a 1-0 victory over the Catalans in Wednesday's Copa del Rey final.
But Pep Guardiola's side put that disappointment behind them to move a step closer to their third consecutive league title with five games left to play.
Villa's 18th goal of the season sent Barca on their way to the three points - the Spain international stabbing home a Jeffren Suarez left-wing cross to the far post.
Guardiola had rested many of their first-team regulars, including Messi who was named on the bench.
But he replaced Villa in the 58th minute and he rolled in his team's second of the night to reach his landmark tally and kill off Barca's relegation-threatened opponents' challenge.
Messi had equalled the previous best mark of 49 goals scored by Real Madrid's Hungarian legend Ferenc Puskas when he netted in the league 1-1 draw against Real last weekend.
The Argentine superstar has netted 31 in La Liga, nine in the Champions League, seven in the Copa del Rey and three in the Spanish Super Cup.
"The victory was very important," Villa said after ending an 11-match goal drought.
"It was very difficult, especially the mental and physical tiredness from the other day [cup final defeat], but it's three points more, one game less and the eight-point lead is maintained."
Victory came at a cost for Barca, though, with defenders Gabriel Milito and Maxwell both limping off injured.
Ahead of Wednesday's European test against Real, the pair could be added to the doubtful list, which already features first-choice centre-back Carles Puyol.
Like Barca, Real fielded a largely second-string side but even with the likes of Ronaldo, Xabi Alonso and Pepe on the bench, Jose Mourinho's men still demolished third-placed Valencia.
In-form striker Karim Benzema had already hit the woodwork when he slotted the ball home inside the near post to open the scoring and give Real a 23rd-minute lead.
Higuain netted a hat-trick for Real
Higuain pounced on a defensive misunderstanding to sneak Real's second before then setting up Kaka for the third seven minutes before the break.
Kaka turned provider for Higuain just before half-time and again in the 53rd minute as the Argentine completed his treble.
Roberto Soldado opened Valencia's account in the 60th minute but moments later Kaka turned on the style to make it 6-1 - the Brazilian nutmegging Marius Stankevicius in the area before curling the ball beyond home goalkeeper Vicente Guaita.
Jonas Goncalves and Jordi Alba made the scoreline slightly more respectable but the consolation goals could not take away Mourinho's understandable satisfaction with his team's performance.
"Let Barca win La Liga because of the points they have won rather than because we gifted it to them," the Portuguese said.
"If we can end the campaign believing we are capable of winning in any stadium, against any team with any group of players we'll have a huge amount of confidence for next season."
Meanwhile, Manchester United's Champions League semi-final opponents on Tuesday Schalke lost a mid-table clash 1-0 against Kaiserslautern.
The Gelsenkirchen outfit's miserable domestic season continued as Germany goalkeeper Manuel Neuer was beaten in the 42nd minute by Srdjan Lakic.
Earlier this week, Neuer this week told the Royal Blues, who lie 10th in the league, he will not renew his contract which expires at the end of next season.