It came down to the wire as Wes Naqaima looked to touch down a high ball on the full-time siren which would have handed the Knights the win.
But video referee Tim Mander ruled against the home side, judging a Roosters defender had arrived first to ground the ball safely in the in-goal.
It was an error-riddled second half but both teams fought hard, struggling to gain ground in a neck-and-neck contest that could have gone either way until the final minute.
The Roosters were denied a try in the opening minutes but Shaun Kenny-Dowall changed the visitors’ fortunes in the next set of six, barely staying in the field of play to ground a Braith Anasta bomb.
Later Kenny-Dowall grabbed a dream bounce from another high ball to turn the lead to the Roosters’ favour for the second time of the afternoon.
But it was not all deficit-creating tries for the Sydney winger – Kenny-Dowall made several unforced handling errors which hampered the Roosters’ go-forward.
Kurt Gidley was clinical with the boot for the home team, booting two conversions and a penalty goal, and Cory Paterson and Danny Buderus finished with a try each, both of which turned the game to the Knights’ favour.
– Roosters: 16 (S Kenny-Dowall 2, D Shillington tries; C Fitzgibbon 2 conversions)
– Knights: 14 (C Paterson, D Buderis tries; K Gidley 2 conversions, penalty goal)