On third down, Halliday threw a pass intended for Williams in the middle of the end zone, but Harris stepped in front of the receiver for his second career interception.
The Trojans, however, could not capitalize.
Early in the second quarter, the defense came up big again.
On first down at the Trojans' 43, senior linebacker Breslin sacked Halliday for an eight-yard loss. On the next play, tackle George Uko sacked Halliday and forced him to fumble. Kennard picked up the ball and returned it 14 yards, setting up Kessler's four-yard bootleg for a touchdown with 9:59 left in the second quarter.
Safety Dion Bailey's second interception in as many games gave the Trojans another opportunity with just more than three minutes remaining, but the Trojans went three and out.
USC got the ball back with just more than a minute remaining, a running play and incomplete pass once again spurring boos.
A holding penalty against Washington State gave USC a first down at the Cougars' 33.
Kessler passed to the left flat for Nelson Agholor, but Horton stepped in front of the receiver and raced to a tying touchdown.
The Trojans left the field to a cascade of boos directed at Kiffin.