Pole-sitter Nannini lost the lead to Peroni coming through the first corner, while Piastri had a commanding start from fifth to move past the Campos for first by turn four. Further back, a safety car was deployed after a coming together between Max Fewtrell and Olli Caldwell.
Dennis Hauger initially triggered the incident after hitting Leonardo Pulcini, making it back to the pits. However, damage to the front of his Hitech ensured retirement for the Dane.
Peroni took second back from Nannini on lap eleven, as the Campos set after the Prema of Piastri two seconds ahead.
Malvestiti brought out a second safety car after getting stranded in the gravel at turn five. It would only be brief as the safety car returned to the pits on the following lap.
With two laps to go, Peroni looked to close the gap to Piastri, as Verschoor and Sargeant lined up behind Nannini as they challenged the Jenzer for third.
Fernandez and Frederik Vesti ran wide at turn sever, despite hitting the kerb, both cars were able to continue without damage.
Bahrain International Circuit - Winter testing