West Brom had a men sent off and were dramatically held to a 2-2 draw at Charlton Athletic after Leeds United and Sheffield Wednesday missed the chance to apply pressure to the Championship leaders.
Slaven Bilic's side remain two points clear at the top after the Yorkshire rivals played out a 0-0 draw at Hillsborough.
Preston North End are up to second, above Leeds on goal difference, after coming from 2-0 down to claim a stunning 3-2 win over Blackburn Rovers in the all-Lancashire clash at Deepdale.
Huddersfield Town extended their unbeaten run to six matches and climbed out of the relegation zone with a 2-1 win over Barnsley that left their opponents bottom of the pile.
Cullen holds his nerve after Ferguson sees red
West Brom had to settle for a second consecutive 2-2 draw despite Matt Phillips finishing emphatically at the end of Matheus Pereira's 10th-minute run.
Macauley Bonne marked his birthday by heading the initial equaliser before highly rated West Brom defender Nathan Ferguson was eventually sent off for a reckless challenge on Chris Solly – referee Matt Donohue having initially dismissed Grady Diangana in a case of mistaken identity.
Hal Robson-Kanu restored Albion's lead despite their reduced numbers, but Josh Cullen dispatched a stoppage-time penalty after Semi Ajayi was adjudged to have fouled Naby Sarr as the pair collided.
Neither Leeds nor Wednesday were able to find a breakthrough but Preston found themselves in an all-action contest.
Sam Gallagher's header forced an own goal from North End goalkeeper Declan Rudd inside the first 30 seconds and the Blackburn striker soon made it 2-0 to the visitors.
Tom Barkhuizen reduced the arrears before the interval and would prove the match-winner – firing into the top corner eight minutes from time after Daniel Johnson scored his eighth of the season from the penalty spot.
Terriers' Cowley revival continues
Danny Cowley continued to work his magic at Huddersfield, with Karlan Grant netting his eighth of the campaign having created Christopher Schindler's opener.
Jacob Brown pulled a goal back for Barnsley, who are joined in the bottom three by Middlesbrough – Jonathan Woodgate's men held to a 0-0 draw by Fulham at the Riverside Stadium despite their visitors having goalkeeper Marek Rodak sent off for handling outside the area in the 17th minute.
Beleaguered Stoke City are level on eight points with Barnsley after they were beaten 2-0 by former boss Gary Rowett on his first outing as Millwall manager. Jed Wallace converted a penalty 15 minutes from time after teeing up Ben Thompson for the opener.
Bowen at the double, waterlogged Forest
Jarrod Bowen scored twice in the space of six minutes during the closing stages as Hull City saw off Derby County 2-0 to claim back-to-back league wins for the first time this season.
Lukas Jutkiewicz was Birmingham City's matchwinner in a 2-1 triumph over Luton Town, while torrential rain saw the match between Nottingham Forest and Reading postponed.