Cameron Ward threw two touchdown passes and directed a late scoring drive as Washington State held off No. 19 Wisconsin 31-22 in a non-conference game on Saturday night in Pullman, Wash., upsetting a ranked Badgers team for the second straight season.