Manchester United slumped to their fourth home defeat of the season as Emmanuel Adebayor and Christian Eriksen scored the goals that earned Tottenham a 2-1 victory at Old Trafford.
Danny Welbeck pulled one back for the hosts but despite a succession of penalty appeals and chances for Javier Hernandez, Wayne Rooney and Nemanja Vidic, a combination of goalkeeper Hugo Lloris, good fortune and some desperate Tottenham defending kept them at bay.
The result maintained Tim Sherwood's impressive start as Andre Villas-Boas' replacement, with three wins and a draw over the festive period taking Spurs above their opponents to sixth.
Arsenal left it very late to defeat Cardiff 2-0 and stay at the top of the table.
Man Utd 1 - 2 Tottenham
Liverpool 2 - 0 Hull City
C Palace 1 - 1 Norwich
Southampton 0 - 3 Chelsea
Stoke City 1 - 1 Everton
West Brom 1 - 0 Newcastle
Fulham 2 - 1 West Ham
Arsenal 2 - 0 Cardiff
Sunderland 0 - 1 A Villa
Swansea 2 - 3 Man City
It looked like Manchester City would take over after their 3-2 victory over Swansea at lunchtime as the Gunners toiled against Cardiff, who were being watched at the Emirates by prospective new manager Ole Gunnar Solskjaer.
But there was delight at the Emirates Stadium as Nicklas Bendtner netted in the 88th minute and Theo Walcott made the points safe in injury-time.
Manuel Pellegrini's City have now won seven straight matches and the victory at the Liberty Stadium left them a point behind Arsenal.
Wilfried Bony cancelled out Fernandinho's 14th-minute opener for City on the stroke of half-time but Yaya Toure put City back in front in the 58th minute.
Aleksandar Kolarov seemingly put the game beyond Swansea eight minutes later and Bony's injury-time second came too late to make a difference.
Two second-half substitutions proved key in Chelsea's 3-0 victory over Southampton.
Oscar was instrumental in the first two goals, with his cross being deflected against a post for Fernando Torres to score the opener on the hour mark before the Brazilian set up fellow substitute Willian in the 71st minute.
It was Oscar who then found the net himself with eight minutes to go courtesy of a deflection.
Liverpool climbed back into fourth place with a 2-0 win over Hull, the goals coming from Daniel Agger (36) and a stunning free-kick from Luis Suarez (50).
The Reds were also grateful to one of their own at the Britannia Stadium as on-loan winger Ossama Assaidi netted in Stoke's 1-1 draw with Everton.
It looked like Assaidi's 49th-minute goal would be the winner but in the 90th minute Jermaine Pennant fouled Leon Osman and Leighton Baines equalised from the penalty spot.
It was not enough to prevent Everton slipping behind Liverpool, though, with the Reds now one point ahead of their city rivals.
Kevin Nolan's red card proved costly as West Ham slumped to a 2-1 defeat at fellow strugglers Fulham.
Nolan picked up his second red card in four games just before half-time for kicking out at Fernando Amorebieta.
Mohamed Diame put the Hammers ahead in the seventh minute but Steven Sidwell headed a 32nd-minute equaliser and Fulham's pressure eventually paid off with Dimitar Berbatov netting the winner (66).
1 Arsenal 45
2 Man City 44
3 Chelsea 43
4 Liverpool 39
5 Everton 38
6 Tottenham 37
7 Man Utd 34
8 Newcastle 33
9 Southampton 27
10 Hull City 23
11 A Villa 23
12 Stoke City 22
13 Swansea 21
14 West Brom 21
15 Norwich 20
16 Fulham 19
17 Cardiff 18
18 C Palace 17
19 West Ham 15
20 Sunderland 14
West Brom caretaker boss Keith Downing had a happy ending to a difficult few days as Saido Berahino's 87th-minute penalty gave the Baggies a 1-0 victory over Newcastle.
It was Albion's first victory in 10 games, the last four of which have been under the control of Downing.
Nicolas Anelka was selected despite the furore over his goal celebration at West Ham on Saturday but it was Berahino who settled the contest after Matej Vydra was fouled by goalkeeper Tim Krul.
Newcastle had earlier been reduced to 10 men, Mathieu Debuchy seeing red for a two-footed tackle.
Aston Villa also picked up a much-needed victory as they beat Sunderland 1-0, with the goal coming in the 15th minute from Gabriel Agbonlahor.
It finished 1-1 at Selhurst Park where Jason Puncheon netted from the penalty spot in the 44th minute to secure a draw for Crystal Palace against Norwich.
Bradley Johnson had scored for Norwich in the 39th minute but Mile Jedinak was pushed by Leroy Fer and Puncheon grabbed his first goal for Palace.
Fer's miserable day was complete when he was sent off for two bookable offences.