Aleksandar Mitrovic took his tally for the season to 37 goals with a brace in Fulham’s 2-0 victory at QPR.
The Serbia striker set the runaway leaders on their way in the 14th minute when he slotted home from Fabio Carvalho’s cutback.
Having brought a number of saves from goalkeeper Keiren Westwood, including with a stunning backheeled effort, Mitrovic finally made it two from the penalty spot after Lee Wallace was adjudged to have handled in the area.
Victory maintained the Cottagers’ eight-point advantage at the top of the Sky Bet Championship, with second-placed Bournemouth holding on for a 3-2 win at home to Bristol City.
The visitors took an early lead when Matty James’ corner was headed in by defender Rob Atkinson.
Bournemouth levelled five minutes before the break when Dominic Solanke scored his 24th league goal of the season.
Lewis Cook put the Cherries in front seven minutes into the second half with a stunning 25-yard strike and Siriki Dembele sealed the points nine minutes from time with a fine solo effort.
Andreas Weimann scored a consolation for the Robins in stoppage time.
Middlesbrough moved up to fifth with a convincing 4-0 win at rock-bottom Peterborough.
Marcus Tavernier’s first-time strike into the top corner opened the scoring and Folarin Balogun doubled Boro’s lead early in the second half.
Josh Coburn made it three eight minutes from time and Duncan Watmore wrapped up the win at the death with an emphatic finish.
Brennan Johnson scored twice as Nottingham Forest continued their play-off charge with a stunning 4-1 win at Blackpool.
A double from Johnson – the second of which came after a dreadful goalkeeping error from Dan Grimshaw – a Philip Zinckernagel effort and a Sam Surridge strike handed the visitors the points.
Callum Connelly scored a last-minute consolation for Blackpool.
Luton snatched a point in an entertaining 2-2 draw at home to Millwall.
Tom Bradshaw put the Lions in front after 25 minutes with a half-volley from a Jed Wallace pass, but Luton levelled eight minutes later when Elijah Adebayo curled home via a post.
Benik Afobe thought he had won it for Millwall, but Jake Cooper turned a wicked Robert Snodgrass free-kick past his own goalkeeper to earn the Hatters a share of the spoils.
Viktor Gyokeres equalised for Coventry in the ninth minute of stoppage time as they held Blackburn to a 2-2 draw.
Harry Pickering’s own goal was cancelled out by Bradley Dack’s first goal since March 2021.
Scott Wharton made it 2-1 eight minutes from time, but late drama saw Gyokeres snatch a point for the home side.
At the bottom, Derby moved within six points of Reading with a 1-0 win against Preston.
North End were reduced to 10 men after 32 minutes when Liam Lindsay was shown a straight red card for a last-man challenge on Tom Lawrence.
Derby saw Max Bird dismissed early in the second half for a wild challenge on Ben Whiteman but snatched victory with an 81st-minute strike from Ravel Morrison.
Barnsley and the Royals played out a 1-1 draw.
Carlton Morris drilled the Reds in front from Amine Bassi’s pass after five minutes.
Barnsley rode their luck, but Josh Laurent levelled after 82 minutes with a close-range finish.
Swansea took the derby honours in emphatic style as a brace from Michael Obafemi and further goals from Ben Cabango and Hannes Wolf earned them a 4-0 win at Cardiff, while John Egan’s own goal was enough for Stoke to claim a 1-0 win against Sheffield United.
Sky Bet League One
Wigan missed the chance to go top of Sky Bet League One after Jon Dadi Bodvarsson snatched a late point in a bad-tempered Lancashire derby against Bolton at the DW Stadium.
James McClean’s fortunate cross-shot put the Latics in front after seven minutes but McClean was lucky to stay on the pitch after a bad challenge on Dapo Afolayan late in the first half.
Wigan were left to rue their missed chances in the first half as Bodvarsson came off the bench to head home Will Aimson’s cross in the 83rd minute and secure a 1-1 draw.
It leaves Leam Richardson’s men looking over their shoulders after goals from Mo Eisa and Scott Twine saw third-placed MK Dons narrow the deficit to a single point with a 2-0 win over Shrewsbury.
Fourth-placed Plymouth got their promotion hopes back on track as Joe Edwards’ 56th-minute volley sealed a hard-fought 1-0 win over fifth-placed Oxford at Home Park.
Lee Gregory struck deep into stoppage time to snatch a 2-1 win for Sheffield Wednesday over AFC Wimbledon and ensure Mark Bowen’s first game as Dons boss ended in heartbreak.
Jack Hunt’s early opener for the Owls was cancelled out by Ayoub Assal but Gregory headed home in added time to send Wednesday up to fifth in the table.
Sunderland also left it late to boost their play-off hopes as Nathan Broadhead scored four minutes into added time to grab a 1-0 win over struggling Gillingham at the Stadium of Light.
The visitors looked set to hold out for a point until Broadhead headed home from close range and sent the Black Cats back into the top six.
Wycombe did enough to see off second-from-bottom Doncaster, Garath McCleary heading home from an Anis Mehmeti cross on 18 before Mehmeti got on the scoresheet himself midway through the second half to wrap up a 2-0 win.
Free-falling Fleetwood finally claimed their first win in 14 attempts as they beat bottom club Crewe 3-1 at Gresty Road.
Harvey Macadam’s early header was cancelled out by Chris Long for the hosts on the stroke of half-time, but any hopes the Grecians had of ending a run of five straight losses were ended by second-half goals from Anthony Pilkington and Ellis Harrison.
Goals from Arthur Gnahoua, Adam Phillips and Cole Stockton gave Morecambe a 3-0 win over Burton, who had Conor Shaughnessy sent off two minutes before half-time.
Ipswich crashed to their first defeat in 12 games as Dominic Thompson’s 56th-minute own goal proved enough for Mark Bonner’s Cambridge to take all the points in a 1-0 win at Portman Road.
William Boyle grabbed a stoppage-time leveller for Cheltenham in an action-packed 4-4 draw with Accrington at the Wham Stadium.
Trailing to Alfie May’s 24th goal of the season, Stanley struck back to lead through two goals in first-half stoppage time from Tommy Leigh and Sean McConville.
Leigh extended Stanley’s lead and, after Boyle scored his first of the day with a 66th-minute header to make it 3-2, an Ellis Chapman own goal made it 4-2 to the hosts with three minutes to play.
Callum Wright pulled one back for Cheltenham in the last minute, then Accrington’s Ross Sykes was sent off for handball before Boyle grabbed a point deep into stoppage time.
Lincoln won 2-1 at Charlton in a game that saw both teams finish with 10 men.
Morgan Whittaker opened the scoring for the visitors in the 33rd minute before Charlton’s Alex Gilbey was sent off for violent conduct.
Whittaker was himself dismissed just before the hour mark but Lincoln extended their lead through Anthony Scully before Jayden Stockley scored a late consolation for the Addicks.
Sky Bet League Two
Mansfield moved into the Sky Bet League Two play-offs and dented Northampton’s automatic promotion hopes with a 1-0 win.
Oli Hawkins scored the only goal for Nigel Clough’s side, who made it four games without defeat to move sixth.
Northampton, who slip to fourth and lose ground on leaders Forest Green and second-placed Exeter, finished with 10 men after Paul Lewis was sent off 15 minutes from time.
Forest Green left it late to see off bottom side Scunthorpe, with Dan Sweeney’s 75th-minute effort the difference between the two sides.
Meanwhile Exeter stretched their unbeaten run to seven games as a battling 1-0 victory over fellow promotion-hopefuls Newport helped them keep the pressure on Rovers above them.
Timothee Dieng’s 72nd-minute goal was enough to secure the Grecians all three points.
Port Vale came from behind to win 2-1 at relegation-threatened Barrow to jump up to third.
Josh Kay put Barrow ahead after 24 minutes, but promotion-chasing Vale hit back after 59 minutes through Jamie Proctor.
Such is the tight nature of the promotion race, Vale were outside the top seven until Aaron Martin’s 89th-minute winner.
Bristol Rovers are up to fifth after coming from behind to beat Bradford 2-1 and make it six wins in seven games.
Mark Hughes’ side went ahead through Dion Pereira just after half-time but Rovers were quickly level as Sam Finley struck.
Connor Taylor scored after 75 minutes to turn things around for Joey Barton’s side.
Tranmere paid the price for poor discipline as they were held 2-2 by Carlisle after finishing the game with nine men.
Rovers were ahead after 15 minutes through Kane Hemmings but the hosts were dealt a blow when Calum MacDonald was sent off five minutes before the break.
Omari Patrick equalised for Carlisle after 55 minutes but the 10 men hit back through Elliot Nevitt’s 76th-minute strike.
Rovers had a second red card in added time as Kieron Morris was dismissed and Tobi Sho-Silva equalised at the death.
Salford won 2-0 at Hartlepool to boost their play-off hopes.
Corrie Ndaba opened the scoring with his first senior goal after 19 minutes, with Jason Lowe doubling the lead just before the half-hour mark.
Oldham came out on top with a 1-0 victory in their relegation battle with Stevenage.
The pair began the day level on points, with the Latics one place outside the relegation zone on goal difference.
Jamie Hopcutt scored the only goal of the game after 16 minutes to move Oldham three points clear of danger.
Colchester came from behind to win 2-1 at Harrogate.
Jack Muldoon’s 11th goal of the season put Harrogate ahead before Freddie Sears levelled midway through the first half with his 50th goal for the club and Noah Chilvers netted the winner on the stroke of half-time.
Leyton Orient won 2-0 at Walsall thanks to first-half goals from Harry Smith and Otis Khan, while Rochdale and Swindon played out a goalless draw.