Prema’s F2 rookie followed up his Silverstone pole with a 1m32.199s to wrest the top spot away from Carlin’s Jehan Daruvala by just 0.041 seconds.
UNI Virtuosi driver Guanyu Zhou, who trails his fellow Alpine junior by five points, claimed third as Liam Lawson (Hitech) qualified fourth.
Amid the usual traffic as drivers attempted to gain a tow, ART’s Theo Pourchaire broke free of the pack to set the first flying lap, a 1m33.277s.
The times tumbled as other drivers cleared their first runs, with Ralph Boschung (Campos) overcoming his earlier mechanical troubles to set the fastest time at that point with a 1m32.609s.
Piastri then took the top spot 10 minutes into the session, going two tenths quicker than Boschung’s benchmark time, as free practice pacesetter Dan Ticktum went third fastest for Carlin.
After a short break in running, all 22 drivers returned to the track for two more push laps with 10 minutes left of the session.
Series returnee David Beckmann, now driving for Campos after the former Charouz driver replaced Matteo Nannini, headed the cars out of the pits before the usual Monza track position chaos ensued.
As the field bunched up in a bid to find the best spot on track, Boschung pitted in an attempt to get a better position, but was called onto the weighbridge. This ruined his ploy and forced the Swiss to push to reach the back of the pack for a tow.
With Piastri still on top, Zhou improved from P8 to second, before Boschung pushed him down into third with a 1m32.553s.
The times continued to tumble in the last two minutes of the session with Lawson briefly claiming the top spot, before Zhou and then Daruvala subsequently set quicker times.
Finally, Piastri recaptured the spot with a 1m23.199s as 0.057s split the top three on the grid.
Beckmann will start on reverse grid pole for tomorrow’s first sprint race, with Juri Vips (Hitech) second, Ticktum third and Pourchaire fourth.