The hosts had to come from 12-0 down in Friday's preliminary final at the ANZ stadium but did just that to end their long wait for a run-out in the end-of-season showdown.
It was the Roosters who raced out of the blocks to storm ahead, but 32 unanswered points from the home side swung the game heavily back in the Rabbitohs' favour.
A pair of late consolation tries did nothing to spoil the Rabbitohs' joy, which was evident at the final whistle.
The Rabbitohs will now meet either the Penrith Panthers or the Canterbury Bulldogs in next Sunday's Grand Final.
Mitchell Pearce opened the scoring, with veteran Anthony Minichiello's converted try doubling the visitors' lead with just eight minutes on the clock.
But tries from Lote Tuqiri and Alex Johnston were both converted to level it up before half-time.
The home side took the lead in the 44th minute when Ben Te'o crashed over, and Greg Inglis - in his 200th game - scored a double to cement their advantage.
Two late scores from Aidan Guerra and Minichiello reduced the deficit but it was too little, too late.