Bayern Munich remain a point clear and have a match in hand at the top of the Bundesliga.
RB Leipzig spurned the chance to move top of the Bundesliga after a 2-2 draw at Wolfsburg.
Julian Nagelsmann’s men were out to recover from last weekend’s loss to Borussia Dortmund and went ahead in the fifth minute through Nordi Mukiele.
Bayern Munich remain a point clear ahead of their home match against Freiburg on Sunday.
Borussia Dortmund missed the chance to close up ground after they were held to a 1-1 home draw by relegation-battlers Mainz.
Thomas Meunier equalised in the 73rd minute, scoring a first goal for Dortmund, and then Marco Reus spurned the chance to complete the comeback as he dragged a penalty wide.
Danny Latza almost hit a late winner for Mainz, but his shot struck the post and rolled along the goal-line.
Silas Wamangituka’s stoppage-time penalty helped Stuttgart secure a 2-2 home draw against Borussia Monchengladbach.
Lars Stindl had the Foals – who beat Bayern Munich last time out – in front from the spot in the 35th minute, but Stuttgart forward Nicolas Gonzalez equalised just before the hour with a fine diving header.
Denis Zakaria, though, swiftly made it 2-1 in the 61st before there was late drama after VAR confirmed a penalty for Ramy Bensebaini‘s push on Sasa Kalajdzic – and Wamangituka stepped up to grab a point with what was the final kick of the match.
Elsewhere, relegation-battlers Cologne were held to a 0-0 home draw by Hertha Berlin, while it also finished goalless between fellow strugglers Hoffenheim and Arminia Bielefeld.
Paris St Germain went back to the top of the Ligue 1 table with a 1-0 win at Angers.
New manager Mauricio Pochettino was not at the match, the former Tottenham boss is in self-isolation after testing positive for Covid-19.
A well-taken volley from defender Layvin Kurzawa broke the deadlock with 20 minutes left, and was enough to send PSG two points in front of Lyon, who have a match in hand.
Relegation-battlers Nimes climbed off the foot of the table with a shock 2-1 win at Marseille.
The home side, beaten by PSG in the midweek Trophee des Champions, missed a first-half penalty when Florian Thauvin shot wide.
Niclas Eliasson turned in the opening goal at the near post 10 minutes after the restart, and then knocked in a second from close range in the 58th minute.
Dario Benedetto pulled a goal back with five minutes left, but there was to be no late drama as Les Crocodiles held on for a first win in nine games.
In Serie A, Sampdoria came from behind to beat Udinese 2-1 with a late goal from Ernesto Torregrossa on his debut.
Rodrigo De Paul had put the visitors in front in the 55th minute at the Stadio Luigi Ferraris.
Claudio Ranieri’s side, who had lost three of the last five four games, hit back in the 67th minute when Antonio Candreva converted a Panenka-style penalty.
Substitute Torregrossa, on loan from Brescia, headed in the winner with nine minutes left.
Bologna beat Hellas Verona 1-0 with an early spot-kick from Riccardo Orsolini to secure a first win since November 29.
Torino were held to a goalless draw at home by Spezia, who played almost the whole game with 10 men following the early red card for Luca Vignali, which had been upgraded after a VAR review.
In the Copa del Rey, Segunda Division promotion hopefuls Almeria thumped LaLiga strugglers Alaves 5-0.
Umar Sadiq scored twice as Alaves saw midfielder Tomas Pina sent off in the 35th minute.
Sevilla won 1-0 at Leganes with an extra-time goal from Lucas Ocampos, while in Saturday’s late game Rayo Vallecano beat Elche 2-0.
Real Valladolid needed extra-time to win 4-1 at Pena Deportiva, where Roque Mesa scored twice.
Girona beat Cadiz 2-0, with a second-half double from Valery Fernandez.
Levante needed penalties to get past Fuenlabrada, progressing 4-2 from the shoot-out after the tie ended 1-1 at Estadio Fernando Torres.