Norwich need five more points to secure promotion to the Premier League after snatching a dramatic 2-2 draw with Sheffield Wednesday at Carrow Road.

Marco Stiepermann fired the home side in front in the 20th minute, only for Fernando Forestieri to equalise with a goal-of-the season contender, curling an unstoppable shot into the top corner from 30 yards out.

Steven Fletcher put the visitors in front early in the second half in controversial circumstances, Tim Krul saving the initial effort as Fletcher slid in at the far post before the ball bounced back and appeared to hit the striker on the arm before trickling over the line.

However, Mario Vrancic lashed home a free-kick from just outside the area with the last kick of the game to edge his side closer to the top flight.

Norwich are five points clear at the top of the table, but Sheffield United are now their nearest challengers after Leeds slumped to a shock 2-1 defeat at home to 10-man Wigan.

Sheffield United had moved ahead of Leeds into second place on goal difference earlier in the day after beating Nottingham Forest 2-0 and Marcelo Bielsa's men were unable to respond, despite playing with an extra man following the 14th-minute dismissal of Cedric Kipre and going ahead through Patrick Bamford three minutes later.

Kipre was sent off for a handball on the line and, although Pablo Hernandez hit a post with the resulting penalty, Bamford's crisp finish soon broke the deadlock at Elland Road.

However, Wigan - managed by former Sligo Rovers boss Paul Cook - responded with a superb counter-attack from a Leeds corner to set up Gavin Massey to equalise and the same player headed what proved to be the winner in the 62nd minute as the visitors' survival hopes received a huge boost.

Second-half goals from Mark Duffy and the Republic of Ireland's Enda Stevens gave the Blades victory over 10-man Forest, who had Yohan Benalouane sent off two minutes into the second half for bringing down another Irishman, David McGoldrick, on the edge of the area.

At the other end of the table, Bolton's relegation was confirmed as they went down 2-0 at home to in-form Aston Villa.

Former Watford owner Laurence Bassini agreed a deal to buy Bolton earlier this week, subject to approval from the English Football League.

But Wanderers will be playing League One football next season after second-half goals from Jack Grealish and Tammy Abraham sealed their fate and earned fifth-placed Villa their ninth straight league win.

Preston enjoyed a comfortable 4-0 victory over relegated Ipswich, Callum Robinson scoring twice in the first 22 minutes and Lukas Nmecha grabbing a brace in the second period.

Robinson's return to goalscoring form is good news for Ireland ahead of June's double-header against Denmark and Gibraltar.

The frontman's season has been decimated by a bad hamstring tear he suffered back in November, but he's regained fitness and sharpness in the last few weeks to give Mick McCarthy another welcome attacking option. He bagged a couple of terrific efforts ahainst the Tractor Boys, bending one home from 20 yards ot break the deadlock before volleying another into the top corner.

"He’s a good player, he is one of our key players. What he did today, not every player can do. He had the quality to damage them today," Preston manager Alex Neill said of Robinson.

"We had good quality at times when we needed it and Callum was involved in all four goals so I think that shows his importance to us."

Middlesbrough moved above Bristol City into the play-off places thanks to 1-0 win over Stoke, Britt Assombalonga scoring the only goal of the game after three minutes.

Bistol City had earlier needed a 72nd-minute equaliser to earn a point at home to Reading, who took the lead three minutes into the second half when Yakou Meite converted a slick free-kick routine straight off the training ground.

West Brom remain fourth in the table after edging a five-goal thriller with Hull.

Kieran Gibbs volleyed home the opener shortly before the interval before Todd Kane levelled for the visitors just three minutes into the second half with a thumping drive.

Kane produced another superb finish to fire Hull in front after 59 minutes, only for Dwight Gayle to level with a stooping header from close range almost immediately and then grab the winner five minutes from time.

Third-bottom Rotherham's survival chances suffered a major blow as they lost 4-3 at Swansea, despite twice taking the lead at the Liberty Stadium thanks to goals from Michael Ihiekwe and Matt Crooks either side of an equaliser from Oli McBurnie.

However, Swansea got back on level terms through Barrie McKay and goals from George Byers and a second from McBurnie proved decisive, with Will Vaulks's volley in off the bar scant consolation for the visitors.

Birmingham and Derby played out an entertaining draw at St Andrew's, with all four goals coming in the first 28 minutes.

Lukas Jutkiewicz opened the scoring after two minutes with a simple header from a corner, but Derby equalised shortly after through Martyn Waghorn's superb lob.

The home side regained the lead through Michael Morrison's close-range finish, but Derby responded once more as Ireland defender Richard Keogh headed in from Ashley Cole's cross.

Blackburn held on to claim all three points with a 2-1 win at QPR, with Danny Graham opening the scoring from the penalty spot and Bradley Dack making it 2-0.

Matt Smith pulled one back for the home side in injury time, but they could not find an equaliser.

Earlier in the day, Josh Dasilva scored his first senior goal as 10-man Brentford drew 1-1 at Millwall to keep their hosts scrapping for their Championship lives.

The 20-year-old former Arsenal trainee levelled superbly within five minutes of Lee Gregory firing the Lions into the lead, but, after Henrik Dalsgaard had seen red for the visitors, neither side could find a winner.