Tudgay and Maddison's second-half goals give the Sky Blues a massive win to keep them in the SkyBet League One...
Coventry City remain in the SkyBet League One after securing an invaluable 2-1 win away to Crawley Town.
Nick Proschwitz had a penalty saved before Mathias Pogba gave the hosts the lead, but Marcus Tudgay scored the crucial equaliser with 18 minutes to play before substitute James Maddison won the game for City with well taken strike before injury time.
City started brightly and had a goal disallowed in the first five minutes, when John Fleck's high free-kick from the right was headed in by Reda Johnson but the referee deemed it a foul on Crawley stopper Brian Jensen.
On six minutes, Fleck went close himself as he hit a tremendous half volley just outside the area and the ball whizzed narrowly over the bar.
After that, the Sky Blues had to deal with plenty of pressure as the home side pumped the ball into the City box but the Sky Blues defence, in particular Reda Johnson, were first to every ball.
Just as City quelled the pressure, Bradford took the lead against Crewe which meant that even a defeat for the Sky Blues would not relegate them.
But right on the stroke of half-time City had a penalty, when Tudgay produced a lovely piece of skill which provoked Gavin Tomlin to bring the striker down in the area.
Proschwitz stepped up but his penalty to the left was saved by Jensen which meant City have scored just one of their last five penalties.
That was the last action of the half and the Sky Blues would be made to pay for that missed spot-kick when Mathias Pogba headed the hosts in front just three minutes after the restart as he rose highest to nod the ball in from six-yards.
The goal moved Tony Mowbray into action as he brought on Maddison for Adam Barton just five minutes later in a more attacking change.
Frank Nouble then came on for Proschwitz and Crawley had to dig in to defend some Sky Blues pressure, with Maddison going close with a snapshot from the edge of the box that flew over.
Notts County then took the lead at Gillingham which meant a goal for Crewe would put City in the drop-zone.
But with 18 minutes to play, Tudgay netted an invaluable equaliser as he nodded in O'Brien's excellent cross from the right in from six-yards to send the away end into pandemonium.
The draw meant that no matter what elsewhere, City would stay up as Colchester went 1-0 up against Preston North-End.
It was still nervy for the 1700 Sky Blues faithful packed into the ground but those tensions were eased as Notts County conceded an equaliser at Gillingham.
That meant three goals had to go against City to relegate them and Crawley had to score to stay up, so they stepped up the tempo in a bid to get a crucial goal for themselves.
But the Sky Blues made relegation essentially impossible win the 90th minute as Nouble harried the Crawley defender on the right and won the ball back excellently, he kept a cool head to square the ball to Maddison who calmly finished inside the are past two defenders on the line to give the Sky Blues League One football again next season.
Coventry City: Burge, Willis, Martin, Johnson, Stokes, Barton (Maddison 53), Ward, Fleck, O'Brien (Webster 90), Tudgay, Proschwitz (Nouble 60).
Subs: Charles-Cook, Phillips, Odelusi, Jackson.
Crawley Town: Jensen, Bradley, McLeod (c), Simpson, Young (Oybanjo 69), Fowler, Tomlin, Ward, Pogba, Youga, Elliott
Subs: Price, Edwards, Smith, Morgan, Harrold, Bawling
Referee: S Martin
Bookings: O'Brien, Youga.
Attendance: 5,744 (1700 SBA)