Johnny Cecotto made the most of an eventful GP2 feature race to take a superb victory from 16th on the grid at Barcelona.
The Trident man started on the harder tyre and passed early race leader Jolyon Palmer for the win in the closing stages after pitting for the soft-compound Pirellis.
Palmer, on the hard tyre at the end of the race after pitting early on, was helpless as Cecotto attacked but fought off Felipe Nasr to take second and increase his championship lead.
Poleman Stephane Richelmi was removed from the lead battle before the race had even begun after the first start was aborted at the last-minute due to the stalled ART car of McLaren Formula 1 junior Stoffel Vandoorne, Richelmi then stalled himself as he attempted to get away for another formation lap.
When the race did begin, Stefano Coletti and Mitch Evans challenged either side of Palmer into Turn 1. Coletti, on the outside, attempted to swipe across in front of the other two but tagged the front of Palmer's wing and caused Evans damage as well.
As Coletti pitted with a puncture and Evans also stopped, Palmer assumed control ahead of Nasr. An incident at Turn 10 later round the opening lap eliminated Ferrari protege Raffaelle Marciello, Daniel Abt and Facu Regalia and sparked a safety car.
When that came in Palmer led for two laps before pitting, along with Nasr.
Julian Leal took over the lead but stopped next time around, promoting Cecotto after he made the most of the early melee - plus a stall for Stoffel Vandoorne - to move up from the eighth row of the grid.
Cecotto gradually eased clear of the second-on-the-road Tom Dillmann as Palmer did likewise from Nasr.
When Cecotto finally pitted with seven laps remaining he rejoined just ahead of Nasr and, having rebuffed the Carlin driver's attack through Turns 1 and 2, Palmer held a lead of 2.5s as he crossed the line next time around.
A lap later, though, Cecotto was in front. A stunning opening two sectors put the Venezuelan on the Briton's tail and as Palmer moved right to take the racing line into the chicane Cecotto dived inside into the lead.
Palmer - furious over the team radio with victory taken away from him - was left to fend off Nasr for second (pictured), which he did despite a spirited final-lap effort from the Brazilian.
Leal took fourth having shadowed Nasr for much of the race. Ryo Haryanto held off a train of cars to net fifth, just ahead of Arthur Pic, Rene Binder and Tio Ellinas, with Arden stand-in Dillmann ninth after losing time in the pits as his team hastily repaired a loose engine cover.
Adrian Quaife-Hobbs claimed the final point in 10th, while GP2 debutant Ellinas will start from pole for the reversed-grid sprint race.
Results - 36 laps: Pos Driver Team Time/Gap 1. Johnny Cecotto Trident 1h00m28.853s 2. Jolyon Palmer DAMS +3.409s 3. Felipe Nasr Carlin +3.750s 4. Julian Leal Carlin +6.128s 5. Rio Haryanto Caterham +15.895s 6. Arthur Pic Campos +16.842s 7. Rene Binder Arden +17.682s 8. Tio Ellinas MP +18.407s 9. Tom Dillmann Arden +20.565s 10. Adrian Quaife-Hobbs Rapax +21.265s 11. Stephane Richelmi DAMS +21.460s 12. Stefano Coletti Racing Engineering +21.847s 13. Artem Markelov Russian Time +22.233s 14. Simon Trummer Rapax +22.804s 15. Stoffel Vandoorne ART +23.397s 16. Mitch Evans Russian Time +23.630s 17. Conor Daly Lazarus +25.415s 18. Sergio Canamasas Trident +42.769s 19. Kimiya Sato Campos +48.653s 20. Takuya Izawa ART +52.965s Retirements: Daniel de Jong MP 26 laps Alexander Rossi Caterham 18 laps Nathanael Berthon Lazarus 3 laps Daniel Abt Hilmer 1 lap Raffaele Marciello Racing Engineering 0 laps Facu Regalia Hilmer 0 laps