Norris looked set to secure from pole before Piastri’s stunning final effort saw him pick his team-mate’s pocket.
Charles Leclerc will start third ahead of Max Verstappen, while Liam Lawson impressed to progress to SQ3, finishing the session eighth.
Conditions had changed markedly since Free Practice 1, with the track temperature having fallen by more than 10 degrees as cloud cover blanketed the circuit.
With only 12 minutes available in the first segment, drivers completed a sequence of laps on the mandated medium tyres.
Sergio Perez was fastest early, with a 1:11.162s, though that quickly fell to Alex Albon and George Russell, the latter recording a 1:10.870s.
The new surface had evolved quickly during practice earlier in the day, which also revealed how bumpy the Interlagos venue had become as a result.
Midway through the segment, Piastri banked a 1:10.265s to sit two-tenths clear of Nico Hulkenberg in second.
Verstappen looked faster but lost out in the final third of the lap as he set a 1:10.590s – slower than Lawson.
It was much the same for Carlos Sainz who also lost time on the run onto the long front straight, suggesting the McLaren was especially slippery in a straight line.
McLaren has a new, circuit-specific rear wing, with claims from rivals that its party piece is DRS efficiency.
In the final moments, only Lawson was not on track, the New Zealander eighth with 30 seconds remaining.
He slipped only four spots as others improved, easily progressing in 12th in a segment headed by Norris, by almost seven-tenths, followed by Piastri.
By contrast, Yuki Tsunoda was one of those eliminated, the Japanese driver only 18th fastest and six-tenths off his RB team-mate’s pace.
Also eliminated were Fernando Alonso, Esteban Ocon, Lance Stroll, and Zhou Guanyu.
Both Williams progressed, Alex Albon an impressive third while Oliver Bearman, deputising for an unwell Kevin Magnussen, was seventh best and on par with team-mate Hulkenberg.
The 10-minute second session began with a queue forming in the pit lane, desperate to get on track with rain becoming an increasing threat – though there none was imminent.
Norris was immediately rapid with the best first sector of the session, carrying that pace to log a 1:09.063s – four-tenths faster than he’d managed in SQ1 and the same margin clear of Sainz who was second fastest.
Verstappen went marginally faster than the Ferrari, though he was unhappy with his Red Bull Racing, complaining of understeer through Turn 4 following a front flap adjustment.
Haas was not among the initial runners, leaving both cars in the shed until three minutes remaining.
Lawson had adopted the same approach in the sole remaining RB, along with Valtteri Bottas who’d progressed into SQ2 for Sauber.
Hulkenberg managed the ninth-best time with his lap, which became 10th when Bearman completed his lap, going fifth fastest.
Lawson also made the cut in ninth, relegating Hulkenberg to 11th while Red Bull Racing mistimed Perez’s run that left him 13th after Hamilton set his final flying lap.
It was good enough only for 11th and out, pushing Hulkenberg back a spot, with Perez, Franco Colapinto, and Bottas all missing out.
Again Norris headed the segment with his initial lap, with Piastri second best in the other McLaren. Then came Leclerc and Verstappen, with Sainz fifth.
The ambient temperature had continued to drop, falling another three degrees from when the session began.
It was a quiet start to SQ3, the two McLarens heading out along with Albon, the remaining seven runners keeping their powder dry.
An aggressive lap for Piastri netted a 1:09.225, while Norris managed a 1:08.928s with his first flying lap on soft tyres – the opening two segments of Sprint Qualifying mandate the use of medium rubber.
McLaren left its drivers on track ahead of a second attempt as the rest of the field filed out with three minutes remaining.
With his lap, Sainz went third, fourth when Leclerc flashed across the line seconds later.
However, a strong second effort from Piastri saw the Australian rocket onto the provisional pole with a 1:08.899s, helped by an enormously strong middle sector.
Verstappen couldn’t challenge the front row as he slotted in fourth, splitting the two Ferraris, with Russell sixth from Pierre Gasly, Lawson, Albon and Bearman, whose lap was deleted for track limits.
It was a stunning lap from Piastri, who not only bettered his rapid team-mate but on a set of tyres that had had the best taken out of them already.
The result also marks the second Sprint pole of Piastri’s career, having taken top spot in Qatar last year – an encounter he went on to win.