MADRID - Barcelona remain just one point behind La Liga leaders Atletico Madrid as they overcame Real Betis 3-1 at the Camp Nou on Saturday.
Atletico registered their sixth straight league win earlier in the day with a tense 1-0 victory over Villarreal.
Lionel Messi put Barca in front from the penalty spot before Jordi Figueras' comical own goal doubled the hosts' advantage.
Ruben Castro brought Betis back into the game moments later, but Messi killed the game off four minutes from time by slotting home the rebound after Antonio Adan had saved his second penalty of the day.
Third-placed Real Madrid are now six points behind Atletico, but can cut that gap when they visit Real Sociedad later on Saturday.
Barca boss Gerardo Martino admitted his side had suffered a bit of a hangover from their Champions League clash with Atletico in midweek.
"When you play for something that is so important twice in such a short period of time as the two games against Atletico what comes in the middle isn't as decisive," he said.
"I was also a bit short with the rotation of the players. Watching the game I could have given more rest to some of the players that played against Atletico."
Betis arrived at the Camp Nou seemingly already resigned to being relegated this season and the game started as expected when Alexis Sanchez was bundled over by Figueras and Messi converted his 10th goal in his last seven games.
Jose Manuel Pinto had to make a smart save to prevent Marc Bartra turning Alfred N'Diaye's effort into his own net, but Barca appeared to have made the game safe when Figueras' desperate lunge diverted the ball into his own net from outside the box.
Betis were back in the game just two minutes later, though, when Castro took advantage of a slip by Adriano to slot low past Pinto.
However, Barca did finally kill the game off four minutes from time when Antonio Amaya handled Neymar's cross and despite Adan saving Messi's second penalty of the day, the Argentine knocked home the rebound.
Atletico were also far from their best as an early goal from Raul Garcia was enough to claim all three points at home to Villarreal.
"We were holding on more because it was only 1-0 than because Villarreal had a lot of chances," admitted Atletico boss Diego Simeone.
"The players have come from making a huge effort in midweek and I can't find the words to keep congratulating them on their effort and commitment."
Atletico were without top scorer Diego Costa due to a hamstring problem and Simeone made five changes in all from the side that started Tuesday's 1-1 draw away to Barcelona in their Champions League quarter-final, first leg.
Diego Ribas scored a memorable goal to open the scoring in midweek and he could have had another just four minutes in as he pulled off to the edge of the box to meet Koke's corner on the volley, but the ball flew over the bar.
The hosts did open the scoring from another Koke corner just nine minutes later as captain for the day Garcia headed home at the near post for his 16th goal of the season.
Atletico were then happy to sit on their lead as Villarreal enjoyed plenty of possession, but without their top goalscorers Giovani dos Santos and Ikechukwu Uche they lacked a goalscoring threat in the final third.
Jeremy Perbet was inches away from an Villareal equaliser as his curling effort dipped onto the roof of the net and disaster nearly struck for Atletico a minute from time when Toby Alderweireld turned Moi Gomez's low cross inches past his own post.
However, the leaders held on for a third straight 1-0 win at home in La Liga to remain in pole position with just six games left to play.