Ethan Lowe crossed for the visitors early, shortly after Roosters centre Dale Copley was taken off for concussion in the seventh minute and didn't return.
Copley's replacement, Ryan Matterson, replied for the Roosters in the 21st minute, with Pearce throwing the final pass.
Latrell Mitchell's conversion put the Roosters ahead 6-4 before tries to Shaun Kenny-Dowall, when the home side ran the ball on the last tackle in the 28th minute, and Boyd Cordner, who brushed his way past three Cowboys defenders close to the line, put them ahead 16-4 at the break.
Blake Ferguson was controversially denied a try by the bunker in the 33rd minute when he was ruled to have hit Kyle Feldt high before he dropped the ball and the Roosters No.1 pounced.
Mitchell scooted past Lachlan Coote on a 40m angled run to put the Roosters further ahead in the 49th minute.
Kane Linnett scored the Cowboys' second to give them hope in the 64th minute, but the Roosters defence held firm for a deserved Tricolours win, which is just their fifth of the season.
- AAP