The Cougars (8-8, 1-3 Pac-12) came back from a 12 point deficit for their first Pac-12 win.
With 56 seconds on the clock, Delon Wright stole the ball from Johnson and went the length of the court for a dunk to pull the Utes within one, 47-46.
After an offensive foul on Johnson, Utah's Brandon Taylor traveled and put the ball back in the hands of Washington State.
The Utes (12-4, 1-3) were forced to foul and Johnson made a pair of free throws. Washington State fouled Delon Wright on the next play, but he missed both free throws. Wright had one more look at a three but missed short as time expired.
Utah shot a season-low 29.5 percent (13 of 44) from the field.
The Cougars played without DaVonte Lacy again. The Curtis High School product is out indefinitely with a rib injury.