Paul Egwuonwu added 14 points and seven rebounds for the Bobcats (4-7, 1-2 Big Sky).
Montana State led 52-38 with 7:35 remaining when Portland State went on a 15-1 run to tie the game at 53-53 with 3:05 to go.
Two jumpers by Egwuonwu and four free throws from Moon put the Bobcats ahead 61-53 with 12 seconds left. But McMullen hit a 3-pointer with 5 seconds remaining, then made a steal and another 3-pointer with 3 seconds left to make it 61-59.
Michael Dison hit 1 of 2 free throws for Montana State before a desperation 3-pointer by Dre Winston at the buzzer came up short.
Purdue coach Matt Painter says players haven't used the fifth-year graduate transfer rule for its true intent.
The dust has settled after players made their NBA draft decisions. Which college teams won? Which lost? Well, Villanova is pretty happy. USC, meanwhile, might not be as thrilled.
The 2017 recruiting class is short on point guards, with Trevon Duval leading only eight prospects from the ESPN 60 who are still available.