Ben Spies capitalised on Marco Simoncelli's early crash to cruise to his maiden victory in the Dutch MotoGP.
In damp and overcast conditions in Assen, Simoncelli squandered his pole position on the first lap after a clumsy clash with Jorge Lorenzo.
Both came off before continuing, but it allowed the American to build a lead which he held for a long-awaited win.
Championship leader Casey Stoner finished second to extend his lead to 28 points at the top of the standings.
Honda's Andrea Dovizioso took third place, ahead of Ducati's seven-time world champion Valentino Rossi, who has finished on the podium just once this season.
The race's key moment came just three corners in when Simoncelli and Lorenzo collided after the Italian lost grip of his bike and wiped the defending champion off the track.
That played into Spies's hands, who becomes the first former World Superbike rider to win a MotoGP race since Troy Bayliss in 2006.
"I could see on the big screen what had happened on the first lap [the Simoncelli and Lorenzo collision]," Spies told BBC Sport.
"I had a really good feeling on the warm up lap, so I wanted to go out as hard as I could at the beginning. Once I saw I had a gap I tried to keep the gap between Casey and I at three to four seconds.
"Each time he got closer I put in a big lap.
"To do it in front of the Assen fans on Yamaha's 50th anniversary was great," Spies added.
But it turned out to be a very satisfactory afternoon for Stoner, who remains in charge at the top of the overall standings.
"We were a bit disappointed we didn't get to test our settings in the warm-up but Ben just had a pace that I couldn't match," said Stoner. "Once Ben got that gap I couldn't bring it back.
"But I am very happy with the result, especially with how things have gone this weekend," Stoner added.
Spain's Marc Marquez recorded a second Moto2 win to move into second in the Championship standings while Britain's Bradley Smith claimed his second consecutive podium finish, taking third place in an absorbing race.
Championship leader Stefan Bradl, who had finished every race in the top five, crashed with only three laps remaining.
Marquez was involved in a thrilling four-way battle with Bradley Smith, Kenan Sofuoglu and Yuki Takahashi, but the Japanese racer crashed out with only five laps to go.
The Spaniard held off the challenge of Sofoglu, who clinched his first ever podium place, and the valiant Smith.
Smith, who has impressed since joining Moto2, said: "It is great to be on the podium again [for the second race in a row].
"We have improved the bike an awful lot in the wet and and now we have proved we can be second in the dry.
"When it started to rain again and I had the chance of a podium, I just did the sensible thing and brought it home for 16 points."
Another Spaniard, Maverick Vinales, raced to a controversial victory in the 125cc division after the race was red-flagged with 7 laps remaining due to the wet conditions.
But the 16-year-old's victory was upheld as two thirds of the race had been completed, despite his rivals appealing for the race to be suspended sooner.
Luis Salom finished in second, while Sergio Gadea, 19, secured his second podium finish to complete an all-Spanish podium.
There was disappointment for the home fans when Dutchman Jasper Iwema collided with Spaniard Adrian Martin, taking him out of the race.
Assen MotoGP result:
1 Ben Spies (US) Yamaha 41min 44.659 secs
2 Casey Stoner (Aus) Honda 41:52.356
3 Andrea Dovizioso (Ita) Honda 42:12.165
4. Valentino Rossi (Ita) Ducati 42:15.343
5. Nicky Hayden (US) Ducati 42:27.831
6. Jorge Lorenzo (Sp) Yamaha 42:29.195
7. Colin Edwards (US) Yamaha 42:52.771
8. Hiroshi Aoyama (Jpn) Honda 42:55.412
9. Marco Simoncelli (Ita) Honda 43:09.584
10. Toni Elias (Sp) Honda 43:10.875
Did not finish: Karel Abraham (Cze) Ducati, Randy de Puniet (Fra) Ducati
1. Marc Marquez (Sp) Suter 44min 30.409 secs
2. Kenan Sofuoglu (Tur) Suter 44:32.806
3. Bradley Smith (GBR) Tech 3 44:36.827
1. Maverick Vinales (Sp) Asprilia 25mins 04.147 secs
2. Luis Salom (Sp) Asprilia at 25:06.702
3. Sergio Gadea (Sp) Asprilia at 25:06.802