Jarmal Reid added 14 points, including the go-ahead basket with 10:02 to play, as the Beavers (14-5, 5-2 Pac-12) won their third in a row in a game that featured 12 lead changes and four ties.
Oregon State is now 12-0 at Gill Coliseum.
With Oregon State up 58-55, the Trojans had the ball and a chance to tie but Payton intercepted a pass at the top of the arc with eight seconds to play.
Payton was fouled and made one of two free throws with six seconds left to seal the win and send the Trojans (9-10, 1-6) to their fourth straight loss.
There were seven lead changes and one tie in the first eight minutes of play.
Reid came off the Oregon State bench to key a 16-4 run, with two gorgeous assists on baskets by Payton and Malcolm Duvivier. He then finished it off with four consecutive field goals, including a layup that made it 29-18 with 3:13 left in the half.
But the Beavers missed their last five shots of the half and USC closed with a 9-0 run, cutting the deficit to 29-27.
Payton scored 12 in the first half.
USC took a 30-29 lead but then OSU's Olaf Schaftenaar hit three-consecutive 3-pointers in a span of 1:34 to put the Beavers on top 38-30. Alas, for Beaver fans, Oregon State took their foot off the gas.
USC scored 11 straight points, part of a 15-2 run that ended with the Trojans holding a 45-40 lead with about 12 ½ minutes to play.
The Beavers regained the lead when Reid's layup made it 46-45 with 10:02 to play.
OSU led 53-52 with less than four minutes to play when Payton hit a baseline jumper as the shot clock was about to expire, followed by a runner in the lane with the shot clock again close to running out, that gave OSU a 57-52 lead with 2:40 to go.
Enfield said it was the first of those two shots that was the biggest dagger.
The Beavers late in the game switched from their trademark 2-3 zone defense and played man-to-man, which seemed to confuse the Trojans at times.
UP NEXT: Oregon State plays at Arizona State on Wednesday.