Stoke lifted themselves out of the drop zone with a battling victory over Man City, Aston Villa and Arsenal were held and Portsmouth's woes increased.
The 10-man Potters overcame the first-half dismissal of Rory Delap to snatch all three points thanks to James Beattie's header.
Aston Villa could have moved into second place with victory over Wigan, but they were unable to find a way beyond Steve Bruce's battling Latics.
Arsenal were similarly frustrated in their London derby against West Ham at Emirates Stadium, missing the chance to close in on their rivals for a top-four finish.
Bolton allowed another 2-0 lead to slip away in their clash with Tottenham before snatching all three points thanks to a late winner from Kevin Davies.
Fulham increased Portsmouth's woes with a 3-1 victory at Craven Cottage, Hull and West Brom shared the points at the KC Stadium and Middlesbrough's home meeting with Blackburn ended in stalemate.