Atletico Madrid remain second after a 1-0 win over Levante, but Sevilla lost ground in the title race as they went down 2-0 at Athletic Bilbao.
Real Madrid moved into fourth place with a late win at Real Betis. Substitute Dani Ceballos was the hero with the winner on 88 minutes for Los Blancos.
Atletico Madrid 1-0 Levante
Athletic Bilbao 2-0 Sevilla
Barcelona 3-0 Eibar
Real Betis 1-2 Real Madrid
Standings (played, goal difference and points)
1. Barcelona: 19, +33, 43
2. Atletico Madrid: 19, +14, 38
3. Sevilla: 19, +11, 33
4. Real Madrid: 19, +4, 33
5. Alaves: 19, +3, 32
6. Getafe: 19, +5, 28
7. Real Betis: 19, -1, 26
8. Girona: 19, -2, 24
9. Espanyol: 18, -5, 24
10. Valencia: 19, 0, 23
11. Levante: 19, -5, 23
12. Real Sociedad: 18, 0, 22
13. Leganes: 19, -4, 22
14. Real Valladolid: 19, -4, 22
15. Athletic Bilbao: 19, -5, 22
16. Eibar: 19, -7, 22
17. Celta Vigo: 19, -1, 21
18. Rayo Vallecano: 19, -12, 19
19. Villarreal: 19, -5, 17
20. Huesca: 19, -19, 11
Barcelona made hard work of the first half against Eibar. They went ahead after Philippe Coutinho had set up Suarez on 19 minutes but otherwise had very few sights of goal.
Opta noted how ineffective Messi was in the opening 45 minutes:
The hosts looked a different team after the break as they coasted to victory. Messi tucked a low finish past goalkeeper Asier Riesgo on 53 minutes to double the hosts' lead.
It was another landmark goal for the Barcelona captain:
Suarez poked home Barcelona's third six minutes later to wrap up the victory that leaves Eibar just three points off the drop zone.
Real Madrid manager Santiago Solari opted to leave Isco out of his starting XI again for the trip to Real Betis:
Yet Los Blancos needed only 13 minutes to take the lead. Luka Modric picked up a loose ball on the edge of the area and slammed a shot past goalkeeper Pau Lopez:
The visitors were the better side in the opening 45 minutes and ought to have doubled their lead through Federico Valverde. The midfielder was played clean through but took too much time, allowing Antonio Barragan to get back and make the tackle:
Real Madrid suffered more injury woe just before half-time. Karim Benzema suffered an injury, and 21-year-old Cristo Gonzalez replaced him:
Real Betis came back strongly after the break and levelled through Sergio Canales. Giovani Lo Celso sent him through to poke the ball past Keylor Navas. The goal was initially ruled out for offside but given after a video assistant referee review.
The hosts were the better side in the second half but were beaten late on thanks to Dani Ceballos' winner. The substitute curled a free-kick around the wall and past Lopez to secure Real Madrid's first La Liga win of 2019.
Atletico Madrid were made to work hard for their victory over Levante at the Wanda Metropolitano Stadium on Sunday.
They also suffered more injury problems, as centre-back Stefan Savic was forced off with a problem after only nine minutes, and Jose Gimenez replaced him.
The hosts thought they had gone ahead a minute later when Koke found the back of the net with a low shot. However, the goal was disallowed after a VAR check for an earlier foul on Rodri.
Atletico had to wait until just before the hour mark to finally make the breakthrough from the penalty spot. Again VAR was called into use to confirm a handball by Nikola Vukcevic.
Antoine Griezmann made no mistake from the spot to register his sixth goal in his last five outings for Atletico Madrid:
The goal was enough for Atletico Madrid to take all three points and also seal a landmark for manager Diego Simeone:
The result means Atletico are now unbeaten in their last 16 La Liga games, but the club's continuing injury problems will be of concern to Simeone.