Manchester City rescued their Barclays Premier League title hopes with a late comeback in a 2-1 victory at Watford.
On an afternoon when wins for rivals Arsenal and Manchester United made a positive result even more crucial, Aleksandar Kolarov's own goal appeared to have given Watford their latest win.
However, Yaya Toure and Sergio Aguero rescued City with two fine goals in the final 10 minutes to keep third-placed City within three points of leaders Arsenal.
Wayne Rooney eased the pressure on Manchester United manager Louis van Gaal on a red-letter day for the England captain at Old Trafford.
Rooney struck a 75th-minute winner - only his third of the Barclays Premier League campaign - as United beat Swansea 2-1 to claim their first win in nine attempts.
The clever back-heel finish was Rooney's 188th Premier League goal, taking him past former United striker Andy Cole and into second place behind Alan Shearer.
It was also his 238th goal for the Red Devils and moved him above Denis Law on United's list of goalscorers.
Anthony Martial's downward header soon after the break gave United the lead but Swansea, who had won the last three meetings between the clubs, equalised when Gylfi Sigurdsson headed home 20 minutes from time.
Rooney's strike saw United score two at home for the first time in two months but even then van Gaal, who has come under increasing pressure during the club's worst run for 26 seasons, had to endure an anxious finish, which included Swansea goalkeeper Lukasz Fabianski heading inches wide from a corner in the final seconds.
Leaders Arsenal opened up a two-point lead at the top as Laurent Koscielny's volley gave them a hard-fought 1-0 victory over Newcastle.
Relegation-threatened Newcastle dominated for long periods but they were undone after 72 minutes when Olivier Giroud flicked on a corner and Koscielny grabbed his third goal of the season.
Second-placed Leicester were frustrated in a goalless home draw with Bournemouth as the Cherries survived the sending off of Simon Francis to claim a precious point.
Francis was dismissed for bringing Jamie Vardy down after 57 minutes with referee Andre Marriner adjudging the defender had denied a goal-scoring opportunity.
But Bournemouth were spared further punishment as Artur Boruc saved Riyad Mahrez's penalty and the Cherries held on with 10 men.
West Ham striker Andy Carroll was on target against former club Liverpool with a trademark header in a 2-0 home victory.
Carroll, who was let go by former Liverpool boss Brendan Rodgers after just 18 months on Merseyside, powered home after 54 minutes to end the visitors' mini-revival under Jurgen Klopp.
Michail Antonio's second goal in as many games had earlier given the Hammers a 10th-minute lead and Liverpool were far from convincing after festive victories over Leicester and Sunderland.
West Brom beat in-form Stoke 2-1 as Johnny Evans claimed a stoppage time winner for the Baggies, his first goal for the club.
Evans struck after Stoke had been reduced to 10 men late on for Geoff Cameron's push on Claudio Yacob.
Stephane Sessegnon's first goal in 15 months had put West Brom ahead on the hour before Jonathan Walters equalised moments before Cameron's 83rd-minute dismissal.
Jermain Defoe scored twice as Sunderland beat Aston Villa 3-1 to leave the visitors seven points adrift at the bottom and facing an almost impossible task to survive.
Patrick van Aanholt's deflected drive gave Sunderland the lead on the half-hour before Carles Gil levelled with a spectacular volley after 63 minutes.
But Defoe scored twice in the final 20 minutes to take his season's total to nine as Sunderland ended a five-game losing streak.
Alex Tettey's 76th-minute goal gave Norwich a 1-0 victory over Southampton, who suffered their seventh defeat in nine games after Victor Wanyama had been sent off for two bookings with the game goalless.