Barnsley 1-1 Burton
Birmingham 2-0 Huddersfield
Blackburn 1-0 Aston Villa
Derby 3-1 Wolves
Fulham 1-1 Brentford
Ipswich 0-1 Sheffield Wednesday
Leeds 3-3 Norwich
Preston 1-1 Rotherham
QPR 2-0 Nottingham Forest
Reading 1-0 Wigan
Brighton 0-1 Bristol City
The Sky Bet Championship title race will go right to the wire after Brighton suffered a surprise defeat to Bristol City while Wigan's loss to Reading confirmed their relegation.
The Seagulls could have wrapped up top spot on the penultimate weekend of the regular season but Bristol City instead guaranteed their survival with a 1-0 victory at the Amex Stadium.
Josh Brownhill scored the only goal of the game on the stroke of half-time, his downward header from Matty Taylor's cross ensuring Brighton remained only one point ahead of Newcastle after 45 games.
The Robins, meanwhile, are six points clear of the drop zone and can now be certain of their Championship status.
Wigan, though, who were promoted from League One last season, face another stint in the third tier after Yann Kermorgant's sixth-minute effort gave Reading a 1-0 victory at the Madejski Stadium.
Kermorgant, 35, headed home his 17th goal of the season early on and although the visitors battled manfully, they could not find a way back into the contest.
Now seven points adrift of safety, with Blackburn and Birmingham both winning, Wigan joined Rotherham in dropping out of the division next season.
Three teams - Blackburn, Nottingham Forest and Birmingham - will be battling to avoid finishing in the third and final relegation spot on the final day of the campaign.
Blackburn, who have not competed in the third tier since 1980, occupy 22nd spot but kept their survival hopes intact by defeating Aston Villa 1-0 courtesy of Danny Graham's 54th-minute goal.
The result moved Rovers level on 48 points with Forest, who were beaten 2-0 at QPR with Conor Washington's 49th-minute strike and Joel Lynch's header on the hour ending a run of six successive defeats for Rangers and guaranteeing their safety.
Birmingham claimed their first win under Harry Redknapp and moved two points clear of the drop after seeing off Huddersfield 2-0.
Despite playing most of the match with 10 men after Che Adams' dismissal midway through the first half, Jonathan Grounds' header four minutes before the interval and Craig Gardner's 76th-minute penalty gave the Blues a vital three points.
Huddersfield, though, as well as Reading, Sheffield Wednesday and Fulham will almost certainly contest the play-offs after Leeds were unable to find a winner against 10-man Norwich - despite hitting back from 3-0 down to draw 3-3 in an enthralling encounter.
The Canaries looked certain winners when Steven Naismith's opener was followed by a brace from Nelson Oliveira although Chris Wood grabbed one back just before half-time.
Kyle Bartley reduced the arrears even further and Pablo Hernandez levelled but they could not make another breakthrough - despite Naismith's late dismissal.
Sheffield Wednesday - who beat Ipswich 1-0 thanks to Kieran Lee's 77th-minute winner - cannot be caught by their Yorkshire rivals while it would take an extreme set of results for Leeds to leapfrog Fulham.
Fulham drew 1-1 at Brentford, for whom Nico Yennaris cancelled out Tom Cairney's opener. Cairney missed the chance to give the Cottagers the lead again after seeing his penalty saved by Brentford goalkeeper Daniel Bentley.
Substitute Luke Varney scored within moments of his introduction as Burton drew 1-1 at Barnsley, who had opened the scoring through George Moncur, while the clash at Deepdale had an identical scoreline as Richard Smallwood's opener for Rotherham was cancelled out by Preston striker Stevie May.
David Nugent, Bradley Johnson and Craig Bryson were on the scoresheet as Derby clinched a 3-1 win over 10-man Wolves, who had Ivan Cavaleiro sent off early on and whose only goal came from Ben Marshall.