It wasn't all bad – as the Warriors led 12-4 midway through the first half – before the Roosters then reeled off 28 unanswered points.
Under Trent Robinson they have become famed for their iron curtain defence, and that was the clear difference in a match where both sides were dropped plenty of ball.
As well as their impressive scrambling, the Sydney team were aggressive in their line speed and gradually wore down the Warriors, who were torpedoed by numerous errors in their own half.
The Warriors conceded some relatively soft tries, which will make for an uncomfortable review.
They also missed the considerable presence of Addin Fonua-Blake, with the marquee prop limping off with an unspecified knee injury in the 14th minute.
The Roosters have been badly affected by injury this season, but their creative use of the salary cap over the last few years mean they still boast an impressive roster.
They had 10 internationals in action, including Jared Waerea-Hargreaves as an impact option off the bench.
The Warriors enjoyed a solid start, amidst a frenetic beginning to the match.
They opened the scoring in the seventh minute, after Adam Pompey retrieved a Kodi Nikorima bomb. It was a touch fortunate – as the ball bounced off Joseph Manu's shoulder – but just reward for some flat, fast football in the preceding set.
The Warriors could have gone further ahead, but Nikorima lost the ball metres from the line, after Roger Tuivasa-Sheck had busted through.
That tackle by Brett Morris was vital, as James Tedesco crossed just over a minute later, scything through after isolating Wayde Egan in the defensive line.
After some sustained pressure, the Warriors' second try came via an unusual route, with Tohu Harris first to a Tuivasa-Sheck grubber near the uprights in the 21st minute.
But the Roosters responded, with two repeat sets after a cheap turnover ending with Nat Butcher crashing over off a Sam Walker pass.
If that hurt, the next Roosters try was even more painful. Gifted possession by a rare Tuivasa-Sheck error, Brett Morris somehow squeezed his way over in the corner.
The Warriors were a touch fortunate moments later, as an Angus Crichton try was scratched for a marginal obstruction. There was more parity after halftime, and the Warriors did well to force consecutive goalline drop-outs but took the wrong options and the Roosters hung on.
It was frustrating to watch, with their biggest threat Ben Murdoch-Masila not utilised once with early ball during those four sets.
That profligacy was punished, as the Roosters ploughed down the field before Brett Morris sniped over from dummy half in the 53rd minute.
If that felt like a killer blow, as the Warriors had dominated second half possession up until then, the final nail a few minutes later, with a Tuivasa-Sheck error in his own half, from an ambitious Bayley Sironen pass, allowing Drew Hutchison to sprint in under the posts.
Another miraculous recovery never looked likely, with so much petrol used up in the first half, though Ken Maumalo went agonisingly close, with his hand brushing the sideline as he touched down in the corner, before a late Josh Morris try iced the victory for the Roosters.
Roosters 32 (B Morris 2, J Tedesco, N Butcher, D Hutchison, J Morris tries; S Taukeiaho 3 goals, S Walker goal) Warriors 12 (A Pompey, T Harris tries; K Nikorima 2 goals) HT: 16-12