The Super League champions took a sixth-minute lead through Luke Thompson and were in a full-blooded contest for over an hour before they were eventually undone by the skill of the NRL champions.
Their victory enabled the Sydney club to equal the record of four wins held by Wigan and Melbourne as they became the first team to retain their world crown.
It also continued the recent domination of this event, with NRL champions winning 10 of the last 12 clashes with their Super League counterparts.
It was clear that the Australian club are still in pre-season – their lack of timing resulted in a number of penalties for high tackles – but there was plenty to encourage hopes of a hat-trick of domestic titles.
The Roosters lost internationals Cooper Cronk and Latrell Mitchell from their 2019 Grand Final winning team and opted to rest captain Boyd Cordner but were still able to field 14 members of their premiership-winning team.
Saints were without injured England international Mark Percival, whose surprise inclusion in coach Kristian Woolf's initial 21-man squad was clearly a case of mind games, as well as Lachlan Coote and Regan Grace, but they had the muscle up front to contain their star-studded visitors.
The Super League champions were terrific in the opening stages, with teenage full-back Jack Welsby fumbling James Roby's pass close to the line before Canterbury-bound prop Thompson took Theo Fages' pass to stretch out for the opening try.
Tom Makinson added the conversion to make it 6-0 but the slow-starting Roosters soon began to hit their straps and went in front with two tries in 10 minutes.
Left winger Daniel Tupou took in stand-off Luke Keary's long pass to score the first and debutant scrum-half Kyle Flanagan got centre Joseph Manu over for the second after James Tedesco had put Mitch Aubusson through a gap to create the position.
Flanagan had the misfortune to strike the woodwork with both conversion attempts so the visitors' lead was just two points at the interval and Saints might have been in front for Makinson had a try in the last minute of the half disallowed for a forward pass.
Saints had a second try ruled out early in the second half after Makinson thought he had reached the line and that proved to be their last chance for glory.
The Sydney club were more clinical, as they demonstrated on the hour when Manu went on an arcing run out wide and reached the line to score his second try despite the efforts of three defenders.
Flanagan was clearly wide with the goal kick this time to leave the door open for the Super League champions.
Makinson, traditionally one of the best finishers in the game, dropped Jonny Lomax's pass within sight of the corner and Kevin Naiqama also went close as Saints pushed for at least a draw that would have taken the game into extra time.
But their hopes were finally extinguished after 68 minutes when speedy prop Siosiua Taukeiaho broke through the first line of defence inside his own half and put stand-off Keary away for the clinching try.
Taukeiaho took over the kicking duties and landed the conversion before wrapping up the Roosters' scoring with a penalty, although Saints managed a consolation score three minutes from the end, much to the delight of the 16,108 crowd, when prop Alex Walmsley barged his way to the line and Makinson kicked his second goal.