The Fortec racer, who becomes the first four-time winner of the season, finished a comfortable 11.7 seconds ahead of fellow McLaren junior driver Kevin Magnussen.
Dane Magnussen jumped ahead of slow-starting front-row man Will Stevens away from the lights, and maintained second position to the flag.
After his double dose of penalties following Saturday's qualifying, and a non-score in race one, Magnussen's result keeps him in touch with Vandoorne in the points battle.
Stevens completed the podium in third. The Briton made a much-needed qualifying set-up breakthrough as he recovering from a gearbox issue at the start of Sunday's qualifying session to grab his best starting position of the year in second.
Monaco winner Nico Muller claimed fourth, while former champion, and local star, Mikhail Aleshin charged from ninth on the grid to fifth - his highest finish of the season.
Early pitter Aleshin demonstrated some strong-arm tactics against compatriot Sergey Sirotkin. After passing the ISR driver into the last corner, the favoured overtaking location at Moscow Raceway, Aleshin squeezed Sirotkin slightly towards the pitwall to ensure he was not passed into Turn 1.
Andre Negrao repeated his race one position of sixth place for Draco.
Antonio Felix da Costa's pre-race hopes of bridging a significant points deficit to Magnussen and Vandoorne in the standings came to nought after posting a retirement.
The Red Bull junior driver slowed on lap three following first-lap contact. After pitting for a change of nose, da Costa returned to the track, only to call it quits 10 laps later.
In a race featuring little overtaking, Daniil Move stole seventh on the road from Vandoorne's Fortec team-mate Oliver Webb four laps from home.
However, the pass counted for little, as the Russian was set to land a 10-second penalty for a jump start.
Norman Nato opted for a last lap, final corner lunge on Jazeman Jaafar for the final point. The manoeuvre ended in contact and British Formula 3 runner-up Jaafar was punted into a spin. Nato limped across the finish in 10th.
Results - 33 laps:Pos Driver Team Time/Gap
1. Stoffel Vandoorne Fortec 45m43.611s
2. Kevin Magnussen DAMS +11.788s
3. Will Stevens P1/Strakka +14.008s
4. Nico Muller Draco +22.011s
5. Mikhail Aleshin Tech 1 +33.657s
6. Andre Negrao Draco +35.285s
7. Oliver Webb Fortec +43.195s
8. Pietro Fantin Arden Caterham +44.007s
9. Daniil Move SMP/Comtec +48.236s
10. Norman Nato DAMS +49.851s
11. Sergey Sirotkin ISR +50.407s
12. Marlon Stockinger Lotus +51.487s
13. Jazeman Jaafar Carlin +54.239s
14. Nikolay Martsenko Pons +1m02.894s
15. Nigel Melker Tech 1 +1m03.271s
16. Arthur Pic AV +1m03.921s
17. Marco Sorensen Lotus +1m04.360s
18. Mihai Marinescu Zeta +1m05.384s
19. Carlos Huertas Carlin +1m07.904s
20. Will Buller Zeta +1m10.417s
21. Matias Laine P1/Strakka +1m11.772s
22. Zoel Amberg Pons +1m13.724s
23. Christopher Zanella ISR +1m31.017s
Antonio Felix da Costa Arden Caterham 13 laps
Yann Cunha AV 3 laps
The 2015 Formula Renault 3.5 season will be notable for being the last with the French company's backing but also produced a worthy champion in Oliver Rowland. PETER MILLS evaluates this year's crop of drivers
Last year's field was extraordinary and hard to match, but the Formula Renault 3.5 grid will still have plenty of talent this season. Glenn Freeman runs through the field ahead of this weekend's season opener
Landing the Fortec seat that took rising star Robin Frijns to the 2012 FR3.5 title was already a good sign for Stoffel Vandoorne. Then McLaren took him under its wing. Peter Mills tells Vandoorne's story so far