Arsenal regained top spot in the Premier League while Manchester City edged out Liverpool in an enthralling Boxing Day programme.

Theo Walcott scored twice as Arsenal came from behind to win 3-1 at West Ham while Alvaro Negredo netted the winner as City saw off Liverpool 2-1 in a breathless encounter to go second.

Beginning the day behind leaders Liverpool on goal difference, Arsenal trailed to Carlton Cole’s early strike but Walcott struck twice and Lukas Podolski scored the third to seal victory.

The win puts Arsenal one point ahead of City, with Chelsea third after a 1-0 win over Swansea and Liverpool dropping back to fourth, three points off the pace.

Arsenal fell behind at Upton Park when Cole slammed in a rebound in the first minute of the second-half.

But the visitors equalised when Walcott’s tame shot crept through a crowd of players and then the England striker put them in front soon after with a header from close range.

Substitute Podolski fired in a third with a powerful shot from the edge of the area to restore Arsenal to top spot, while West Ham dropped into the bottom three.

“We couldn’t take our chances in the first-half and we responded very well in the second-half,” Arsenal manager Arsene Wenger said.

Liverpool took the lead through Philippe Coutinho but Vincent Kompany headed an equaliser and then Negredo fired them in front, with Simon Mignolet making a rare mistake in the Liverpool goal.

Raheem Sterling missed a golden chance to equalise and Luis Suarez might have had a late penalty but City held on to move within one point of Arsenal.

Eden Hazard scored the only goal as Chelsea scraped to a 1-0 victory over Swansea.

Ashley Williams’ attempt to clear the Belgian’s shot confused goalkeeper Gerhard Tremmel and crept below the goalkeeper and into the net.

“With the three points and clean sheet, I am satisfied,” Chelsea manager Jose Mourinho said. “The way we controlled a good team for 75-80 minutes was very good too.

Everton stayed fifth after a surprise 1-0 defeat at home to bottom side Sunderland.

Ki Sung-Yueng scored the winner from the penalty spot after he was fouled by Tim Howard, who was sent off for his trouble.

Champions Manchester United gave their title hopes a boost as they recovered from two goals down to win 3-2 at Hull City.

Chris Smalling and Wayne Rooney cancelled out early James Chester and David Meyler goals for Hull before Chester headed into his own net to give United victory.

United suffered a terrible start to the match as Chester fired Hull in front after four minutes and Meyler added a second nine minutes later.

But United bounced back, first through a Smalling header and then through a moment of brilliance from Rooney, who turned and volleyed into the top corner to make it 2-2 at half-time.

Hull almost regained the lead when Alex Bruce’s header rebounded off the bar but then handed United a third when Chester headed an own goal, under pressure from Rooney.

Antonio Valencia was sent off for a second yellow card and Chester almost equalised in injury-time but Chester’s attempt was blocked by Ed De Gea.

Crystal Palace moved out of the bottom three as Dwight Gayle’s 90th-minute winner gave them a 1-0 victory at Aston Villa.

Fulham is third-bottom despite a 2-1 win at Norwich, with Scott Parker netting the winner three minutes from time.

Newcastle United is sixth after a 5-1 win over Stoke, who had two men sent off, while Tottenham Hotspur was held to a 1-1 draw at home by West Brom in the day’s other match.

More In: Football | Sport