Trident racer Cecotto leapt into the lead from the second row at the start as poleman Alexander Rossi (Caterham) and fellow front-row man Mitch Evans (Russian Time) made awful getaways.
Cecotto's first rival for victory was Rossi, who hounded him over the opening five laps. But Rossi fell back into the clutches of a charging Raffaele Marciello, who had ended the opening lap in fourth but battled past Racing Engineering team-mate Coletti at Turn 3 on lap two.
Marciello then passed Rossi for second at Turn 2 on lap seven, and closed right up to leader Cecotto. Despite harrying him for several laps, Marciello's tyres went off, and he fell back.
Vandoorne: I had to dominate GP2
Coletti, meanwhile, passed Rossi for third around the outside of Turn 3 on lap 17, and then repassed Marciello for second two laps later.
Cecotto's three-second lead quickly evaporated as Coletti slashed the gap, but he just could not find a way past.
"Not enough laps, I tried," said Coletti on his in-lap.
Marciello clung to third, despite a couple of ambitious lunges from Evans in the closing stages. Rossi finished fifth.
It was Cecotto's second win of the season and puts him third in the points race. Series leader Jolyon Palmer, who finished sixth, extended his lead over Felipe Nasr to 33 points. Nasr was an early retirement with a clutch problem.
Carlin's Julian Leal was seventh, after being shoved into the Turn 2 run-off by Palmer on lap 20 after they'had swapped positions a number of times. Takuya Izawa rounded out the point scorers.
1. Johnny Cecotto Trident
2. Stefano Coletti Racing Engineering
3. Raffaele Marciello Racing Engineering
4. Mitch Evans RT RUSSIAN TIME
5. Alexander Rossi EQ8 Caterham Racing
6. Jolyon Palmer DAMS
7. Julian Leal Carlin
8. Takuya Izawa ART Grand Prix
9. Sergio Canamasas Trident
10. Stéphane Richelmi DAMS
11. Conor Daly Venezuela GP Lazarus
12. Rene Binder Arden International
13. Arthur Pic Campos Racing
14. André Negrao Arden International
15. Stoffel Vandoorne ART Grand Prix
16. Artem Markelov RT RUSSIAN TIME
17. Rio Haryanto EQ8 Caterham Racing
18. Adrian Quaife-Hobbs Rapax
19. Kimiya Sato Campos Racing
20. Simon Trummer Rapax
21. Daniiel De Jong MP Motorsport
22. Tio Ellinas MP Motorsport
23. Daniel Abt Hilmer Motorsport
24. Facu Regalia Hilmer Motorsport
25. Nathanaël Berthon Venezuela GP Lazarus
Vandoorne seals GP2 title in Russia
Rossi wins after Lynn crashes out