Arsenal missed the chance to move within a point of Premier League leaders Manchester United as they were held to a 0-0 draw at home to Sunderland.
The Gunners, who saw United beaten in midweek, made a slow start and Wojciech Szczesny made a couple of early saves. Arsenal exerted more pressure on the game in the second half but found Sunderland 'keeper Simon Mignolet in brilliant form. Mignolet made superb saves to thwart Nicklas Bendtner and Samir Nasri, while Marouane Chamakh thudded a header against the bar and Andrei Arshavin shot wide.
Banned Manchester City star Kolo Toure was in the stands to watch the Blues claim a 1-0 win against Wigan at Eastlands and close the gap on the Gunners.
The Ivorian has tested positive for a banned substance and could face anything up to a two-year suspension. But at least the scoreline would have lifted his spirits as goalkeeper Ali Al Habsi let David Silva's shot squirm from his grasp seven minutes before the break.
City offered little after the break and, although Antolin Alcaraz hit the post and Conor Sammon had a great chance for Wigan at the death, the home side held their lead to secure all three points.
West Ham's revival in fortunes continued with a 3-0 win over a disappointing Stoke City. The Hammers were in real trouble at Christmas but have shown signs of life in recent weeks and they hauled themselves out of the bottom three with victory at the Boleyn Ground.
The opening goal on 21 minutes was a shade fortunate for the Hammers as Stoke 'keeper Asmir Begovic came flying off his line only to get his wires crossed with Marc Wilson, and Demba Ba was on hand to tap home. There was nothing fortunate about the second as Thomas Hitzlsperger whipped in a free kick and Manuel Da Costa rose to head home.
Hitzlsperger has sparked a revival in West Ham since his return from injury and he crashed in a trademark bullet finish on 83 minutes to put some gloss on the scoreline.
Ashley Young missed a penalty as Bolton twice came from behind before snatching a 3-2 win over Aston Villa.
Darren Bent appears to be justifying his substantial transfer fee following his move from Sunderland and he fired Villa ahead early on, but the plaudits were taken by Kyle Walker who skipped between tackles before laying the ball on a plate for Bent.
Bent crashed a header against a post later in the first half and Villa were made to pay for not increasing their lead as Gary Cahill marched on to a Martin Petrov corner to level. Villa came out for the second half with real purpose and just past the hour mark Stewart Downing surged down the flank and teed up Marc Albrighton to level.
Young had a chance to seal the points when winning a penalty off David Wheater and taking it himself, but Jussi Jaaskelainen proved his equal by keeping it out.
Young was made to pay as Cahill grabbed his second of the game on 75 minutes. He powered a header from a corner which was superbly saved by Brad Friedel but Cahill reacted quickest to volley home - and it got worse for Villa four minutes from time as Ivan Klasnic netted the winner.
Everton battled back from a goal down to claim a 2-1 win at Newcastle. Toffees 'keeper Tim Howard will be a relieved man as he spilled a shot from Kevin Nolan into the path of Leon Best who opened the scoring. But the magical feet of Mikel Artena created the equaliser. The Spaniard burst into the box and cut the ball back for Leon Osman to level.
Newcastle have for so often shown a frailty at set-pieces and they were undone on 36 minutes as Leighton Baines whipped in a devilish free-kick and Phil Jagielka drove in at the far post to slot home off the underside of the bar. Best thought he had rescued a point with a goal 10 minutes from time but his effort was ruled out for a foul.
Damien Duff scored twice against his former club and it helped Fulham claim a 3-2 win over Blackburn Rovers.
The last time Duff scored a brace was in 1997, when he was a Blackburn player, but he has shown real sharpness in front of goal this season and he opened the scoring on 37 minutes. Rovers were level a minute before the break when a free kick from Grant Hanley took a huge deflection off Brede Hangeland and beyond Mark Schwarzer.
Duff lashed home a fine drive on 59 minutes but they were pegged back again when David Hoilett levelled. However, Fulham continued to press forward and they were awarded a late penalty - which substitute Bobby Zamora slammed down the middle to clinch the three points.
Roy Hodgson celebrated his first win as West Brom boss as Birmingham suffered a massive Carling Cup hangover in the relegation battle - losing 3-1 at St Andrew's. With West Ham winning, Birmingham tumbled into the bottom three.
Goals from Youssouf Mulumbu, James Morrison and Paul Scharner enabled the Baggies to leapfrog their local rivals in the battle for Premier League survival. All the home side could manage was a consolation effort from Jean Beausejour, as they paid the price for some uncharacteristic but sloppy defensive play.
The game burst into life at the start of the second half when Peter Odemwingie, who later missed a sitter, teed up Mulumbu for the opener. The celebrations had barely subsided when Beausejour drew Blues level. West Brom continued to carry the greater threat and Morrison fired home a stunner from 20 yards and with 18 minutes remaining Scharner headed home at the far post, although questions will be asked of keeper Ben Foster.