Ryan Briscoe held off Penske team-mate Will Power to take the win at Sears Point, although the latter's championship hopes received a huge boost when many of his rivals struck trouble.
Power held the advantage for most of the race, but was caught out when he pitted just as the yellow flags came out for a heavy crash between Sebastien Bourdais and Josef Newgarden.
That left Power to rejoin amongst traffic that was slowing for the caution, while Briscoe, who had stopped on the following lap, had a clear track and was able to leap-frog his compatriot to take the lead.
Briscoe was forced to defend his advantage through two late restarts, but he held his team-mate off on both occasions and crossed the line 0.4s clear. Dario Franchitti was third, the Scot having spent the last few laps trying unsuccessfully to find a way past Power.
Power's disappointment at missing the win was countered by the misfortunes that struck the main threats to his title bid.
Ryan Hunter-Reay was in a strong position for most of the afternoon before being hit by Alex Tagliani. The American spun, stalled, got a push-start, and then found himself being penalised a few laps later for running into EJ Viso.
Two of the other title contenders were derailed in the same incident when Helio Castroneves turned Scott Dixon around at the start.
Castroneves was penalised for his part in the incident, while Dixon worked his way back into the top 10 only to damage his front wing in a trip through the dust while fighting Hunter-Reay.
Rubens Barrichello had his best IndyCar result, delivering a fourth place for KV Racing.
The Bourdais/Newgarden incident meanwhile had ramifications for both drivers, with Dragon writing off Bourdais' chassis and Newgarden sustaining an injury to his left index finger.
Results - 85 laps:
Pos Driver Team/Car Time/Gap 1. Ryan Briscoe Penske Dallara-Chevy 1m17.2709s 2. Will Power Penske Dallara-Chevy + 0.4408s 3. Dario Franchitti Ganassi Dallara-Honda + 1.0497s 4. Rubens Barrichello KV Dallara-Chevy + 8.8529s 5. Graham Rahal Ganassi Dallara-Honda + 9.4667s 6. Helio Castroneves Penske Dallara-Chevy + 11.2575s 7. Simon Pagenaud Schmidt Dallara-Honda + 12.3087s 8. JR Hildebrand Panther Dallara-Chevy + 22.8121s 9. Alex Tagliani Herta Dallara-Honda + 39.6868s 10. Tony Kanaan KV Dallara-Chevy + 1 lap 11. Justin Wilson Coyne Dallara-Honda + 1 lap 12. James Jakes Coyne Dallara-Honda + 1 lap 13. Scott Dixon Ganassi Dallara-Honda + 1 lap 14. Mike Conway Foyt Dallara-Honda + 1 lap 15. Sebastian Saavedra AFS/Andretti Dallara-Chevy + 1 lap 16. EJ Viso KV Dallara-Chevy + 1 lap 17. Simona de Silvestro HVM Dallara-Lotus + 1 lap 18. Ryan Hunter-Reay Andretti Dallara-Chevy + 1 lap 19. Oriol Servia Panther/DRR Dallara-Chevy + 1 lap 20. Ed Carpenter Carpenter Dallara-Chevy + 1 lap 21. Charlie Kimball Ganassi Dallara-Honda + 3 laps Retirements: Sebastien Bourdais Dragon Dallara-Chevy 63 laps Josef Newgarden Fisher Dallara-Honda 62 laps Katherine Legge Dragon Dallara-Chevy 48 laps Marco Andretti Andretti Dallara-Chevy 46 laps James Hinchcliffe Andretti Dallara-Chevy 35 laps Takuma Sato Rahal Dallara-Honda 2 laps