Aston Villa scored a late penalty to beat strugglers Burnley 3-2 and move second in the Premier League before Manchester United slumped to a 2-1 defeat at Nottingham Forest.
Villa – who lost 3-2 at Manchester United on Boxing Day after leading 2-0 – went ahead in the 28th minute through Leon Bailey.
The Clarets were back on level terms just three minutes later when Zeki Amdouni fired home from close range following a free-kick.
Burnley had the ball in the net again, but Lyle Foster’s effort was ruled out for offside before Moussa Diaby then added a second for Villa in the 42nd minute.
The visitors were reduced to 10 men in the 56th minute when midfielder Sander Berge was given a second caution for tugging back Douglas Luiz.
Foster, though, hauled Burnley level with 20 minutes left – this time his goal allowed to stand following a VAR review.
Just when it looked like Vincent Kompany’s men would hold out for a welcome point, Aaron Ramsey fouled Jhon Duran to concede an 89th-minute penalty. Luiz sent his spot-kick on to the underside of the crossbar and into the roof of the net to secure another home win for Villa.
In Saturday’s late kick-off, Manchester United were beaten 2-1 at Nottingham Forest, who secured a second straight win for new boss Nuno Espirito Santo. After a low-key first half, Forest went ahead just after the hour when Nicolas Dominguez swept in a low cross from Gonzalo Montiel.
United were level in the 78th minute after a poor clearance from Forest keeper Matt Turner was punished as Alejandro Garnacho squared for Marcus Rashford to equalise.
Forest, though, were back in front again just four minutes later when Morgan Gibbs-White curled a fine strike into the far corner to leave United in seventh place – nine points off the top four.
Manchester City beat Sheffield United 2-0 at the Ethiad Stadium to move third, above Arsenal on goal difference.
Rodri gave City the lead in the 14th minute with a low finish into the bottom corner after good hold-up play by Phil Foden.
Midfielder Jack Grealish – whose Cheshire home had been burgled while he was away playing at Everton on Wednesday night – was taken off early in the second half and replaced by Oscar Bobb.
Julian Alvarez doubled City’s lead just after the hour from close range after Bobb had played in Foden.
Earlier, Chelsea survived a spirited late fightback by Luton to win 3-2 at Kenilworth Road.
Mauricio Pochettino’s team had looked to be cruising to a first away victory since early November following a brace from Cole Palmer – his second goal showing fine close control – either side of Noni Madueke’s strike just before half-time.
Luton, though, set up a tense final 10 minutes after Ross Barkley scored against his former club before Elijah Adebayo pulled another back late on, but the Blues held out.
Michael Olise scored twice as Crystal Palace returned to winning ways after coming from behind to beat Brentford 3-1 at Selhurst Park.
Keane Lewis-Potter fired the Bees into an early lead after just two minutes, the goal given following a lengthy VAR check for a possible offside.
Palace were soon back on level terms in the 14th minute when Olise volleyed in at the back post before Eberechi Eze completed the turnaround shortly before half-time.
Olise fired in a well-taken second from the edge of the penalty area in the 58th minute as Palace ended an eight-match winless run.
Wolves maintained their good form with a 3-0 win over relegation-battlers Everton at Molineux.
Captain Max Kilman put Wolves in front in the 25th minute following a scramble in the penalty area, which was only his second goal for the club. The players celebrated by holding up a shirt in support of Mario Lemina following the death of his father.
Wolves doubled their lead early in the second half through a close-range finish from Matheus Cunha and Craig Dawson added a third on the hour.
Hwang Hee-chan and Pedro Neto both saw goals disallowed for offside as Gary O’Neil’s well-drilled went on to close out a third straight win.