Nottingham Forest maintained their Championship promotion charge as a 2-0 home win against Birmingham lifted them up to third in the table.

On-loan Aston Villa forward Keinan Davis gave Forest a flying start and Scott McKenna headed a game-clinching second with 11 minutes left.

Forest comfortably saw out 12 minutes of added-time following an injury to Birmingham goalkeeper Neil Etheridge following a second-half collision with Forest defender Djed Spence.

Steve Cooper's side secured their fifth straight league win – extending their unbeaten run in the Championship to 10 matches – and closed the gap on second-placed Bournemouth to six points.

Keinan Davis (left) celebrates with Brennan Johnson after scoring Nottingham Forest's opener

Bournemouth’s bid for automatic promotion met with more frustration as they were held 0-0 at play-off hopefuls Sheffield United.

The Cherries, beaten 2-0 at West Brom in midweek, were grateful for a point at Bramall Lane as the Blades had a late penalty appeal turned down and went close through Filip Uremovic with practically the last kick of the game.

Middlesbrough’s play-off hopes were hit by back-to-back home defeats as they lost 1-0 to Hull at The Riverside.

Keane Lewis-Potter struck the game’s only goal for Hull with 15 minutes remaining and Boro, who lost by the same score at home to Fulham in midweek, are three points off the top six.

Blackburn also missed the chance to climb into the play-off places after being held 1-1 by Blackpool at Ewood Park.

Blackpool defender Marvin Ekpiteta’s effort soon after the interval cancelled out Sam Gallagher’s early opener for Blackburn.

QPR’s miserable run continued as they slipped to a fifth straight defeat, beaten 2-1 at Preston.

Hoops and Ireland defender Jimmy Dunne’s first-half own-goal edged Preston ahead and they doubled their lead through Cameron Archer early in the second half.

Andre Gray’s stoppage-time penalty for the visitors was scant consolation.

Barnsley’s survival hopes were dealt a blow as they lost 4-1 at Millwall.

Millwall defender Danny McNamara scored his first goals for the club with a brace either side of half-time.

Romal Palmer fired Barnsley back into it, but Oliver Burke restored Millwall’s two-goal advantage and Benik Afobe lashed home their fourth.

Callum Robinson's eighth goal of the season was in vain as West Brom fell at home

Stoke made it three wins from their last four with a 3-1 win at West Brom.

Jake Livermore’s first-half own goal gave Stoke the lead and Jacob Brown headed his 12th goal of the season after the break to put them 2-0 up.

Callum Robinson’s eighth goal of the season for West Brom set up a grandstand finish but Stoke sealed the points through Lewis Baker’s stoppage-time effort.

Joel Piroe struck an early double as Swansea won 2-1 at home against Derby.

Piroe struck his 17th and 18th league goals of the season inside the first 16 minutes to put Swansea in control before Tom Lawrence’s penalty for Derby reduced the deficit.

Will Vaulks’ late goal clinched Cardiff a 2-1 win at relegation battlers Reading.

Lucas Joao’s header gave Reading an early lead, but Alfie Doughty curled Cardiff level and Vaulks struck five minutes from time.

Jonson Clarke-Harris rescued a point for ten-man Peterborough in a 1-1 draw at Bristol City.

Rob Atkinson headed City in front and Peterborough defender Joe Ward was shown a straight red card for his second-half challenge on Andreas Weimann, but Posh hit back to level through Clarke-Harris’ close-range finish.

In League One, Troy Parrott's fantastic strike earned MK Dons a 1-1 draw at bitter rivals AFC Wimbledon that moved them three points clear of third-placed Rotherham in the promotion race.

Relegation-threatened Wimbledon took the lead in the 19th minute after the visitors had failed to clear Nesta Guinness-Walker’s free-kick as a mishit effort by captain Alex Woodyard trickled into the net.

But Parrott drew the visitors level with ten minutes left when he crashed in a volley off the underside of the bar from a tricky angle.