The Prema Racing driver started third, dropping to fourth before a heartbreaking mechanical issue for Juan Manuel Correa put him out of the race, promoting the American.
He fought past Franco Colapinto, diving down the inside on lap 10 to take second, before sweeping round the outside of Collet at turn 10 on lap 14 for the lead.
By lap 17 he led by 0.7s, and held on despite Collet’s DRS advantage to take his first series win.
Collet took second, his best result of the year so far, while Colapinto held off a charging Leclerc for third, the Monegasque driver having made up five places to take fourth.
Polesitter Collet held the lead of the line at the start, while Colapinto and Crawford tussled for third, the former emerging in front.
Correa took the lead before racing was neutralized by a safety car, prompted by Rafael Villagomez’s stranded VAR car after contact with David Vidales, who pitted for a new front wing.
Racing resumed on lap four, with the Trident pair of Roman Stanek and Zane Maloney tussling into Tturn 4, while further back, Ollie Bearman, Kaylen Frederick and Arthur Leclerc fought for eighth.
Heartbreak came for Correa on lap six, the ART driver suffering a mechanical issue on the start-finish straight and plummeting down the order.
Bearman and Leclerc passed Stanek into sixth and seventh on lap eight before the virtual safety car was deployed the following lap, with William Alatalo suffering a mechanical issue in his Jenzer ..
The safety car came out again on lap 11, with Bearman and Maloney making contact after the pair went into turn 5 three-wide with Leclerc, ending the Trident driver’s race.
Crawford took the lead shortly after racing resumed on lap 14 after a fierce battle through turns 4 to 8 with Collet.
Crawford had a lead of 0.7s by lap 17, while further back Edgar and Stanek traded places for fifth.
Leclerc was rapidly closing on Colapinto by the penultimate lap, but was unable to make it past by the checkered flag.
Bearman had made it back up to sixth by the end of the race, but a five-second penalty for leaving the track and gaining an advantage during an early battle with Frederick dropped him to 16th.
Stanek finished fifth, with Frederick in sixth and Edgar in seventh. Championship leader Martins, Alexander Smolyar and feature race polesitter Isack Hadjar rounded off the top 10.