John was Southampton's hero, but came close to being the villain
Southampton secured their Championship status with a rollercoaster win that saw them relegate Leicester, who had been a place above them in the table.
Saints went behind to a Stephen Quinn header but Marek Saganowski levelled.
Stern John then put Southampton in front and on course to stay up before substitute Jonathan Stead's equaliser.
John struck again to save Saints from relegation but the striker was sent off on 80 minutes and the hosts were forced to endure a tense finish.
Saints fans watched their 10-man team protect a narrow lead for the final 10 minutes knowing that a United equaliser would see them fall below both Coventry and Leicester and into the relegation zone.
The Foxes, who started the day ahead of Southampton on goal difference, could have saved themselves and condemned Coventry, who lost 4-1 at Charlton, to the drop by matching Saints' result but were held 0-0.
Southampton's task had been made more difficult by the fact they faced a Sheffield United side who went into the match knowing they had a chance to sneak into the play-off positions.
And the Blades began in determined form, veteran midfielder Gary Speed seeing a header deflected over the top and Rob Hulse shooting high and wide.
The sell-out St Mary's crowd began to find their voice as the hosts settled and came into the game.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.