Derby edged closer to sealing the Sky Bet Championship’s final play-off place with a 2-0 win at 10-man Bristol City.

Frank Lampard’s side kept their noses in front of closest rivals Middlesbrough, who also won, while City’s hopes of a top-six finish were dealt a major blow.

Tom Lawrence’s deflected shot gave Derby a half-time lead and the Robins were reduced to 10 men with half an hour remaining when Antoine Semenyo was shown a straight red card for his challenge on Tom Huddlestone.

Jayden Bogle added Derby’s second with 13 minutes left to keep his side ahead of Middlesbrough on goal difference and with a game in hand.

Boro kept their play-off hopes alive heading into the final fixture next week after beating Reading 2-1 at the Riverside.

Tony Pulis’ side struck twice before the interval through Lewis Wing and Britt Assombalonga’s penalty, for Andy Yiadom’s foul on George Saville, after Danny Loader had given Reading an early lead.

Rotherham’s 2-1 defeat at West Brom condemned them to relegation.

Clark Robertson headed Rotherham into the lead early in the second half and it appeared they would head into the final day with hope.

But Jay Rodriguez converted a 77th-minute penalty, after Michael Smith’s foul on Dwight Gayle, and Rekeem Harper fired the Baggies’ winner two minutes later to lift his side to within two points of Leeds, who play Aston Villa at home on Sunday.

Sheffield Wednesday hit back from two goals down to draw 3-3 at Preston after playing the final 10 minutes with 10 men .

Jayden Stockley’s header and Tom Lees’ own goal put Preston 2-0 up at half-time before Barry Bannan reduced the deficit soon after the restart.

Alan Browne restored Preston’s two-goal advantage just after the hour-mark, but Fernando Forestieri and Atdhe Nuhiu both struck with headers to haul the Owls level.

Wednesday defender Dominic Iorfa was sent off for his tackle on Darnell Fisher in the 80th minute.

Nottingham Forest climbed one place to 10th after winning 1-0 at QPR thanks to Iran striker Karim Ansarifard’s solitary striker 10 minutes into the second period.

QPR striker Nahki Wells’ late penalty was saved by Forest goalkeeper Costel Pantilimon.

Swansea let slip a 2-0 lead as they were held 2-2 by Hull at the Liberty Stadium.

Oli McBurnie’s 22nd and 23rd goals of the season put Swansea in control before Hull hit back through Jarrod Bowen and Nouha Dicko, who levelled in the 84th minute.

Millwall clinched a vital point in their bid to stave off relegation by drawing 0-0 at home against Stoke, for whom James McClean hit the crossbar in a lunchtime kick-off at the Den.

The Lions, who have two games left, are four points ahead of Rotherham and cannot be overhauled.

Birmingham were held 1-1 at home by Wigan, who equalised through Nick Powell in first-half stoppage time after Lukas Jutkiewicz’s early opener.

Relegated Bolton’s final home game of the season against Brentford was postponed after their players went on strike in protest at unpaid wages.