Both touchdowns were scored in the first quarter, to give USF a 14-7 lead.
Matt Grothe threw a 37-yard touchdown pass to Amarri Jackson and Delbert Alvarado kicked a 38-yard field goal in the second quarter as USF built its lead to 24-7 at the half.
There was no scoring in the second half, when the contest was dominated by defense.
Williams gained 67 yards on 17 carries; Grothe threw for 81 yards; while Pat Julmiste threw for 49 yards and added 53 yards rushing for the Bulls (9-4), who won its first bowl game under Coach Jim Leavitt.
James Pinkney threw for one touchdown; and Bobby Good made five catches for 116 yards for the Pirates (7-6), who had won five of their previous six games.
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'