Kessler, who went into the game ranked fourth nationally in passing efficiency, completed 22 of 34 passes for 214 yards and a touchdown, with one interception.
The Bruins tipped at least three passes as Kessler was held to his third-lowest passing yardage total of the season.
Kessler also was sacked six times by a defense that had gone into the game with only 16.
"They got a lot of pressure on us," Kessler said. "They did a good job up front and I tried to buy some time and make some things happen. But at the end of the day they had a great pass rush and you can't take that away from them."
Kessler has passed for 30 touchdowns, with four interceptions.
Last season, Kessler completed 17 of 28 passes for 174 yards and a touchdown in a 35-14 loss to the Bruins.
Cornerback Josh Shaw played for the first time this season since returning from a suspension.
Shaw, a senior, played on special teams and as a nickel back. He made one tackle.
Shaw got in for the first time after USC scored a touchdown early in the first quarter. He went in on the kickoff coverage team and tackled UCLA's Ishmael Adams. On the ensuing series, Shaw came in on third down.
Shaw was suspended on the eve of the season opener after he admitted to USC officials that he fabricated a story about how he suffered ankle injuries.
Shaw also was the subject of a police investigation in connection with an argument he had with his girlfriend on Aug. 23 at his apartment near downtown.
He was reinstated Tuesday.
Linebacker Anthony Sarao returned an interception 17 yards for a touchdown to give the Trojans a 7-0 lead early in the first quarter.
It was Sarao's second interception of the season. He almost had another later in the game on a similar play, when UCLA quarterback Brett Hundley tried to throw a quick out.
Sarao made three tackles.
Agholor's streak ends
USC receiver Nelson Agholor, a Biletnikoff Award semifinalist, saw his streak of 100-yard receiving games end.
Agholor caught three passes for 24 yards.
Late in the first quarter, he nearly hauled in what would have been a 25-yard touchdown pass, but the play was broken up by Adams.
Agholor went into the game coming off two consecutive games of more than 200 yards receiving.
Freshman tight end Bryce Dixon, who was suspended from USC's game against California, played against the Bruins.
Dixon was held out against Cal because of what Coach Steve Sarkisian described as an unspecified "student conduct issue."
Dixon practiced every day this week, but Sarkisian said as late as Thursday that he had no update on whether Dixon would play.
Dixon came into the game in the first quarter during the Trojans' third series.
He caught one pass for 12 yards.
Starting cornerback Adoree' Jackson played on offense for the second consecutive game.
Jackson, a freshman, carried the ball one time for five yards.
He also came flying in at the last second to break up a long pass from Hundley to Devin Fuller in the second quarter.
Freshman John Plattenburg, who was sidelined against Cal because of a thigh bruise, returned and started against the Bruins.
Plattenburg had started three consecutive games before he suffered the injury.
Receiver JuJu Smith turned 18 on Saturday. The freshman caught four passes for 79 yards.... Linebacker J.R. Tavai played for the first time since suffering a knee sprain against Utah on Oct. 25.... USC's game Saturday against Notre Dame at the Coliseum will start at 12:30 p.m. and be televised on Channel 11.