Manchester City closed the gap on Premier League leaders Manchester United in dramatic fashion as Gareth Barry's stoppage-time winner clinched a crucial 1-0 victory over Reading.
With United not in action until Sunday's trip to Swansea, Roberto Mancini's team desperately needed to put pressure on their bitter rivals and they finally seized the opportunity in the closing minutes at Eastlands.
After labouring to break down struggling Reading for long periods, the champions broke the deadlock when England midfielder Barry headed home from a David Silva cross.
That was enough to move City within three points of United and keep their title challenge alive heading into the busy Christmas programme, while Reading stay bottom after their 11th defeat of the season.
"We had lots of possession but if you don't score early it is very difficult," Mancini said.
"You need to score quickly in these games and sometimes you have to take a risk to score, but I think we deserved to win."
Reading boss Brian McDermott added: "That goal at the end is just wrong. He (Barry) is on Nicky Shorey's back and it is an absolutely certain foul."
Arsenal climbed to third place, nine points behind City, as Mikel Arteta's second half penalty sealed a 1-0 win over Wigan at the DW Stadium.
The only goal of a scrappy encounter arrived in the 60th minute when Spanish midfielder Arteta fired home from the spot after referee Jonathan Moss gave a penalty for Jean Beausejour's clip on Theo Walcott.
For all the talk of a crisis enveloping Arsene Wenger's side after their humiliating League Cup defeat at League Two minnows Bradford, the Gunners have now won their last three league matches and are back in the race to secure a Champions League place.
"It was very important because we beat West Brom at home and now we have two away wins," Wenger said.
"It was a difficult game because they stopped us from playing. I believe they are in the wrong position in the table."
Everton surged into fourth place with a 2-1 win over West Ham at Upton Park.
The Hammers took a 14th minute lead through Carlton Cole, but Victor Anichebe levelled with a 64th minute header.
Cole was sent off midway through the second half for a clash with Leighton Baines and Everton took advantage of their numerical superiority to grab the winner through Steven Pienaar's deflected effort in the 73rd minute.
Everton had midfielder Darron Gibson sent off for a high challenge in the closing stages, but David Moyes' side held on.
That win for Everton meant Tottenham slipped down to fifth place after being held to a frustrating 0-0 draw by Stoke at White Hart Lane.
Liverpool winger Stewart Downing finally ended his Premier League goal drought as the Reds beat Fulham 4-0 at Anfield to record their biggest win of the season.
Downing had gone 44 league matches without a goal since joining from Aston Villa in a £20 million deal in 2011, but he netted in the 51st minute after first half strikes from Martin Skrtel and Steven Gerrard. Luis Suarez got the fourth in stoppage-time.
Newcastle ended a miserable run of six defeats from their last seven league games as Shola Ameobi clinched a 1-0 victory against QPR at St James' Park.
Ameobi came off the bench to hit the winner with a fine finish in the 81st minute, handing QPR boss Harry Redknapp his first defeat since officially taking charge last month.
West Bromwich Albion also remain in the hunt for a top-four finish after a 2-1 win against Norwich at The Hawthorns left them sixth and level on points with Arsenal, Everton and Tottenham.
Robert Snodgrass put the visitors ahead in the 23rd minute, but Albion equalised through Zoltan Gera in the 43rd minute and on-loan Chelsea forward Romelu Lukaku headed the winner with eight minutes remaining.
Sunderland boosted their survival hopes as Steven Fletcher's 42nd minute goal sealed a 1-0 win at fellow strugglers Southampton.