Down by a point with less than a minute to go, the Roosters went the length of the field from the kick-off to hand the Storm their second heartbreaking finals defeat in the past four months.
Josh Addo-Carr produced the goods in defence in the opening minute to somehow deny Connor Watson after the Roosters utility regathered his own kick and looked destined to open the scoring.
Teammate Joseph Manu had no such problems after he was put in space by a brilliant Chris Smith offload to give the Roosters a deserved six-point advantage.
Fellow outside back Daniel Tupou increased the margin by a further five points after he reeled in an intercept inside his own half and sprinted away to the bonus zone to score.
The lead should have been 13 but Latrell Mitchell couldn't add the extras from in front. To make matters worse, Storm speedster Josh Addo-Carr put on the afterburners to score under the posts to make it 11-7 for the Sydneysiders.
The Roosters were dealt a huge blow in the final minute of the first half when Paul Carter was helped from the field after his ankle was trapped awkwardly in a tackle just short of halfway.
First points in the second half were always going to go be crucial and it was the Tricolours who obliged as Tupou showed enough pace to get on the outside of his man to complete his double.
That try brought the Storm back to life and they responded almost immediately as Young Tonumaipea was on the spot to finish off a huge break by Felise Kaufusi.
The Storm then hit the front through the in-form Mark Nicholls after the big man latched onto a Scott Drinkwater to give them a one-point lead with a minute remaining.
That should have been the ball game but there was time for one last sting in the tale as the Roosters caught the Storm napping from the kick-off to score a 90-metre try through uncapped rookie Bernard Lewis to steal victory from the jaws of defeat.
Roosters 21 (Daniel Tupou 2, Joseph Manu, Bernard Lewis tries; 2 goals) def. Storm 16 (Josh Addo-Carr, Young Tonumaipea, Mark Nicholls tries; 1 goal). Half-time: 11-7.
This article first appeared on NRL.COM