STANFORD -- Dwight Powell matched his season high with 28 points, helping Stanford beat Arizona State 76-70 on Saturday.
Chasson Randle scored 15 of his 21 points in the second half for the Cardinal (14-7, 5-4 Pac-12), who were coming off a 60-57 loss to top-ranked Arizona on Wednesday.
Jahii Carson scored 24 points to lead the Sun Devils (16-6, 5-4), who had their three-game winning streak snapped. Jermaine Marshall added 22 points.
Marshall's 3-pointer with just over a minute to play brought Arizona State within 70-67, part of an 18-9 run over an 8-minute stretch.
Powell followed by hitting 1 of 2 foul shots. After Carson, who recorded his 25th game of at least 20 points, missed a 3-pointer, Josh Huestis was fouled on the rebound. He hit both of his shots for a 73-67 Cardinal edge with 36 seconds left.
Anthony Brown was 1 of 2 from the free throw and Marshall hit a 3-pointer at the other end as Arizona State drew within 74-70 with 15 seconds left.
Huestis hit two more free throws to seal the victory.
Jordan Bachynski recorded a pair of blocks for the Sun Devils and has 91 on the season. He needs six to match former Arizona star Anthony Cook for the all-time Pac-12 lead.
There were six lead changes, and four ties, in the first half. The Sun Devils took a 33-32 advantage into the intermission.
Randle hit a 3-pointer with 17:30 remaining to play in the game to break a 34-34 tie, part of a 12-3 run to open the second half.
Randle also converted a three-point play 4 minutes later to put the Cardinal up 52-39, their biggest lead of the game.
Carson hit a long 3-pointer to bring the Sun Devils, who were looking for their first Pac-12 road sweep in four years and their first sweep in the Bay Area in nine years, within five at 67-62 with 3:15 left to play.