PASADENA, Calif. -- Joshua Kelley rushed for 289 yards on 40 carries and scored two touchdowns to lead UCLA past USC 34-27 on Saturday at the Rose Bowl.
The junior rushed for the third-most yards in school history and the most by a Bruins back against the Trojans. Gaston Green had the previous mark with 224 yards on 39 carries in 1986.
Kelley's 55-yard touchdown up the left sideline with 10:39 remaining gave the Bruins a 28-27 lead. JJ Molson then added a pair of field goals to extend the margin for UCLA (3-8, 3-5 Pac-12).
USC (5-6, 4-5) mounted one final drive and got to the UCLA 29 but JT Daniels' fourth-down pass was incomplete with 32 seconds remaining.
Wilton Speight completed 13 of 22 passes for 166 yards and a touchdown. He also ran for a score as UCLA broke a three-game losing streak to its crosstown rival.
Daniels threw for 337 yards and two touchdowns as he completed 20 of 34 passes while Michael Pittman Jr. had 106 yards on seven receptions. The Trojans were 4-2 at midseason but have dropped four of their last five.
After USC scored on a 46-yard field goal by Michael Brown on its opening possession, UCLA would score touchdowns on its first two. Speight threw a perfect 33-yard pass to Theo Howard that the junior receiver was able to haul in near the back of the end zone while being covered by Iman Marshall.
Speight then got his first collegiate rushing touchdown on a 4-yard scramble to extend the Bruins' lead to 11. The key play of that drive was a 59-yard gain by Kelley down the left sideline to the USC 9.
The Trojans would take back momentum with a couple big plays on special teams. A 44-yard touchdown by Amon-Ra St. Brown from Daniels drew them within 14-10 late in the first quarter. The TD came right after Erik Krommenhoek got a first down on a direct snap off a fake punt.
USC's punt team then gave it the lead early in the second quarter when Jake Russell blocked a Stefan Flintoft punt at the UCLA 5 and Devon Williams ran it in.
The Bruins answered right back with a Kelley 1-yard score but the Trojans would lead 24-21 at halftime after Velus Jones caught a receiver screen, got a pair of blocks from Pittman and went 45 yards.
A Brown 22-yard field goal midway through the third quarter gave USC a six-point lead.
USC: For the second straight game, the Trojans and Daniels struggled during the second half. Clay Helton's future as coach could be precarious with the late-season collapse and bowl hopes hanging by a thread.
UCLA: Kelley, who is in his first season at the school after transferring from UC Davis, has six 100-yard games this season and is the first Bruins running back since Paul Perkins in 2015 to go over 1,000 yards.
USC: Closes out the regular season hosting No. 4 Notre Dame.
UCLA: Ends its season on Saturday against Stanford.