Leon Goretzka and Robert Lewandowski scored late on to keep Bayern Munich top of the Bundesliga with 4-2 comeback win over Borussia Dortmund in Der Klassiker.
Lewandowski completed his hat-trick in the final minute, shortly after Goretzka put Bayern ahead for the first time, long after Erling Haaland had fired the visitors 2-0 ahead inside nine minutes.
The win keeps Bayern two points clear of RB Leipzig, who had increased the pressure on the defending champions earlier with a 3-0 win at Freiburg.
It was the sixth consecutive league game where Dortmund conceded at least four goals at the Allianz Arena, a bitter blow for Edin Terzic's team after frustrating Bayern for the first 88 minutes.
The visitors made a furious start. Haaland scored in the second minute with the help of a deflection from Bayern defender Jerome Boateng, seven minutes before Thorgan Hazard set him up for a tap-in.
But Lewandowski pulled one back in the 26th and equalised from the penalty spot before the interval after Mahmoud Dahoud fouled Kingsley Coman in the area, confirmed courtesy of a VAR review.
Haaland hurt his right foot after a challenge from Boateng and had to go off on the hour mark, before Goretzka capitalised on a defensive mistake to make the breakthrough in off the left post, and Lewandowski claimed his 31st goal of the season in the dying moments.
Elsewhere, Frankfurt were held to a 1-1 draw by Stuttgart and failed to take advantage of third-placed Wolfsburg's 2-1 defeat to Hoffenheim, which was only their third defeat of the season.
Victory for Frankfurt could have taken them into third themselves, but they could not find a breakthrough after Filip Kostic cancelled out Sasa Kalajdzic's opener.
Instead, Leverkusen closed in on an increasingly tight race for the top four with a 1-0 win at Borussia Monchengladbach, with Patrik Schick the scorer of the game's only goal to move them three points behind Frankfurt.
Hertha Berlin eased their relegation worries with a much-needed win courtesy of an 89th-minute Dodi Lukebakio penalty to beat Augsburg 2-1 and are now three points ahead of Mainz, who sit in the relegation play-off place.
Messi inspires Barcelona to victory
Lionel Messi provided two assists as Barcelona overcame a difficult trip to Osasuna on Saturday to win 2-0 and move to within two points of La Liga leaders Atletico Madrid.
Messi helped Barca take the lead on the half-hour mark when he carved open Osasuna's defence with a superb cross-field ball to Jordi Alba, who controlled before blasting into the roof of the net.
He then laid the ball off when 18-year-old midfielder Ilaix Moriba struck in the 83rd minute, producing a confident finish inside the post from outside the area to score his first goal for the club in only his third league appearance.
Barca stay second but moved on to 56 points after 26 games, two points behind Atletico Madrid who have played 24 matches and host third-placed Real Madrid on Sunday. Osasuna are 13th on 28.
Sevilla slumped to a surprise 2-1 defeat at struggling Elche in La Liga to complete a miserable week of three consecutive losses.
Julen Lopetegui's side were reeling from their Copa del Rey semi-final elimination by Barcelona on Wednesday and fell behind in the 70th minute when Raul Guti appeared unmarked in the box to smash home a cross after Elche attacked following a throw-in.
Guido Carrillo doubled Elche's lead six minutes later, heading a free-kick in off the post and over the line before Sevilla 'keeper Tomas Vaclik could get to the ball.
Luuk de Jong pulled one back for Sevilla in the 90th minute and they had five additional minutes to find an equaliser but they were beaten again after last week's 2-0 league loss to Barcelona and their 3-0 Cup defeat at Barca in the second leg at the Nou Camp, having won the first leg 2-0.
Sevilla are fourth in the standings on 48 points, 10 behind leaders Atletico Madrid who face Real Madrid on Sunday.
Elsewhere in Spain, Valladolid moved three points clear of the bottom three with a 2-1 win over Getafe, three points further behind Cadiz, who beat Eibar 1-0 thanks to Alvaro Negredo's goal.
Morata steps in for Ronaldo as Juve win
Two goals from Alvaro Morata helped Juventus come from behind to beat Lazio 3-1 in Serie A on Saturday, closing the gap on leaders Inter Milan to seven points.
Joaquin Correa capitalised on an underhit backpass from Juve's Dejan Kulusevski before finishing well to give the visitors a surprise 14th-minute lead.
With Cristiano Ronaldo on the bench, the champions struggled to create any real openings until Adrien Rabiot scored a rare Serie A goal, firing into the roof of the net from a tight angle six minutes before the break to level.
Sergej Milinkovic-Savic almost put Lazio back ahead but was denied by the crossbar, and Juve capitalised by edging ahead through a fine Morata finish in the 57th minute.
Three minutes later, Morata slotted home from the penalty spot after Aaron Ramsey had been fouled to make sure of a win that moved Juve on to 52 points, one behind AC Milan.
Milan and Inter are in action on Sunday and Monday respectively.
A third defeat in four league games dented Lazio's top-four hopes, with Simone Inzaghi's men down in seventh on 43 points, six behind fourth-placed Atalanta.