Defending champion Casey Stoner beat Jorge Lorenzo to first place at Laguna Seca to close the gap on the Spaniard at the top of the MotoGP standings.
The Australian overhauled Repsol Honda team-mate Dani Pedrosa before passing Lorenzo with 11 laps to go.
Pedrosa had to settle for third while Ben Spies completed a torrid weekend on his home circuit by crashing out.
British rider Cal Crutchlow finished fifth after failing to find a way past Andrea Dovizioso.
Stoner's race-winning manoeuvre, which came as he and Lorenzo exited the final turn of lap 20, moves him to within 32 points of the championship leader and nine points behind second-placed Pedrosa.
The trio started the race at the front of the grid - with Lorenzo on pole - and they quickly pulled away from the field on the dusty Californian track.
Pedrosa had passed his team-mate off the line but Stoner's decision to go with the softer tyres paid dividends as he reined in the Spaniard on lap three and then outpaced 2010 champion Lorenzo with just over 11 laps remaining.
"We went on the softer option which no-one else decided to do," Stoner told BBC Sport.
"Jorge was riding strong and fast lines so I decided not to risk it and pass him somewhere I wasn't comfortable. After that I picked up into a rhythm and tried to find a way past."
Yamaha's Spies, who was on crutches before the race because of a spill in qualifying that damaged his heel, finished off a forgettable weekend by coming off his bike late on, much to the disappointment of the home crowd.
That left Tech 3 Yamaha riders Crutchlow and Dovizioso to battle it out for fourth, with the Italian holding off a late charge from his team-mate.
Seven-time MotoGP champion Valentino Rossi failed to finish for the first time this season, sending his bike into the dirt with two laps remaining.
US Grand Prix results:
1. Casey Stoner (Aus) Repsol Honda 43:45.961
2. Jorge Lorenzo (Spn) Yamaha 43:49.390
3. Dani Pedrosa (Spn) Repsol Honda 43:53.594
4. Andrea Dovizioso (Ita) Tech 3 Yamaha 44:04.563
5. Cal Crutchlow (GB) Tech 3 Yamaha 44:04.740
6. Nicky Hayden (US) Ducati 44:12.863
7. Stefan Bradl (Ger) LCR Honda 44:14.354
8. Alvaro Bautista (Spn) Gresini Honda 44:36.207
9. Aleix Espargaro (Spn) Aprilia 45:04.954
10. Karel Abraham (Cze) Ducati 45:08.037