Kiffin also was pleased with the way his staff hung in there.
"I felt we did a lot better job as a staff today handling negative plays than we did the last time on the road," Kiffin said, referring to a 21-14 loss to Stanford on Sept. 15.
"I think we did a very good job of that, not panicking, staying with the run game even though we were down. Much like last year, after our first bad road trip, we started playing a lot better, so hopefully that's the case."
Before the season, Thursday's game was being touted as a possible showdown for the Pac-12 South title. But then Stanford upset then-No. 2-ranked USC and Utah lost by 30 to Arizona State the following week.
While the Utes are headed to the South basement, the Trojans continue to work their way back to the top of a league with six Pac-12 teams ranked in the Associated Press Top 25.
It helps having Barkley, who stayed calm Thursday after the rough start.
He drove the Trojans 75 yards in eight plays, capped by Silas Redd's 3-yard run, to pull USC within 14-7 midway through the first quarter.
After Hays' 18-yard TD pass to DeVonte Christopher bumped Utah's lead to 21-10 with 8:54 left in the half, Barkley countered a minute later with a three-play,74-yard TD drive, passing 41 yards to Woods and capping it with a 23-yard strike to tight end Randall Telfer that pulled USC within 21-17.
Barkley gave USC its first lead with 4:38 left in the half on a 6-yard TD pass to Woods on third-and-goal from the 6.
Lee finished with 12 catches for 192 yards, and Woods had six catches for 69 yards.
"Those are unselfish guys," Kiffin said of Lee and Woods.
Lee spun himself silly going for extra yards after the catch.
Woods, meanwhile, was dazed from a block he made on a punt return.
"I don't want Robert to hit like he did on the punt return," Kiffin said. "He could have just high-screened him, but he's so competitive you can't slow him down in a situation like that.
"He came right back in that quick. Many guys are going to stay out for a while but he's a dynamic competitor."