La Liga Wrap: Barcelona back in title race
In front of a relatively small crowd estimated to be 42,000, the Camp Nou played host to a lively contest as Aritz Aduriz put the visitors ahead just after the break with his 13th La Liga goal of 2014, a figure bettered only by Lionel Messi.
Athletic looked as though they were going to successfully frustrate their hosts and end their stuttering title challenge for good, but the champions battled back in the final 20 minutes.
Pedro levelled with 18 minutes left and Messi found the crucial goal a few moments later from a free-kick, which opposing goalkeeper Gorka Iraizoz should have done better with.
The triumph moves Barcelona back to within four points of leaders Atletico Madrid and ends a run of three consecutive losses in all competitions, while Athletic's cushion in fourth was cut to just three points ahead of Sevilla, who cruised past Granada.
Granada enjoyed a lively opening, but they were their own worst enemies in the 14th minute as Kevin Gameiro's squared pass just inside the area was directed into the goal by defender Diego Mainz.
Tiago Ilori almost scored a second own-goal for Lucas Alcaraz's men in the 51st minute as the on-loan Liverpool youngster passed the ball straight past goalkeeper Orestis Karnezis, but Gameiro saved him some embarrassment by poking over the line himself.
After netting his 20th goal of the season in all competitions, Gameiro turned provider again, this time setting up Stephane M'Bia for an easy finish and Vitolo wrapped up the win with 22 minutes to go after pouncing on a mix-up in the Granada defence, setting up nicely Sevilla's showdown with Athletic next weekend.
Real Betis' 3-1 defeat at Rayo Vallecano has left Gabriel Calderon's men looking doomed in their battle to avoid relegation.
Rayo found themselves 2-0 up by the half-hour mark as Ruben Rochina pounced on Paulao's horrendous back-pass, before the Brazilian defender put Arbilla's cross past his own goalkeeper.
Joaquin Larrivey netted for the seventh time in nine league games to make it 3-0 just after the break and although Javi Chica pulled one back 11 minutes from time, it proved to be nothing more than a consolation, leaving Betis 10 points adrift of safety with four games left.
The day's early kick-off saw Celta Vigo effectively secure their top-flight status at the expense of second-from-bottom Almeria, whom they beat 4-2 in Andalusia.
Rodri cancelled out Nolito's 19th-minute opener just before the break, but Celta charged ahead once again in the second period.
Nolito set up Charles for their second, before the former Barcelona and Benfica winger netted his second of the day and Fabian Orellana added a fourth, with Oscar Diaz pulling one back for Almeria late on.