Borussia Dortmund staged a dramatic late comeback to win 3-2 at Eintracht Frankfurt and close the gap on Bundesliga leaders Bayern Munich to six points.

Bayern, depleted by Covid-19 cases at the club, had suffered a shock home defeat to Borussia Monchengladbach on Friday in the first game after the German top-flight's winter break.

However, it looked as if Dortmund would fail to take advantage after two goals from Rafael Borre saw Frankfurt lead 2-0 at half-time.

But with 19 minutes left, substitute Thorgan Hazard reduced the deficit after being played in by Erling Haaland before England midfielder Jude Bellingham headed home an equaliser in the 87th minute.

Mahmoud Dahoud then completed the dramatic turnaround when he clipped the ball into the bottom corner from 20 yards to secure all three points.

Jonathan Tah struck a late equaliser as Bayer Leverkusen battled to a 2-2 draw at home against Union Berlin.

Patrik Schick bagged his 17th Bundesliga goal to give the home side the lead, but Grischa Promel scored either side of the break to turn the match around before Tah headed in with six minutes left to secure the hosts a point.

Hoffenheim sit third after a 3-1 win over Augsburg, with Ihlas Bebou striking twice late in the first half.

A brace from Andre Silva helped RB Leipzig beat 10-man Mainz 4-1 at the at the Red Bull Arena.

The visitors had defender Alexander Hack sent off after only 19 minutes for handball, resulting in a penalty which Silva dispatched.

Arminia Bielefeld fought back to draw 2-2 against Freiburg. The Black Forest side took an early lead through Jannik Haberer with Jeong Woo-yeong adding another at the start of the second half.

Masaya Okugawa's header reduced the deficit on the hour and substitute Bryan Lasme slotted in an equaliser with just three minutes left to edge a point closer to safety.

Greuther Furth's clash against fellow strugglers Stuttgart finished goalless.

Real Madrid extended their advantage at the top of La Liga following a 4-1 home win over Valencia at the Bernabeu.

Shortly before half-time, Karim Benzema broke the deadlock from the penalty spot after Casemiro had been fouled.

Benzema then set up Vinicius Junior early in the second half to double the lead before the Brazilian headed in a third on the hour.

Valencia pulled one back in the 76th minute when Goncalo Guedes nodded in the rebound after Thibaut Courtois had saved his penalty.

Benzema added a late fourth for Los Blancos as Carlo Ancelotti's men moved eight points clear of second-placed Sevilla, albeit having played two matches more.

Barcelona sit sixth after earlier being held to a 1-1 draw at Granada, who hit a late equaliser against 10 men.

Luuk De Jong had an early header ruled out by VAR before the Dutchman eventually broke the deadlock on the hour after being set up by Dani Alves, back for a first LaLiga appearance since 2016.

Barcelona midfielder Gavi was sent off for a second yellow card in the 79th minute and Antonio Puertas crashed in a dramatic late strike to snatch a point.

Mikel Oyarzabal's early goal proved enough to give Real Sociedad a 1-0 home win over Celta Vigo and move them level on points with third-placed Betis, who travel to Rayo Vallecano on Sunday.

Bottom club Levante beat Mallorca 2-0 to finally record a first league win of the season, finishing with 10 men following a late red card for midfielder Jose Campana.

In Ligue 1, Wesley Said scored a last-minute winner as Lens beat Rennes 1-0 at Stade Bollaert-Delelis.

Rennes - looking to close up on the Champions League places - thought they had scored on the hour, only for Gaetan Laborde to be flagged offside.

Substitute Said then had the final word when his shot went in off the underside of the crossbar to send Lens up into sixth.

Defending champions Lille's match against Lorient was postponed following a Covid-19 outbreak in their squad.