Cristiano Ronaldo was made to pay dearly for a penalty miss as Manchester United slipped up in their bid to end 2007 on top of the Premier League.
The Portugal winger dragged a second-half spot-kick wide at West Ham, who scored twice in five minutes to seal a 2-1 win at Upton Park.
Ronaldo earlier put United ahead with his 18th goal of the season, finishing a 14th-minute break and he should have made it 2-0 after Jonathan Spector was adjudged to have handled the ball just inside the box.
Headers from Anton Ferdinand and Matthew Upson then completed a dramatic turnaround, which meant Arsenal would have the chance to end the year on top of the table.
The match of the day came at White Hart Lane as Tottenham recorded an extraordinary 6-4 win over Reading.
Dimitar Berbatov scored four times, the first after only seven minutes.
But the home side were forced to come from behind three times as Kalifa Cisse and Ivar Ingimarsson made it 2-1 before Berbatov levelled.
That was the first of seven goals in 20 crazy minutes as Dave Kitson, Berbatov, Kitson again and Steed Malbranque made it 4-4 before a Robbie Keane penalty and Berbatov completed the carnage.
Injury-hit Chelsea closed to within four points of top spot with a battling 2-1 win over Newcastle.
Michael Essien gave the home side a half-time lead when he swept home from six yards shortly before the half-hour mark but Nicky Butt levelled when he eventually bundled home Charles N'Zogbia's cross at the second attempt.
However, Salomon Kalou scored a controversial winner three minutes from time after the ball deflected through to him, Newcastle appealing for offside.
Sunderland hauled themselves out of the drop zone with a 3-1 victory against Bolton.
Kieran Richardson, who only returned from a four-month injury lay-off on Boxing Day, scored his first goal for the club when he blasted the ball past Jussi Jaaskelainen following brilliant work from Kenwyne Jones.
The roles were reversed when Jones powered home a header from Richardson's corner.
El-Hadji Diouf halved the deficit before half-time when his flighted free-kick evaded everyone and curled into the net but Sunderland substitute Daryl Murphy kept his composure in stoppage-time to seal the win.
Fulham dropped to second bottom after Sebastian Larsson handed Birmingham a 1-1 draw at St Andrews.
Carlos Bocanegra's eighth-minute header put the visitors ahead in Ray Lewington's final match as caretaker boss.
But Blues equalised after the interval when Larsson latched on to Fabrice Muamba's through ball before his finish deflected in off Elliot Omozusi. Hameur Bouazza was then sent off for a second yellow card.
Wigan replaced Sunderland in the bottom three after Aston Villa staged a second-half fightback at the JJB Stadium.
Titus Bramble notched his first Latics goal with a bullet header from Ryan Taylor's pinpoint corner in the 28th minute but Curtis Davies marked his first Premier League start for Villa with his first goal for the club, heading in Gareth Barry's corner after the break.
Gabriel Agbonlahor then flicked a header past Chris Kirkland to complete the turnaround.
Tuncay Sanli's fourth goal in the last six games handed Middlesbrough a 1-0 victory at Portsmouth.
The Turk tapped into an empty net after David James parried Gary O'Neil's volley from Stewart Downing's inswinging cross.