Lionel Messi’s 600th career goal maintained Barcelona’s unbeaten record in La Liga to open up an eight-point lead over opponents Atletico Madrid.
Messi’s superb first-half free-kick from 25 yards into the top corner took his club tally to 539 goals and he also has 61 for Argentina.
Luis Suarez could have added a second but his chip sailed narrowly wide.
Substitute Kevin Gameiro thought he had levelled for Atletico late on, but the goal was ruled out for offside
Diego Costa provided the knock down for Gameiro’s close-range finish, but the former Chelsea striker was adjudged to be in an offside position.
The visitors were second best for large periods in the match and had just one effort on target, a looping Saul Niguez header that was comfortable for goalkeeper Marc-Andre ter Stegen to deal with.
In the context of the season, this was a huge victory for Ernesto Valverde’s side against their nearest title rivals, as they close in on their ninth title triumph in 14 seasons with 11 games left to play.
They remain on course to secure a treble of trophies, with their Champions League last-16 second-leg against Chelsea taking place on 14 March and the Spanish Cup final against Sevilla next month.
Record goalscorer Messi made the difference again, taking his tally to 28 for the season and Barcelona’s 100th in all competitions this season.
They could have had more but the impressive Philippe Coutinho had a couple of efforts kept out by Atletico goalkeeper Jan Oblak, while Suarez saw a close-range strike chalked off for offside.
The only blemish for Barca saw skipper Andres Iniesta hobble off in the first half with the club saying he suffered a hamstring injury that requires tests to see how long he will be out for with the Champions League second leg against Chelsea on 14 March.
Barcelona travel to Malaga in their next league game on Saturday