Marc Marquez extended his MotoGP championship lead as he claimed a second consecutive race win on his Laguna Seca debut.
The Spaniard belied his inexperience of the Californian track all weekend, leading three of the four practice sessions and only missing out on pole due to a crash.
It was Stefan Bradl who grabbed pole and he held his lead for over half the race.
Marquez made a slightly slow start and needed to first fight back past Valentino Rossi, achieving that with a scrabbling Corkscrew pass in which both took to the dirt.
Bradl was 1.6s clear after that tussle, but Marquez's works Honda was soon shadowing the LCR example. A long chase ensued, before Marquez eventually slipped ahead into the final corner then pulled away.
Bradl was still able to claim his first MotoGP podium in a comfortable second place, two seconds behind Marquez, who is now 16 points clear in the championship.
Rossi had to settle for third on the top Yamaha, fending off race-long pressure from Alvaro Bautista - who was just 0.059s away from denying Rossi a podium when they charged over the line.
Marquez's title rivals Dani Pedrosa and Jorge Lorenzo had gentle races to fifth and sixth as they nursed their injuries.
Lorenzo had jumped to fourth early on before fading, although he still had sufficient reserves to stay clear of a muted Cal Crutchlow.
The two factory Ducatis had a wild fight for eighth place, won narrowly by home rider Nicky Hayden over team-mate Andrea Dovizioso.
An early crash ended Aleix Espargaro's unbeaten CRT run. Avintia's Hector Barbera emerged on top in class in 10th overall, after a long battle with Colin Edwards and the prototype Pramac Ducati of Alex de Angelis.
Results - 32 laps:
Pos Rider Team/Bike Time/Gap
1. Marc Marquez Honda 44m00.695s
2. Stefan Bradl LCR Honda +2.298s
3. Valentino Rossi Yamaha +4.498s
4. Alvaro Bautista Gresini Honda +4.557s
5. Dani Pedrosa Honda +9.257s
6. Jorge Lorenzo Yamaha +12.970s
7. Cal Crutchlow Tech 3 Yamaha +15.304s
8. Nicky Hayden Ducati +33.963s
9. Andrea Dovizioso Ducati +34.129s
10. Hector Barbera Avintia FTR-Kawasaki +1m02.369s
11. Alex de Angelis Pramac Ducati +1m02.604s
12. Colin Edwards Forward FTR-Kawasaki +1m03.593s
13. Danilo Petrucci Ioda-Suter-BMW +1m20.450s
14. Karel Abraham Cardion Aprilia +1 lap
15. Yonny Hernandez PBM Aprilia +1 lap
16. Hiroshi Aoyama Avintia FTR-Kawasaki +1 lap
17. Bryan Staring Gresini FTR-Honda +1 lap
18. Lukas Pesek Ioda-Suter-BMW +1 lap
Bradley Smith Tech 3 Yamaha 7 laps
Aleix Espargaro Aspar Aprilia 5 laps
Randy de Puniet Aspar Aprilia 4 laps
Claudio Corti Forward FTR-Kawasaki 3 laps
Michael Laverty PBM-Aprilia 1 lap