Coletti started sixth, which effectively became fifth when third-placed starter Jolyon Palmer stalled on the dummy grid.
Polesitter Stephane Richelmi led on the run to Turn 1, but Coletti got a great getaway and nipped past him into Turn 2 to lead, ahead of Richelmi and Nasr.
Behind them, James Calado got a run on Saturday's feature race winner Fabio Leimer. As Calado got to the braking zone at Turn 4 he clipped the right-rear of Leimer's car.
The impact snagged his front wing under his ART car, which sent him onto the grass on the inside and, completely out of control, he clattered into Sam Bird and Julian Leal, taking them both out as well as himself.
Nasr passed Richelmi for second at Turn 1 on lap two.
Coletti pushed hard in the early stages, opening out a lead of 2.5 seconds by lap five after a sequence of fastest laps. But that rapid pace risked taking precious life out of his hard-compound tyres.
Nasr saved his rubber for a late charge, and began the last lap less than half a second behind.
But Coletti judged it to perfection, withstanding everything Nasr threw at him and taking a 0.8s victory.
"I did a really good start, and when I was in first position I was able to control my tyres," said Coletti.
"It was a big step forward [in terms of tyre management] from yesterday. I didn't push on the tyres, so I had some left at the end when he pushed."
Richelmi threw away a podium finish by outbraking himself at the final corner on lap 17, gifting GP3 champion Mitch Evans third place.
Behind Richelmi, Johnny Cecotto finished fifth, a fine result after his qualifying travails, ahead of the battling Simon Trummer and Conor Daly.
Rene Binder took the final point by 0.6s over Palmer, who charged from last to ninth.
Coletti now leads the series with 36 points, nine ahead of Leimer and 10 clear of Nasr.
Leimer went off on lap 17 when placed sixth, and finished out of the points in 12th.