Roczen, the Red Bull rider from Germany, passed Villopoto with six laps left and held off the three-time defending series champion.
"It was a good race," Roczen said. "I'm really happy I pulled this off. It was good for my confidence."
He flew by Villopoto on the triple after the Kawasaki star hit the outside blocks and lost traction.
"I definitely made that big mistake and gave away the race," said Villopoto, the series leader and a two-time winner in the first eight events this season.
Roczen was making his 12th career 450 start.
"The track's tough out there and I didn't feel great all day. I have a little cold," Roczen said. "The whoops were tough. I skimmed them in the beginning, then started jumping. It was just safer. It was really tricky. You had to be 100 percent focused the whole time."
Ryan Dungey was third, followed by Wil Hahn and Justin Brayton.
Roczen, also the winner of the season-opening race in Anaheim, Calif., cut Villopoto's series lead to nine points. James Stewart, the winner of the previous two races, is third—26 points back. Stewart rallied to finish 11th after wrecking on the first lap.
In the second event of the Eastern Regional 250SX season, Kawasaki's Martin Davalos raced to his first victory in 64 career starts.
"This is the most amazing thing ever," Davalos said. "I came to America as a nobody. To be standing here on top is just a dream come true."
Adam Cianciarulo, the winner last week in Arlington, Texas, in his Supercross debut, was second. Justin Bogle was third, followed by Blake Wharton and Blake Baggett.
Cianciarulo has a two-point lead over Davalos in the standings.