Republic of Ireland midfielder Alan Browne scored a winner deep in injury-time to lift Preston North End out of the relegation zone and end Derby County's unbeaten run under interim-manager Wayne Rooney.

Browne curled in a superb finish to shatter Derby, who had played for 70 minutes with 10 men after striker Martyn Waghorn was shown a straight red for a dangerous tackle on the Preston skipper.

Preston had struggled to take advantage and looked to have run out of ideas until Browne struck to deny Derby the point that would have seen them move out of the bottom three.

Callum O'Dowda's impressive recent form continued as he laid on another goal in Bristol City won 2-1 against bottom-placed Wycombe at Ashton Gate.

The hosts took a 23rd-minute lead when O'Dowda tricked his way to the by-line on the left and delivered a perfect far-post cross for Chris Martin to net with a downward header.

Wycombe refused to lie down and Garath McCleary equalised after 68 minutes with a right-footed shot from inside the box that took a wicked deflection off City substitute Adrian Mariappa to wrong-foot goalkeeper Dan Bentley.

Callum O'Dowda is challenged by Josh Knight

Having done so twice before this season, Famara Diedhiou then proved the match-winner as a replacement when blasting an unstoppable right-footed shot past Ryan Allsop from just inside a crowded box with three minutes remaining.

Sergi Canos' superb second-half hat-trick allowed Brentford to extend their unbeaten run in the Sky Bet Championship to 14 matches as they came from behind to beat Cardiff 3-2 in the Welsh capital.

The Spaniard made it a great Christmas week for the Bees as he hauled his side back from a remarkable Will Vaulks goal at the end of a lacklustre first half to earn the visitors all three points.

Goals from Andre Ayew and Jamal Lowe gave promotion-chasing Swansea a 2-0 victory at QPR and increased the pressure on Mark Warburton.

Rangers have now gone eight matches without a win and Warburton's position as manager is under scrutiny.

Reading reignited their push for a play-off spot with a hard-fought 2-1 victory over Luton.

Centre-back Tom McIntyre gave Reading an early lead with a precise first-time finish, while Benfica loanee Alfa Semedo added a second goal shortly before the break.

Luton improved after the interval and were rewarded in the 90th minute when substitute Kazenga LuaLua scored from long range.

Joe Rothwell's superb solo goal rescued a point for Blackburn in a 1-1 draw against struggling Sheffield Wednesday.

The midfielder collected the ball 40 yards from goal in the 76th minute and weaved into the area before slotting home, cancelling out a stunning 41st-minute strike by Adam Reach.

Michal Helik struck deep into stoppage time to help Barnsley come from behind to beat Huddersfield 2-1 at Oakwell.

The Terriers went ahead inside the opening quarter of an hour with a goal from Rarmani Edmonds-Green but the home side drew level eight minutes later through Helik.

Drama followed as Helik grabbed the winner in the fourth minute of time added on, firing into the net after a long throw was headed on.

Stoke recorded a fourth successive Championship clean sheet but were held to a third straight stalemate on the road as they wasted a string of chances in an entertaining 0-0 draw at Coventry.

It was also a third consecutive goalless game for the Sky Blues at their temporary St Andrew's home as the visiting Potters spurned half a dozen golden opportunities to claim the points.

A match that had held so much intrigue with Chris Hughton and Aitor Karanka facing their former clubs ended in a dull 0-0 draw between Nottingham Forest and Birmingham at the City Ground.

It was Hughton's Forest who often looked the more likely to snatch three points but they found themselves up against a keeper in good form in Neil Etheridge.