Erling Braut Haaland hit a 17-minute hat-trick and finished with four goals as Borussia Dortmund ran out 5-2 winners at Hertha Berlin to move within a point of Bundesliga leaders Bayern Munich.

Matheus Cunha gave the home side the lead with a 25-yard drive after 33 minutes, but the match was turned on its head by Haaland.

The Norwegian striker equalised from close range two minutes into the second half, then swiftly added another before making it 3-1 just after the hour after latching on to a stray backpass.

Raphael Guerreiro knocked in a fourth on 70 minutes, with Cunha pulling a goal back for the stunned hosts from the penalty spot.

Straight from the restart, Haaland scored his fourth after being played in by substitute Jude Bellingham.

Earlier, Bayern were held to a 1-1 home draw by Werder Bremen.

Maxi Eggestein fired the visitors in front just before half-time, but France winger Kingsley Coman headed an equaliser after 62 minutes from a deep cross by substitute Leon Goretzka.

RB Leipzig are fourth, two points off the pace, after they drew 1-1 at Eintracht Frankfurt.

Aymen Barkok put the home side ahead just before half-time, but Yussuf Poulsen equalised in the 57th minute.

Bayer Leverkusen won 2-1 at strugglers Arminia Bielefeld with a late goal from substitute Aleksandar Dragovic which moved them third following a fifth straight victory.

Leon Bailey put the visitors ahead midway through the first half, with an unfortunate own goal by goalkeeper Lukas Hradecky, who sliced a backpass into his own net, levelling things up shortly after the restart.

Dragovic, though, secured all three points with just two minutes left.

Augsburg overcame the dismissal of substitute Raphael Framberger to snatch a late 1-1 draw at Borussia Monchengladbach.

Florian Neuhaus put the home side ahead after only five minutes.

Defender Framberger had only been on for 10 minutes when was sent off for a second caution.

Daniel Caligiuri, though, earned Augsburg a point when his deflected volley effort went in with just two minutes left.

Marc-Oliver Kempf’s last-minute goal helped Stuttgart secure a 3-3 draw against Hoffenheim after an action-packed game at the Rhein-Neckar-Arena.

Christoph Baumgartner’s opener on 16 minutes was soon cancelled out by a fine individual effort from Nicolas Gonzalez, before Silas Wamangituka Fundu’s scrappy finish gave the visitors the lead.

On-loan Tottenham midfieder Ryan Sessegnon got Hoffenheim level again two minutes into the second half, with a penalty from fit-again Andrej Kramaric looking to have been enough for victory only for Kempf to have the final say.

Wolfsburg won 2-0 at strugglers Schalke, with goals from Wout Weghorst and Xaver Schlager inside the opening half-hour.

In Spain, Atletico Madrid punished a mistake by Barcelona goalkeeper Marc-Andre Ter Stegen to close out a 1-0 LaLiga win at the Wanda Metropolitano.

The German had a rush of blood in first-half stoppage time when he raced up field to try to shut down a counter-attack, only to be left red-faced as Yannick Carrasco took the ball around him and knocked it into the empty net.

Barcelona could not find their way back into the match, leaving coach Ronald Koeman once again facing more questions over the direction of his side, who remain down in 10th place.

Yannick Carrasco made Barcelona’s goalkeeper Marc-Andre Ter Stegen pay for his rash decision
Yannick Carrasco made Barcelona’s goalkeeper Marc-Andre Ter Stegen pay for his rash decision (Bernat Armangue/AP)

Atletico, though, move level on 20 points with leaders Real Sociedad after extending their unbeaten run to 24 games.

Earlier on Saturday, Gerard Moreno’s late penalty helped secure Villarreal a 1-1 draw with Real Madrid to maintain their unbeaten home record.

Los Blancos, looking to respond from the 4-1 defeat at Valencia before the international break, took an early lead through Mariano’s header.

Moreno had missed a couple of opportunities to haul his side level, but made sure of a share of the points when he converted from the spot with 14 minutes left.

The Yellow Submarine are third, a point off the leaders, but having played more games, with Los Blancos fourth.

Sevilla beat Celta Vigo 4-2 at the Ramon Sanchez Pizjuan to sit seventh.

Jules Kounde gave the home side an early lead after five minutes, but Iago Aspas soon equalised before Nolito put Celta 2-1 ahead.

Youssef En-Nesyri levelled things up again on the stroke of half-time, with two goals in the final five minutes from Sergio Escudero and Munir El Haddadi securing all three points.

Saturday’s lunch-time kick-off saw Elche come from behind to draw 1-1 draw at strugglers Levante.

Cristiano Ronaldo scored a first-half double as Juventus beat Cagliari 2-0 and moved within a point of the top of Serie A.

Ronaldo broke the deadlock on 38 minutes with a low drive and then soon had another when he flicked the ball in from a corner.

Robin Gosens’ goal on 56 minutes was enough to give Atalanta a 1-0 win at Spezia.

Lazio won 2-0 at Crotone, with goals in each half from Ciro Immobile and Joaquin Correa, to sit seventh.

In Saturday’s only Ligue 1 fixture Brest thrashed Saint-Etienne 4-1.

Franck Honorat, Jean-Kevin Duverne, Irvin Cardona and Steve Mounie were all on target in the first half. Mahdi Camara scored a consolation for the visitors on 31 minutes.

Marseille’s game was postponed following a number of Covid-19 cases within the Nice squad.