A second-half Leon Knight penalty gave Brighton a place in the First Division.
The Second Division's top scorer showed no nerves as he sent his spot-kick past Steve Phillips after Danny Coles had upended Chris Iwelumo in the box.
Knight had gone close for Brighton in the first-half when his dipping free-kick rebounded off the crossbar.
City dominated possession but struggled to create many openings, with their best effort a curling free-kick from Tom Doherty in the first-half.
There were few chances in a tightly-contested game, with both sides' best opportunities coming from set-pieces in the first-half.
Knight's effort was the closest either side came to scoring in that tense opening period, his wonderfully delivered free-kick coming back off the crossbar after Nathan Jones had been fouled by Doherty.
Jones had provided plenty of impetus for Brighton on the left wing, while Doherty's passing and vision stood out for City.
Soon after Knight had hit the bar, Doherty took a free-kick for City, but the trajectory of his shot was just too high.
At the start of the second-half City
camped inside the Brighton half as Doherty and Tinnion took control of the midfield, though Danny Wilson's side were unable to convert that possession into chances.
But Brighton survived that period of pressure and gradually Iwelumo began to come into the game.
His first contribution was not too impressive as he rushed his shot after being released by Adam Virgo's wonderful diagonal pass.
He went closer when his flicked header from John Piercy's superb cross momentarily worried Steve Phillips.
With seven minutes to go Iwelumo broke into the City box and as he prepared to shoot the striker was upended by Coles' clumsy tackle.
Knight calmly slotted his spot-kick into the corner past Phillips's despairing dive.
City pushed forward but once more their inability to create clear-cut openings told against them.
Bristol City: Phillips, Carey, Butler (Goodfellow 88), Coles,
Hill, Rougier, Doherty, Tinnion (Wilkshire 82), Woodman,
Miller (Murray 62), Roberts.
Subs Not Used: Stowell, Burnell.
Brighton: Roberts, Virgo, Cullip, Butters, Harding, Hart,
Oatway, Carpenter (Reid 62), Nathan Jones (Piercy 78), Knight,
Subs Not Used: Kuipers, Mayo, Hinshelwood.
Referee: R Beeby (Northamptonshire).