Republic of Ireland midfielder Alan Browne drilled home his seventh goal of the season to help Preston North End to a 3-2 defeat of Millwall at Deepdale.

Browne put the hosts in front in the 37th minute, firing home after some patient build-up play and a flick-on from Lukas Nmecha.

Midfielder Tom Barkhuizen adding a second just before half-time but the Lions pulled a goal back on the hour when defender Jake Cooper headed in from a corner.

However, Andrew Hughes scored from a free-kick with nine minutes left and though Lee Gregory scored a late consolation in stoppage time, it wasn't enough for the visitors who dropped into the bottom three. Preston are 15th.

Leeds kept up the pressure at the top of the table with a 1-0 win at Bolton.

Substitute Patrick Bamford, back after three months out with a knee problem, broke the deadlock in the 66th minute.

It was was enough to give Leeds a fifth straight league win and put them two points ahead of Norwich.

The Canaries, though, could go back to the top of the table when they travel to Bristol City for Saturday's late kick-off.

At the other end of the table, managerless Reading moved out of the bottom three after a 1-1 draw at Richie Towell's Rotherham.

Forward Sam Baldock put the Royals in front in the ninth minute, but Joe Mattock denied them victory when he equalised on the stroke of full-time.

Bottom club Ipswich finally got a first home league win of the season with a 1-0 victory over Wigan.

After the visitors had seen Reece James rattle the crossbar, Freddie Sears put the Tractor Boys on their way in the 67th minute.

Swansea scored two goals in as many second half minutes to come from behind and beat Sheffield Wednesday 2-1 at the Liberty Stadium.

Substitute Marcos Matias fired the Owls ahead in the 63rd minute. The Swans, though, hit back when substitute Bersant Celina equalised in the 71st minute. Then straight from kick-off, the Kosovan set up Wayne Routledge to turn the match around.

Birmingham also struck twice in quick succession as they fought back from 2-0 down to draw 2-2 at Blackburn.

Danny Graham's header put Rovers in front after 19 minutes and Adam Armstrong doubled the lead at the start of the second half.

The Blues rallied when Craig Gardner scored a penalty in the 78th minute and Che Adams then swiftly equalised.

It also finished 2-2 between Aston Villa and Stoke. Joe Allen broke the deadlock just two minutes into the second half.

Villa drew level in the 73rd minute through a penalty from on-loan Chelsea forward Tammy Abraham.

Stoke, though, went back in front just five minutes later when Benik Afobe also converted from the spot. Jonathan Kodjia's header in the 84th minute secured Villa a share of the points.

Middlesbrough saw their hopes of making ground on the play-off pack hit with a 2-1 defeat at QPR.

Midfielder Pawel Wszolek gave the home side an early lead in the fourth minute. George Saville's low shot brought Boro level six minutes into the second half, but QPR went in front again on the hour through striker Nahki Wells.

Hull beat Brentford 2-0 to increase the pressure on Bees boss Thomas Frank.

Fraizer Campbell have Hull the lead from close range in the 12th minute and the striker made soon it 2-0 when knocking in a rebound off the goalkeeper.