Harry Kane scored his third Bundesliga hat-trick as Bayern Munich beat Borussia Dortmund 4-0 in Der Klassiker at Signal Iduna Park.

Bayern produced the perfect response to an embarrassing DFB-Pokal exit to third division Saarbrucken as Dayot Upamecano gave them an early lead before Kane added a second after just nine minutes.

The England captain then struck twice more after the break, completing his treble in added time, to make it 15 goals in 10 league games and put Bayern two points behind leaders Bayer Leverkusen.

Alejandro Grimaldo scored twice as Leverkusen earlier won 3-2 at Hoffenheim.

Florian Wirtz put the visitors ahead early on, with Grimaldo adding a second just ahead of the break.

Two goals in as many minutes from Anton Stach and Wout Weghorst had Hoffenheim level on the hour.

Grimaldo, though, struck again with 20 minutes left to secure unbeaten Leverkusen a sixth straight Bundesliga win.

RB Leipzig suffered an unexpected 2-0 defeat at strugglers Mainz, who moved off the bottom.

Lee Jae-Sung and Leandro Barreiro scored in the closing stages to give new boss Jan Siewert a win in his first game in charge.

Cologne now sit bottom after a 1-1 home draw with Augsburg, while two early goals for Omar Marmoush set Eintracht Frankfurt on their way to a 3-0 win at Union Berlin.

Vincenzo Grifo’s last-minute penalty saw Freiburg fight back to draw 3-3 with Borussia Monchengladbach.

In LaLiga, Ronald Araujo’s last-gasp header gave Barcelona a 1-0 win at Real Sociedad.

The defending LaLiga champions had captain Marc-Andre ter Stegen to thank after the German goalkeeper made several crucial saves to keep an energetic Sociedad side at bay.

Xavi’s men struggled to muster any genuine openings until the final embers of the match and cruelly took all three points when Araujo planted a powerful header through the legs of goalkeeper Alex Remiro, which was initially ruled offside, with virtually the last attack to seal the 1-0 victory.

Leaders Girona consolidated their place at the top of the table with a 4-2 win at Osasuna.

Youssef En-Nesyri scored a late equaliser as Sevilla fought back to draw 1-1 at strugglers Celta Vigo, who had midfielder Renato Tapia sent off midway through the second half.

William Jose and Ayoze Perez were on target as Real Betis beat 10-man Mallorca 2-0 to sit fifth.

Udinese’s Roberto Pereyra scores a penalty against AC MilanRoberto Pereyra’s spot-kick proved enough to give Udinese a first league win (Luca Bruno/AP)

Udinese heaped more pressure on AC Milan boss Stefano Pioli with a 1-0 win at San Siro for their first Serie A victory this season.

Roberto Pereyra’s penalty just after the hour proved decisive as the Rossoneri slumped to a second successive home defeat and saw their winless run extend to four matches in all competitions.

Inter Milan kept themselves top of the table with a 2-1 victory over Atalanta under heavy rain at Gewiss Stadium.

Hakan Calhanoglu’s penalty broke the deadlock five minutes before half-time and Inter captain Lautaro Martinez doubled his side’s lead in the 57th minute.

Gianluca Scamacca swiftly pulled a goal back, but Inter closed out victory, with Atalanta substitute Rafael Toloi sent off for a second yellow late on.

Reigning champions Napoli had earlier moved into the top four with a 2-0 win at Salernitana through a first-half goal from Giacomo Raspadori and Elif Elmas’ late strike.

In Ligue 1, Marseille played out a low-key goalless draw at home with Lille.

It was the first game at the Stade Velodrome since the fixture with Lyon was called off after the visitors’ team bus had been pelted with stones on the way to the ground, with coach Fabio Grosso having suffered facial injuries.

Earlier, it also finished 0-0 between Lorient and Lens.