Sargeant lined up on pole position and led away from second-placed Hughes. A first-lap safety car was then deployed after Bent Viscaal went into the gravel and out of the race at turn five.
Racing returned as the drivers moved onto the fourth lap, Hughes threatened Sargeant's first lap but the Prema was able to maintain the lead of the race.
Campos' Alessio Deledda brought out a brief yellow flag after spinning at turn fifteen but was able to keep his car running and rejoin the race in last place.
Hughes wrestled the lead from Sargeant on lap seven, sweeping around the Prema through turns one and two. Over the next couple of laps, Hughes pulled out a slight gap to Sargeant.
The third Prema of Frederik Vesti slowed to a stop on lap nine between turns four and five, bring out the second safety car of the race.
Piastri went wide on the final corner as the lap returned to green on lap twelve, as Hughes managed to keep hold of the lead from the Prema of Sargeant.
With six laps to go, Lawson was onto the pack of Sargeant, looking to challenge for the American's second place. Lawson went for the move on lap eighteen but was unable to secure the second spot, as Hughes pulled out in front.
Fourth-placed Novalak looked to be struggling with his rear tyres as a brief slide in the turn fourteen chicane almost put the Prema into a spin. Novalak caught the slide early on and kept his fourth position.
On lap twenty, Lawson secured the second spot from Sargeant, pulling a similar move on the Prema as Hughes, going around the outside of turn on, setting after Hughes with two laps to go.
Lirim Zandelli and Sebastian Fernandez went wheel-to-wheel for twelfth around turn three, Fernandez going wide and dropping positions as a result.
Hughes remained untroubled to take the victory, with Lawson finishing over two seconds behind.
Bahrain International Circuit - Winter testing