Real Madrid ascended to the top of La Liga thanks to a hard earned victory at Real Sociedad.
Zinedine Zidane’s side are level on points with Barca, who drew 0-0 with Sevilla on Friday, but are on top because of their superior head-to-head record.
The visitors got a lead when Sergio Ramos’ penalty after the lively Vinicius Jr was fouled.
Karim Benzema increased their advantage before Mikel Merino’s strike set up a tense finale.
There was controversy when substitute Adnan Januzaj thought he had made it 1-1 with a strike from outside the area but it was ruled out for a Merino offside. Merino did not get a touch but the officials deemed he was blocking goalkeeper Thibaut Courtois’ view, so interfering with play.
The tension grew when moments later Benzema controlled a Federico Valverde cross with his shoulder before firing home, the goal was recorded after a video assistant referee review for handball.
Madrid looked comfortable at that stage but Merino rifled a shot in via the underside of the crossbar, after a cross from substitute Roberto Lopez, to keep the closing minutes interesting.
The visitors’ biggest problem from the game came when Ramos was injured soon after his goal and needed an ice pack on his leg in the stands.
Madrid – who have only won one La Liga title since 2012 – are now eight victories away from winning the league.
Barcelona host Athletic Bilbao on Tuesday with Real Madrid at home to Mallorca the next day (both 21:00 BST kick-offs).