SALT LAKE CITY - Troy Williams threw for 270 yards and two touchdowns -- including an 18-yard toss to Tim Patrick with 16 seconds left -- to rally 24th-ranked Utah to a 31-27 victory over USC on Friday night.
Utah needed to convert a pair of fourth downs on its final 15-play, 93-yard drive to set up Patrick's go-ahead touchdown. Zack Moss converted the latter by running for 5 yards on a fourth-and-1 play from the USC 23 with 45 seconds left. The touchdown pass came on the next play.
Patrick finished with 100 receiving yards and a touchdown on six receptions for his third 100-yard game of the season. Moss added 90 yards on 23 carries for the Utes (4-0), who won their Pac-12 opener for the second straight season.
USC redshirt freshman quarterback Sam Darnold threw for 253 yards and rushed for 41 yards and a touchdown in his first collegiate start. Justin Davis added 126 yards and a touchdown on 10 carries. It wasn't enough to help USC (1-3) avoid its third loss to a Top 25 team in four games.
USC opened the third quarter with the same degree of offensive momentum it showed late in the second quarter. The Trojans scored on Darnold's 8-yard keeper after a 35-yard catch by JuJu Smith-Schuster helped USC move inside the Utah 10. The touchdown gave the Trojans a 24-10 lead with 9:48 left in the third quarter.
Utah trimmed the deficit to 24-17 on the ensuing drive after narrowly avoiding a costly turnover. Armand Shyne fumbled at the goal line and offensive lineman Isaac Asiata got the ball in the midst of a pile in the end zone to preserve a Utes touchdown.
Moss came up with a big fourth-down conversion, gaining 2 yards on fourth-and-1 from the USC 12, to set up a 10-yard touchdown catch by Raelon Singleton on Utah's next drive. It helped the Utes cut the Trojans' lead to 27-24 with 9:45 left.
That set up Utah's game-winning final drive.
USC struggled to hold onto the ball in the first half. The Trojans coughed up fumbles on each of their first three offensive possessions -- each time after advancing into Utah territory.
The Utes cashed in on the first fumble with a 10-yard touchdown run by Williams. Utah ran 12 straight plays on the drive, culminating in Williams' keeper on a read-option play.
USC wasted no time answering. Adoree Jackson returned the ensuing kickoff 100 yards to tie it at 7-7. Jackson also scored on a 100-yard kickoff return against Utah in 2014.
The Trojans seemed to have all the momentum when they recovered a fumble by Zack Moss after a first-down run on Utah's next possession. But USC fumbled on back-to-back possessions to kill promising drives. Utah cashed in on the second of those USC fumbles, going ahead 10-7 on a 36-yard field goal by Andy Phillips with 6:39 left before halftime.
Once the Trojans finally held onto the ball, they made it pay off. Justin Davis ripped off a 50-yard run to set up his eventual 14-yard scoring run that gave USC its first lead at 14-10. A 32-yard field goal from Matt Boermeester extended the Trojans' advantage to 17-10 with 35 seconds remaining in the first half.
NOTES: USC lost a fumble on three first-half drives after not losing a fumble in its first three games of the season. ... Trojan RB Justin Davis rushed for 102 yards and scored a touchdown on just six carries in the first half. ... Utah ran the ball on 13 consecutive plays to open the game. The Utes rushed 32 times before halftime while passing just nine times.