Burnley ensured they remained five points clear of Sheffield United at the top of the EFL Championship with a 1-0 victory over Coventry at Turf Moor.
Ian Maatsen made a brilliant block to prevent Kasey Palmer from pulling the visitors ahead just before half-time and the Clarets could not find a breakthrough until the 82nd minute, when Jordan Beyer nodded the eventual winner past keeper Ben Wilson.
Second-placed United kept pace with the Clarets as they picked up all three points with a 3-1 win over Stoke.
Iliman Ndiaye netted his 10th goal of the season to give the Blades a ninth-minute lead and Jayden Bogle made it two when his deflected effort found the back of the net.
Nick Powell cut the deficit on the stroke of half-time before Bogle bagged his second on 90 minutes.
Watford moved into third after Tobi Adeyemo’s second-half strike and Ismaila Sarr’s penalty at Vicarage Road made the difference in their 2-0 victory over Blackpool, who dropped to second-from-bottom with the result.
Marcus Forss’ second-half winner ensured Middlesbrough’s promotion charge under Michael Carrick continued with a 1-0 win over Millwall as they jumped to fourth place in the table.
After a tight first half at the Riverside, the Finnish forward scored the crucial opener in the 54th minute to put Boro in the driving seat in this battle between two play-off contenders.
Blackburn dropped to fifth after a stunning 4-0 defeat to Rotherham in the early kick-off. Hakeem Odoffin scored in the first minute and second-half strikes from Ollie Rathbone, Shane Ferguson – direct from a corner – and Conor Washington made the points safe.
Swansea made their numerical advantage count as they beat 10-man Sunderland 3-1 at the Stadium of Light.
Luke O’Nien’s early dismissal meant the Black Cats had to play more than 70 minutes with a player less, and while Dan Neil denied the visitors a clean sheet after Joel Piroe’s 50th-minute opener, Liam Cullen and Ollie Cooper made sure Swansea walked away with all three points.
The Swans gained four places with the victory, finishing the afternoon in 11th, while Sunderland tumbled two to 10th.
Luton let an early 2-0 lead slip as they went down 3-2 to West Brom at Kenilworth Road. Carlton Morris and Elijah Adebayo put the hosts ahead but Daryl Dike hit back before half-time and Jayson Molumby and Conor Townsend netted after the restart to seal victory.
Mark Sykes scored his first two goals for Bristol City in a 4-2 win over Birmingham at Ashton Gate. Antoine Semenyo and Nahki Wells had put the Robins 2-0 up early on and Sykes ensured Troy Deeney’s penalty and Reda Khadra’s strike were mere consolation.
Tyler Roberts’ brace saw QPR battle back from a two-goal deficit to earn a deserved 2-2 draw at Reading, whose goals both came from Jeff Hendrick.
Kieran Dowell and Teemu Pukki both bagged braces as Norwich beat Preston 4-0 at Deepdale to move into seventh.
Cardiff and Wigan split the points 1-1 after goals in the final 10 minutes from Callum O’Dowda and Will Keane, while Huddersfield’s trip to Hull ended with the same score as Oscar Estupinan’s last-gasp equaliser cancelled out Michal Helik’s goal.