From second on the grid, Vandoorne outdragged reversed-grid polesitter Nathanael Berthon into Turn 1, and was followed through by Felipe Nasr from P3.
From fifth on the grid, points leader Jolyon Palmer made a poor getaway but rescued fifth place by passing yesterday's winner Arthur Pic at Turn 2 on the opening lap.
He then passed Daniel Abt for fourth at Turn 1 on lap two, and then Berthon for third at Turn 2 on lap five.
Vandoorne: I had to dominate GP2
Palmer chased down Nasr and the two title protagonists, who battled mightily on Saturday, duelled once again.
Palmer pulled a similarly-robust move on Nasr at Turn 1 on lap seven, with Nasr complaining over the radio.
Stewards investigated the move, but took no action, and the drivers also argued after the race on the weighing scales after the race.
Once up to second, Palmer got to within 1.3s of Vandoorne, but slipped back to 3.3s in arrears when his front-left tyre went off towards the end of the race.
"Finally another victory," said Vandoorne on his in-lap.
Nasr caught up with Palmer again, but finished just under a second behind.
Berthon clung to fourth from Abt, Pic and Conor Daly.
Adrian Quaife-Hobbs scored the final point, surviving a last-lap attack from Tom Dillmann at Turn 6, where the latter spun out after a brief trip through the air.
Vandoorne seals GP2 title in Russia
Rossi wins after Lynn crashes out