Southend secured promotion as League One champions courtesy of an 87th minute strike from substitute Wayne Gray.
The striker replaced Shaun Goater, who was playing his last game before retirement, and latched on to a Kevin Maher pass and saw his shot deflect into the net off centre-back Louis Carey.
Southend had nearly drawn first blood in the first minute when Goater's header from a Maher corner was scrambled away and Mark Gower blasted his follow-up wide.
But Bristol were determined to finished the season on a high after a remarkable turnaround that had taken them from the drop zone to brink of the play-offs.
The Robins dominated the midfield for much of the first half as they pressed for a goal but were denied by dogging Southend defending and poor finishing.
Mark McCammon was perhaps the biggest culprit heading wide when well placed and failing to get on the end of a decent David Cotterill cross.
He also handballed a rebound after David Noble's 25-yard yard shot was turned on to the post by Southend keeper Darryl Flahavan.
Despite finding themselves under the cosh, the Shrimpers created the better chances.
City keeper Adriano Basso saved Lee Bradbury's header after 22 minutes before diving to keep out a thumping 25-yard effort from top-scorer Freddy Eastwood just before the break.
Southend rallied after half-time but clear-cut chances were at a premium for both sides.
Bristol went closest when Luke Wilkshire's free-kick from the left forced a saved from Flahavan.
Southend thought they would have to settle for a draw when substitute Mitchell Cole's shot was turned over by City keeper Nathan Abbey who came on for the injured Basso.
But then Gray popped up with the winner to start the celebrations for the Shrimpers as they completed back-to-back promotions.