The Titans trailed 18-12 at the break but piled on four unanswered tries by the 67th minute to set up a match-winning lead.
The home side made things interesting with tries to Solomone Kata and Bodene Thompson in the final 10 minutes but Neil Henry's men held on for their fourth win of the season.
With the win the Titans climb temporarily into sixth spot on the NRL ladder while the Warriors are languishing in 13th place.