In a breathtaking finish to the regular season, Brentford had the chance to seal Championship football from 12 yards when awarded a stoppage-time penalty at home to Doncaster with the winners guaranteed an automatic promotion spot.
But Marcello Trotta hit the crossbar with his penalty and Rovers broke amid the chaos with James Coppinger sealing all three points.
Doncaster would have taken the berth with a draw, but the victory saw them finish top after Bournemouth drew 0-0 at Tranmere.
At the other end of the table, Scunthorpe's late barrage of goals in a 3-1 win over Swindon could not prevent them from dropping to League Two after Colchester sealed survival with a 2-0 win at Carlisle.
League One results
Brentford 0 - 1 Doncaster R.
Bury 3 - 2 Yeovil
Carlisle U. 0 - 2 Colchester U.
Crawley 2 - 2 Hartlepool U.
Crewe Alexandra 2 - 0 Walsall
Leyton Orient 1 - 1 Oldham Athletic
Notts County 2 - 2 Coventry C.
Scunthorpe U. 3 - 1 Swindon T.
Sheffield U. 0 - 0 Preston North End
Shrewsbury T. 3 - 2 Portsmouth
Stevenage 0 - 2 Milton Keynes Dons
Tranmere R. 0 - 0 Bournemouth