Pole sitter Ilott lost out at the start to second-placed Shwartzman, as a great start for Schumacher saw him move up to third position.
Mazepin went wide at turn three, as Marcus Armstrong spun off at the following corner, bringing out a first lap safety car.
Racing resumed as that cars started the third lap, Shwartzman held onto the lead from Ilott and Schumacher, Shwartzman setting the fastest lap on the following lap.
Tsunoda, Aitken and Louis Deletraz were the first of the stoppers on lap seven, as Ilott regained the lead from Shwartzman through turn one on the following lap, putting the Russian under pressure from Prema teammate Schumacher.
Shwartzman pitted on lap nine, as leader Ilott pushed on to take the fastest lap, before pitting himself on the following lap, handing the lead to Schumacher on the hard compound tyre.
Zhou suffered during the pitstop, when his front right wheel was not attached properly, forcing his pit crew to lift the car a second time in order to fix the wheel.
Ilott powered through the field on his new set of tyres, moving up to as far as sixth by lap fifteen, as Schumacher looked to go long into the race after starting on the harder compound.
Schumacher was lucky not to crash after a slide through turn eight put the Prema onto the grass. Schumacher managed to correct the car and continue.
Yuki Tsunoda and Ilott finished in fourth and fifth, as Schumacher and Felipe Drugovich took sixth and seventh.
Zhou continued moving up the field, getting up to ninth on lap 20 past Marino Sato, who has yet to pit. At the front, Schumacher looked to be beginning to struggle on the hard tyres, as Ilott moved up into fifth position.
Mazepin and Ticktum complained on team radio about front tyre wear with fifteen laps to go, as Ilott passed the Dams for third. Prema decided to bring Schumacher into pit at the end of lap 23.
As Schumacher pitted, Ilott passed Mazepin for the leas, with Shwartzman moving into fourth. Schumacher rejoined the race in a lowly thirteenth.
Drugovich managed to find a way around Shwartzman for fourth after going longer than anyone else on the first stint.
A spin for Giuliano Alesi left him stranded at turn eight, bringing out a second safety car. Alesi spun after a hit from behind by Sean Galael. This prompted a second pit for Ilott, as Drugovich took the lead of the race.
Matsushita made an astonishing fourteen positions over the course of the race, as perfectly timed pitstop under safety car conditions further benefitted the Japanese driver.
Drugovich then pitted a second time, rejoining in ninth, relinquishing the lead to Tsunoda.
As the race restart got underway on lap 29, Tsunoda led from Ilott, as Matsushita challenged for second. Tsunoda rebuked Ilott's challenges for third, as Matsushita went wheel-to-wheel with Ilott for second.
Pushed wide battling with Matsushita, Ilott fell to fourth as Shwartzman jumped into third. Schumacher dropped down to eighth after a pass by Drugovich.
Matsushita jumped Tsunoda for second, while Shwartzman relegated the Carlin to third. A third safety car was deployed after a heavy accident for Roy Nissany at turn three.
With the race now exceeding the hour-long time limit, there was only one lap left to go after the race restarted. Ilott looked to move up the order, but dropped further down to fifth.
Matsushita crossed the line to take the win, as Mazepin took third behind Shwartman.
Eighth and tomorrow's pole position goes to Luca Ghiotto, as Ticktum and Deletraz crossed the line in ninth and tenth.
Bahrain International Circuit - Winter testing