Vinicius Jr. opened the scoring in the second half when he interchanged passes with Luka Jovic, before Jovic got the second 10 minutes later with a header from a corner.
It was Real Madrid’s 12th win in the league so far this season, opening up a commanding lead at the top of La Liga, and the team’s eighth in a row at the Reale Arena.
“This is a tough place to come to and they’re a strong side,” said manager Carlo Ancelotti. “We played well and deserved the win after what was a strong all-round performance.
“We’ve got that lead at the top because we’re playing well, are showing ourselves to be a solid side and are getting that consistency in our results.”
After a flying start to the season, Real Sociedad has now won once in its past five games and is fifth in the table.
The only disappointment for Real Madrid was seeing striker Karim Benzema forced off with an injury in the first half. Ancelotti later said that Benzema is unlikely to be available for the Champions League game against Inter Milan on Tuesday, but could be able to play next weekend.
Elsewhere in La Liga, Real Madrid’s rival Atlético was beaten 2-1 by Mallorca, which came from behind to win with two goals in the last 10 minutes.
Matheus Cunha bundled in the game’s opening goal in the second half, but Mallorca hit back through a header from Franco Russo and a calm finish from Take Kubo.
Meanwhile, Xavi’s unbeaten start as Barcelona coach came to an end with a 1-0 loss against Real Betis.
Barcelona had won two league games since Xavi’s arrival, but Juanmi’s goal late in the second half means Real Betis moves up to third in the table and Barcelona remains seventh.
Controversial Der Klassiker
In the Bundesliga, Bayern Munich beat Borussia Dortmund 3-2 in an eventful and controversial Der Klassiker to move four points ahead at the top of the table.
Julian Brandt gave Dortmund an early lead, but his opener was quickly canceled out by Robert Lewandowski following pressure from Thomas Müller.
An entertaining first half then drew to a close with Kingsley Coman giving Bayern the lead after Dortmund failed to clear the ball from the box.
However, the lead was short-lived as Erling Haaland equalized at the start of the second half with a brilliant, curling shot, and soon after Dortmund had an appeal for a penalty turned down when Marco Reus was brought down by a challenge from Lucas Hernández.
Then 20 minutes later, Bayern was awarded a penalty — which Lewandowski converted — after a handball decision against Mats Hummels.
”We saw a great game, a real top game,” said Dortmund manager Marco Rose, who was red carded after venting his anger when the decisive penalty was given against his side.
“I think that the Mats Hummels handball, where he doesn’t even see the ball, is a debatable penalty. It’s a shame that the game was decided like that. It deserved a different outcome.”
Dortmund’s Emre Can was also frustrated by refereeing decisions, saying: “In the end, a penalty decides the game. That’s a pity because we should have had a penalty as well. In our situation, he doesn’t look at the scene again. I can’t understand that.”
While Bayern and Real Madrid both extended their top-of-the-table leads, Chelsea’s 3-2 defeat against West Ham saw Thomas Tuchel’s side leapfrogged by Manchester City and Liverpool in the Premier League.
City moved top after a 3-1 victory against Watford, and Liverpool moved up to second after a late Divock Origi goal secured a 1-0 win against Wolves.
It was a similar story in Serie A as Napoli’s 3-2 defeat against Atalanta allowed AC Milan to go first in the league with a 2-0 victory over Salernitana, while Inter Milan moved second with a 3-0 win against Roma.