Campos Racing's Pic led the majority of the race after he capitalised on polesitter Jordan King's poor getaway, which was followed by the Racing Engineering driver losing his front wing on the first chicane's kerbs.
Pic held a slim lead over Richie Stanaway in the opening laps before Stanaway's fellow New Zealander Evans dispatched him into the first corner and set about catching the leader.
The Frenchman was pulling away but a brief safety car period undid his hard work.
Vandoorne: I had to dominate GP2
McLaren protege Stoffel Vandoorne followed Evans through and passed Stanaway with ease, as the top three began to pull clear.
The gap between Evans and Pic remained the same for much of the race until the Russian Time driver stepped up the pace on the penultimate lap.
Evans took his opportunity, with the help of DRS, on the inside into the first chicane on the final lap.
Pic did his best to try to fight back as they went side by side on the rundown to the Roggia chicane, but he couldn't retake the lead and had to settle for second as Evans celebrated a win achieved despite having to start Saturday's race from last after being excluded from qualifying.
Vandoorne increased his already staggering lead in the championship with third place, after title rival Alexander Rossi retired.
The Racing Engineering driver passed Robert Visoiu on the rundown to the Roggia chicane, but the pair made contact and spun, which brought out the safety car.
Sergey Sirotkin had a great comeback drive from the back of the grid to take fifth behind Stanaway.
The Russian was locked in several intense battles with different drivers but kept it clean to finish well clear of Sergio Canamasas.
Ferrari junior Raffaele Marciello also fought his way up from the back of the grid and take sixth, despite running over the kerb at the first chicane in a battle with Artem Markelov.
Rene Binder, Markelov and Julian Leal completed the top 10.
DAMS team-mates Alex Lynn and Pierre Gasly recovered their pitlane starts to finish 11th and 13th respectively.
Arden International's Norman Nato, who started third on the grid, retired on the opening lap after an apparent engine blow-up.
RESULTS - 21 LAPS:
Vandoorne seals GP2 title in Russia
Rossi wins after Lynn crashes out