Romain Grosjean took his fifth GP2 win of the season at the Hungaroring after race-long leader Marcus Ericsson was given a drive-through penalty in the closing stages.
Ericsson had led the race from the first lap after jumping front row starters Luiz Razia and Luca Filippi in the race to Turn 1.
From there the iSport driver controlled the race while AirAsia driver Razia kept third-placed Grosjean at bay in the opening stint. But the championship leader was able to jump the pole-sitter by pitting one lap earlier than him.
Ericsson maintained his lead during the stops, but as he left the pits he was released into the path of the incoming Razia, prompting an investigation by the stewards. It was another eight laps before confirmation of the penalty came through, and Ericsson rejoined the race in sixth after serving his drive-through.
Before that DAMS driver Grosjean had closed the gap down to as little as 1.5 seconds, but Ericsson never looked unsettled in the lead.
Grosjean had an easy final seven laps once the Swede was out of the way, as behind him Coloni driver Filippi ran into tyre trouble due to pitting earlier than most of the frontrunners.
The Italian had been hassling Grosjean shortly after the tyre changes, but he eventually fell behind Charles Pic (Addax), Razia, Giedo van der Garde (Addax) and a recovering Ericsson.
Pic had passed Razia while they fought their way through some slower cars that were yet to pit during the middle of the race, and once he was clear of Filippi he set an impressive pace to hunt down a cruising Grosjean to the flag.
The final points places - and therefore the front row on the grid for Sunday's sprint race - went to old F3 Euro Series rivals Jules Bianchi (ART) and Christian Vietoris (Racing Engineering).
The pair had run as low as 10th and 11th after the stops, but they fought their way past Sam Bird (iSport), Dani Clos (Racing Engineering) and Fabio Leimer (Rapax) in a thrilling midfield scrap.
Bird, who had made up ground by pitting on lap 10, ended up in so much trouble with his rear tyres that he was forced to make a second stop as he dropped down the field.
Results to follow...