Aston Villa took a giant stride towards Premier League safety and left Norwich City firmly in the relegation mire in the process as Wigan Athletic also gave their survival hopes a major shot in the arm.
Newcastle United recovered from last week's hammering by Liverpool to draw at West Ham United and Nigel Adkins celebrated his first win as manager of Reading.
Arsenal moved up to third spot, Tottenham Hotspur left it late to see off Southampton at home, while Swansea City and Manchester City played out a scoreless stalemate in South Wales.
Gabriel Agbonlahor scored twice to move Aston Villa on to 40 points after Paul Lambert watched his team pinch a 2-1 win at former club Norwich.
After a tight first half, Villa went ahead 10 minutes after the interval when Agbonlahor ran unchecked from the halfway line and fired home a 25-yard shot which curled away from Mark Bunn.
But Norwich were level 16 minutes from time when Joe Bennett bundled over Robert Snodgrass just inside the box and Grant Holt stepped up to confidently convert the penalty.
With a minute to go, Villa stole all three points when Agbonlahor was played in down the right of the box and he placed a low shot beyond Bunn.
The result means Villa climb to 14th in the table and Norwich are just three points outside the relegation zone with two games to play.
Callum McManaman scored an 80th minute winner as Wigan twice came from behind to post a thrilling 3-2 success at West Bromwich Albion.
West Brom took the lead just before the half-hour mark when Markus Rosenberg, making a rare start, got down the right and his low cross was finished off by Shane Long from close range.
Yet parity was restored six minutes before half-time when Jean Beausejour delivered a teasing cross from the left and Arouna Kone rose well to head beyond Ben Foster.
But the Baggies were back front five minutes into the second half when Graham Dorrans curled in a free-kick from the right and Gareth McAuley's header bounced down and past Joel.
Wigan, though, refused to buckle and equalised for a second time on 58 minutes when James McArthur made an instant impact as the substitute headed home at the far post following fine work by Shaun Maloney.
With 10 minutes left, Maloney was the architect for the winner as he got to the byline before pulling the ball back for McManaman to score from six yards out.
Newcastle inched a point closer to Premier League survival after Alan Pardew saw his team claim a 0-0 draw away to his former club West Ham.
The Magpies thought they had taken the lead on 20 minutes when Papiss Cisse rolled a shot past Jussi Jaaskelainen, but Winston Reid appeared to get back just in time to clear the ball off the line.
The visitors came close again in the second half when Yoan Gouffran took the ball past the onrushing Jaaskelainen, but his looping effort from an acute angle just drifted past the far post.
Theo Walcott scored the fastest goal of the Premier League season as Arsenal won 1-0 at Queens Park Rangers to remain on course for UEFA Champions League qualification for a 16th successive season.
England international Walcott struck after just 20 seconds as his scruffy finish found its way past Rob Green, while Loic Remy forced a fine late save out of Arsenal keeper Wojciech Szczesny.
Gareth Bale scored a stunning late winner against his former club Southampton to boost Tottenham's Champions League hopes with a 1-0 win at White Hart Lane.
In a match delayed by 30 minutes, Southampton had the best chances in the first half, with Nathaniel Clyne's volley flying past the post after he was sent clear.
Southampton came close again 10 minutes before half-time when Rickie Lambert's free-kick was brilliantly turned onto the post by Hugo Lloris, who recovered quickly to save Steven Davis' header on the follow-up.
Spurs were huffing and puffing in search of a winner until Bale collected the ball on the right with four minutes to go and he cut inside before unleashing a swerving shot from 25 yards which flew inside the post.
Capital One Cup winners Swansea's season continues to limp towards its conclusion after a 0-0 draw at home with last season's champions Manchester City.
In a game which saw Michu and Edin Dzeko miss glorious chances, the result takes Roberto Mancini's side a step closer to wrapping up second spot and edges Swansea nearer to a top-10 finish.
Relegated Reading snapped a run of 10 Premier League games without a win by moving off the bottom of the table thanks to a 4-2 victory at Fulham.
Reading were ahead on 12 minutes when Hal Robson-Kanu converted from the penalty spot after he had been felled by a clumsy challenge from John Arne Riise.
A flurry of five goals in just over 20 minutes then illuminated the game in the second half, with Reading going 2-0 up on 62 minutes when Robson-Kanu curled home after Garath McCleary's shot had been blocked.
Fulham replied on 70 minutes when Bryan Ruiz finished neatly following a one-two with Hugo Rodallega, but it was 3-1 five minutes later when substitute Adam Le Fondre took Jem Karacan's long pass beyond Mark Schwarzer and rolled the ball into an empty net.
The home side responded again on 77 minutes as Ruiz headed home Alex Kaciniklic's cross, but more slack defending from Fulham allowed Karacan to fire home Reading's fourth goal from the edge of the area on 83 minutes.