Paco Alcacer grabbed his first La Liga goal for the club, with Aleix Vidal also on target, as Luis Enrique's side moved to within one point of Real.
Paco Alcacer ended his long wait for a La Liga goal as Barcelona beat Athletic Bilbao 3-0 at Camp Nou on Saturday.
The Spain international marked a rare start with his first top-flight goal in 11 appearances for the champions before Lionel Messi's free-kick and an Aleix Vidal strike settled matters against Ernesto Valverde's side.
Barca were fortunate to escape with a point from their last league outing against Real Betis and they were caused plenty of problems early on by a hard-working Athletic side, although Alcacer's well-taken finish in the 18th minute sapped some of their early confidence.
The visitors, who handed a start to Yeray Alvarez for the first time since his successful cancer surgery in December, missed a couple of good chances to get back into the match before Messi's free-kick flummoxed goalkeeper Gorka Iraizoz and effectively ended the game as a contest.
Vidal's scuffed finish made it 3-0 with a little over 20 minutes to play to cap an important win for the champions, who move back to within a point of leaders Real Madrid, having played two games more.
Barca were even able to take off Messi with just over an hour played, allowing him extra rest ahead of the second leg of the Copa del Rey semi-final against Atletico Madrid next week, but Luis Enrique will have been concerned at losing Gerard Pique to an adductor problem and Rafinha to a nasty head injury with games against Atletico, Alaves and Paris Saint-Germain to come in the next 10 days.
There were chances at both ends within the opening three minutes, Neymar fluffing his lines after a slip from Oscar de Marcos before Barca goalkeeper Marc-Andre ter Stegen got a faint touch to tip Raul Garcia's low shot from close range onto the base of the post.
Jeremy Mathieu almost picked out Alcacer, starting in place of the rested Luis Suarez, but Athletic should have taken the lead moments later when Inaki Williams headed wide after being picked out unmarked near the penalty spot.
That miss was duly punished on 18 minutes as Alcacer at last got off the mark. Neymar collected Rafinha's pass and, having burst beyond De Marcos and into the area, Alcacer expertly steered his cut back into the bottom-left corner.
Athletic continued to cause problems for Barca's defence with their high-pressing game and Ter Stegen was forced into a smart low save to deny Williams after a strong run from the left, but a far more inglorious piece of goalkeeping gifted the hosts their second before the break.
Messi whipped a free-kick goalwards from a tight angle to the right of the area, and Iraizoz, attempting to palm the ball away, succeeded only in deflecting it off the turf and into the roof of the net.
Neymar, who had been promised a tough 90 minutes by De Marcos this week, continued to look the most dangerous player on the pitch and he almost bagged a third before the break after gliding into the area from the left before slotting the ball narrowly wide of the far post.
Rafinha came close with a header just after the restart but his match came to an end soon after, the Brazilian replaced by Ivan Rakitic after suffering a serious-looking cut to his head following an accidental collision with Ter Stegen.
Athletic continued to see a lot of the ball without showing any real cutting edge in attack, and their defeat was made certain on 67 minutes, with Vidal hitting a rather scuffed half-volley into Iraizoz's bottom-right corner from just inside the area after he had boldly nudged Neymar out of the way.