Felix Serralles kicked off his 2016 Indy Lights campaign by winning the first St. Petersburg race, giving Carlin its third win at the track in as many races.
Veach, who returned to the series after skipping the 2015 season, overtook pole-sitter Kyle Kaiser at the start, the latter dropping back to fourth.
The 21-year-old led the field up until lap 18, when his car temporarily lost power and let the trio of Felix Serralles, Scott Hargrove and Kaiser through.
Veach’s mechanical issues came back a couple of laps later and he eventually was forced to retire.
Once leading, Serralles quickly pulled away from Hargrove, who had to switch his focus on the charging Kaiser.
However, lack of overtakes saw the trio completing the podium in an unchanged order, Serralles winning by 5.5s.
Reigning Pro Mazda champion Santiago Urrutia led RC Enerson and Andre Negrao to complete a Schmidt Peterson trio between fourth and sixth.
Felix Rosenqvist had a sluggish start from the front row and had to settle for seventh just ahead of fellow high-key European graduate Dean Stoneman.
The top 10 was completed by Pelfrey’s Juan Piedrahita and Ed Jones, double winner at St. Petersburg last year.