Rossi, who started eighth, pitted early and capitalised on others' mistakes to find himself in a fight for the lead with title rival Vandoorne.
The pair fought side-by-side for long periods of the race but Rossi made the crucial move with the help of DRS at Turn 1 to take a net first place.
Vandoorne tried to fight back but Rossi was on fresher tyres and he held on to take his second win of the season.
Vandoorne: I had to dominate GP2
Red Bull junior and polesitter Pierre Gasly was comfortably in the lead before being forced to retire after one of his wheels came loose following an early pitstop.
Gasly led the field away and was increasing his lead before GP2 newcomer Meindert van Buuren hit the barrier on the outside of Ascari, bringing out the safety car.
On the restart Gasly continued to build a gap to the rest of the field, but he was soon hampered by his wheel issue.
This left his team-mate Alex Lynn in a battle for the net lead with Rapax driver Sergey Sirotkin and Vandoorne.
The trio fought hard for several laps before Lynn tried to go up the inside of Vandoorne at Turn 1.
He was unable to make the corner though and collided with the helpless Sirotkin up ahead, leaving both of them with significant damage through which they later retired.
Russian Time's Mitch Evans was able to carve his way through the field to take his second successive podium, from 23rd on the grid.
Evans passed the struggling Arthur Pic, who appeared to have brake problems, on the final lap to finish fourth, but he was promoted to third due to Norman Nato's five-second penalty for speeding in the pitlane.
The penalty demoted Nato down to sixth, behind Richie Stanaway and Artem Markelov.
Stanaway and Markelov were locked in a frenetic battle for the majority of the race.
The New Zealander triumphed in the end and they were both able to pass the stricken Pic, who finished seventh, at the final few corners.
Jordan King secured reversed grid pole, ahead of Robert Visoiu and Rene Binder who completed the top 10.
Vandoorne seals GP2 title in Russia
Rossi wins after Lynn crashes out