Chasson Randle added 16 points for the Cardinal (10-6, 1-2 Pac-12), who ended a two-game slide.
The largest lead for either team was six points until Stanford began pulling away in the final minutes.
D.J. Shelton hit consecutive 3-pointers for Washington State to tie the game at 37 with just under 13 minutes to play.
The lead changed hands six times afterward.
Stanford led 27-23 at halftime after Randle and Bright each hit a 3-pointer in the last five minutes.
This was the fifth game involving the Cougars that neither team scored more than 27 points in the first half.
It was a first for Stanford.