Delon Thompson had 169 yards rushing and three touchdowns to help Portland State beat Cal Poly 40-28 and snap its eight-game losing streak.