Dakota Prukop and Gunnar Brekke each scored two touchdowns and Montana State ran for 329 yards to down Portland State 29-22.
The Bobcats (7-3, 5-1 Big Sky) stayed in the conference title chase with the win. Brekke, who was filling in for injured All-American Shawn Johnson, opened the scoring with a 71-yard touchdown run and MSU led the rest of the way.
PSU scored on a blocked punt for a safety in the third quarter to cut the lead to 22-15, but couldn't capitalize, while MSU tacked on Purkop's second touchdown run in the fourth quarter.
Josh Kraght ran for 96 yards and a touchdown and passed for 218 yards and a last-gasp score for the Vikings (2-4, 3-7). His TD pass came with 45 seconds to play, but the Vikings were unable to recover the onside kick.