Two tries from off-season recruit Jaxson Paulo helped the Roosters to their first victory of the season, while it was the Warriors first loss following their first round victory over Newcastle.
After taking an 8-6 lead into the break, the Roosters scored two second-half tries and kicked a penalty with five minutes to go to secure the result at Allianz Stadium, although there will be concern around Brandon Smith failing to play the second half due to a back issue.
RNZ Pacific reports the Warriors battled on through a hefty injury toll which saw them lose Jackson Ford (2nd minute) and Charnze Nicoll Klokstad (50th minute) to failed head injury assessments, while Josh Curran left the field 22 minutes from full-time with a hip pointer injury.
They were also guilty of wasting three golden chances to tie scores in the final 15 minutes through basic errors.
Paulo scored four minutes into the first half and three minutes into the second, with Walker converting both and adding a penalty to put the hosts up by eight, before the No.7 scored one of his own off a Joseph Suaali'i break to make it a 12-point lead.
Addin Fonua-Blake's try with 18 minutes to go set up a thrilling finish, but Walker then kicked another penalty, which came after the Bunker overturned a possible Roosters try but found a Tohu Harris escort, to re-establish an eight-point advantage.
One of the key moments in the game came on 45 minutes when what was initially a Roosters error became a penalty against the Warriors for a Marcelo Montoya high shot on Paulo, which led to Paulo scoring his second of the day.
The Warriors are now without a win in Australia since April last year.
The Warriors are away to the North Queensland Cowboys next weekend.