Piastri was sitting inside the top six for much of the race until the complexion of the 23-lap contest changed when the Safety Car was called for incident that put Race 1 winner Liam Lawson out of the race.
The Australian surged through the pack in the final laps passing the soft tyre-shod Zhou, who chose not to pit, on the final lap to take the win.
Zhou was left to settle for second while Jehan Daruvala claimed the final spot on the podium.
The race was barely a lap old before the Safety Car was deployed due to chaos at the first corner.
Title contenders Robert Shwartzman made contact on the entry to Turn 1, which sent Carlin’s Dan Ticktum around and put both drivers out of the contest.
Shwartzman picked up damage to his front wing and subsequently parked his car on the side of the road. The incident was to be investigated by the stewards.
While there was plenty of chaos at Turn 1, polesitter Juri Vips just about held off Zendeli to lead the field from Guanyu Zhou.
Racing resumed on lap three with Zhou firing himself into second after a slick move on Zendeli on the run to Turn 4.
Race 1 winner Lawson was among the winners of the opening lap drama to shoot from 10th to fourth, and shortly after he improved to third .
On the same lap Zhou continued his charge to pass Vips for the lead in what was a carbon copy of his move on Zendeli.
There was plenty of action down in the pack too as Theo Pourchaire, recovering from his Race 1 retirement, stormed from 19th to 11th, likewise Marcus Armstrong, on the soft tyre strategy, climbed from 20th to eighth after eight laps.
The drama continued among the front runners as fourth-placed Zendeli was effectively ruled out of the race after picking up a right rear puncture courtesy of contact from Christian Lundgaard (ART Grand Prix) at Turn 1.
Zendeli managed to nurse the car back to the pits to change to the soft tyre, before ultimately retiring from the race.
Lundgaard was handed a 10-second penalty for his action in the incident.
Meanwhile at the front Zhou began to break away from the pack opening up a two-second gap over Vips at the halfway point. Behind, Lawson and Felipe Drugovich, who gained 12 spots in 10 laps, were in hot pursuit.
Zhou’s lead soon evaporated as the Safety Car was deployed again on lap 15 following a collision between Drugovich and Lawson at Turn 4.
Lawson initially defended from Drugovich at Turn 1 and in the proceed fell into the clutches of Lundgaard, who dived passed the pair of them at Turn 4.
While Lundgaard competed the move, Lawson and Drugovich made contact, resulting in the Race 1 winner spinning out of the race. Drugovich was handed a 10-second penalty.
The stoppage sparked frantic action in the pits with the majority of the field making the decision to pit for fresh tyres, while leader Zhou stayed out on the softs.
Those who made the stop for fresh rubber enjoyed an immediate benefit as the race order was significantly shaken up.
Armstrong, who like Zhou stayed out, briefly found himself in second on the restart before he was gobbled up by the drivers on fresh rubber, falling to sixth.
In the end Zhou just couldn’t hold on to the win as Piastri took advantage of an issue for the charging Juri Vips.
Daruvala took the final podium despite finishing fourth on the road behind Lundgaard who dropped to ninth after his penalty was applied.
Rookie Richard Verschoor came home fourth ahead of Pourchaire, David Beckmann, Marino Sato and Matteo Nannini, who competed the points scorers.
The field will return on Sunday for the first feature race of the season, which Zhou will start from pole position.
Updated race results:
|1||2||Oscar Piastri||Prema Racing|
|4||11||Richard Verschoor||MP Motorsport||2.9|
|5||10||Théo Pourchaire||ART Grand Prix||3.7|
|6||14||David Beckmann||Charouz Racing System||6.3|
|8||22||Matteo Nannini||HWA Racelab||9.7|
|11||15||Guilherme Samaia||Charouz Racing System||12.4|
|13||20||Gianluca Petecof||Campos Racing||17.5|
|16||8||Juri Vips||Hitech Grand Prix||36.9|
|17||21||Ralph Boschung||Campos Racing||48.4|
|23||Alessio Deledda||HWA Racelab||Retirement|
|7||Liam Lawson||Hitech Grand Prix||Retirement|
|12||Lirim Zendeli||MP Motorsport||Retirement|
|1||Robert Shwartzman||Prema Racing||Collision|