Piastri said: “I feel like I did pretty everything right, so a bit disappointed to come out in second but that’s how it goes sometimes. Racing is a tough business. Had to get my elbows out at the first corner, happy with what I did.”
Hamilton had struggled for pace on the wet tyres but he pitted for his slicks on lap 11, making the decision himself, and it vaulted him up the order from sixth in the opening laps to third at the end, passing the damaged Red Bull of Verstappen on track.
“I’m so happy with that,” he said. “It’s been a tough year so far but I never thought it would rain in Miami, it’s the first time we’ve all been on track in the wet here and what a race it provided us.
“I made that call in the end. Because I was going nowhere.”
The madcap events of the pit-stop period, safety car and Verstappen’s penalty helped Williams’ Alex Albon, seventh in the early laps, vault to fourth in the results, ahead of George Russell’s Mercedes.
The final points were taken by Lance Stroll’s Aston Martin, Lawson and Haas’ Oliver Bearman, who drove an excellent race to take the final point from 19th on the grid.
The drama began before the start when Ferrari’s Charles Leclerc hit the wall in the wet conditions on the way to the grid, damaging the car and forcing him out of the race.
At the official race start time, the cars completed two laps behind the safety car to judge the conditions, before it was decided that visibility was too poor to continue.
The near half-hour break allowed the track to dry sufficiently for it to become raceable.
It was the first time in this race’s four-year history that rain had affected the running.