Reigning three-time Supercross champion Ryan Villopoto took the lead on the first lap with Roczen right behind. However, Villopoto crashed on the ninth lap, giving Roczen the lead. Three laps later, James Stewart passed Chad Reed for second and closed in on Roczen, but then had a race-ending crash.
Roczen's Red Bull KTM teammate Ryan Dungey passed Reed for second on the 16th lap. Villopoto recovered and finished fourth.
"This is insane," Roczen said. "I got off to a good start and was holding on really tight. When there were four laps to go, I realized that I could win."
In 250SX Class, Rockstar Energy Racing's Jason Anderson passed Cole Seeley on the last lap for his second career win.
"The pass was (risky) on Cole (Seely)," Anderson said. "I didn't want to be dirty but I had to put it in there, and I am glad it worked. I look forward to riding into Phoenix with the red No. 1 plate. This is only my second career win, so it is big for me."
Next week's race will be at Phoenix's Chase Field.