Sheffield United go into the final game of the season with their hopes of a return to the Premier League still alive.
Two goals from Gary Speed sank rivals Bristol City as United chalked up their eighth win in ten games to put them within reach of a top-six finish.
The Sheffield side had suffered a blow after just three minutes, 22-goal James Beattie limping off with a pulled muscle to be replaced by Rob Hulse.
Bristol City almost found a way through, Louis Carey flicking on Jamie McAllister's free-kick as centre-back Jamie McCombe hooked the ball over the target from ten yards.
Michael Tonge's corner caught out City's back four, Adriano Basso punched straight to the lurking Matthew Kilgallon, whose low drive hit Billy Sharp and glanced wide of the post.
City snatched the lead in the 25th minute, the ageing Ugo Ehiogu bundling over Dele Adebola in the area as Michael McIndoe ruthlessly slammed his spot-kick past Paddy Kenny.
The ex-Aston Villa centre-back was promptly substituted with the evergreen Speed slipping into the back four as Lee Martin moved into midfield.
United were back on level terms just four minutes later, Tonge's corner from the right again causing problems, Speed producing a stinging header, from six yards as David Noble tried in vain to keep the ball out.
The Blades looked for a quick breakthrough, Hulse, drilling the ball over the target from the edge of the area with midfielder Stephen Quinn producing a carbon-copy strike minutes later.
David Cotterill's surging run from midfield should have produced a goal when he drilled in a low strike which Basso could only push away as Hulse steamed in to lash the ball high over the target.
The former Leeds striker set up United's second in the 55th minute, goalscorer McIndoe handling Hulse's cross with the reliable Speed stepping forward to beat Basso from the penalty spot.