While he savored the triumph, his world champion teammate Jorge Lorenzo slated Honda's Marco Simoncelli for a first lap collision and called for him to be suspended.
American Spies, starting in second place in damp conditions, was the first new winner in MotoGP since Italian Andrea Dovizioso in 2009.
Australian Casey Stoner finished second for Honda, with Dovizioso third, to stretch his championship lead over an angry Lorenzo to 28 points.
Stoner, 7.697 seconds adrift of Spies, had won the previous three races. Italian Valentino Rossi was fourth for Ducati.
"It's special. This track is a track I grew up watching all my heroes race on," said Spies.
"I don't know how it all came together. I had a friend over from America, we had the special colors for Assen, and the way the weather was, maybe it all happened for a reason and we were able to do it today." Simoncelli played a big part.
The Italian was making his fourth front row start of the season but has yet to stand on the podium and once again his aggressive riding was in the spotlight with Lorenzo furious after being taken out at the third corner.
The Honda rider lost the rear end of his bike and brought down Lorenzo. Although both remounted, with the Spaniard finishing sixth, their hopes were gone.
"Sure he didn't mean to bring me down but he doesn't appear to think about things much," said Lorenzo.
"I thought he had learned from the controversies he's caused in the past but obviously not. He's as careless as ever. It's lucky that I wasn't hurt, I'm okay and could get a few points in the end," he told Spain's RTE television.
"I really think that if he doesn't change his attitude he will hurt more riders in the future. If I was on the safety commission I would take away his licence for several races but I'm just a rider and have no say in the matter." Moto2 championship leader Stefan Bradl, who had started his race on pole position, drew a blank after crashing in the closing laps on the wet track.
Spaniard Marc Marquez won to close the German's lead to 57 points.
Spanish teenager Maverick Vinales won a red-flagged 125cc grand prix, the 16-year-old's second successive victory of the season, after starting on pole and then dropping back to ninth place in an eventful start to the rain-hit race.
The race was halted by heavy rain after 15 laps. Spain's Nicolas Terol, who missed the race after crashing in qualifying and injuring his hand, still leads the championship with 128 points to German Jonas Folger's 101.
