Verstappen looked to be coasting to a second consecutive Formula 1® win and seventh straight podium – both career firsts.
The Red Bull driver, four points ahead of Hamilton in the standings prior to the race, was well in the clear after earlier benefitting from a slow Hamilton pit stop.
But Verstappen's left-rear tyre blew out and ended his race with five laps to go, prompting the furious Dutchman to kick his car in anger.
Lance Stroll had encountered the same issue with the hard Pirelli tyres, swerving out of control when he had been fourth, albeit without pitting.
A red flag – requested by a concerned Red Bull team – followed Verstappen's crash, meaning a standing start with Perez ahead of Hamilton on the front row of the grid for a two-lap sprint finish following the delay.
In another twist, Hamilton and his smoking brakes careered off the circuit from the restart and Perez raced away to lift Red Bull spirits.
With Hamilton way back in 15th, it meant a positive end to the day for Verstappen's team, even if the season leader will continue to rue his misfortune.
Stroll's mishap threw a spanner in the works, yet Verstappen pulled ahead clear from the restart following the safety car, with Perez again getting the better of Hamilton.
Sebastian Vettel's climb to fourth and attempt to reel in old foe Hamilton looked the most likely source of intrigue in the closing stages, only for Verstappen's blow to bring the race to a standstill.
Hamilton admitted his error when his restart sensationally failed, though, and Perez hung on, his car breaking down moments after crossing the line before Vettel – who achieved a first Aston Martin podium.
PEREZ PROVES HIS WORTH
The main focus is on the drivers' championship and Verstappen's tussle with Hamilton, but Red Bull's constructors' hopes also require Perez to perform. He is certainly now doing that.
A pair of brave battles against Hamilton helped consolidate Perez's place on the podium, allowing him to capitalise when Verstappen was thrown off course.
There was still work to do from the grid with two laps to complete in a short sprint, but the Mexican has now finished in the top five in four races in a row, also adding a second ever win – and first with Red Bull.
KIMI MATCHES SCHUMACHER RECORD
The improbable finish allowed Kimi Raikkonen to climb to 10th and collect his first point of the season with Alfa Romeo.
It boosts his career total to 1,864 and means he has collected points in 19 different seasons, equalling Michael Schumacher for the F1® record.
IN THE POINTS
- Sergio Perez (Red Bull)
- Sebastian Vettel (Aston Martin) +1.385s
- Pierre Gasly (AlphaTauri) +2.762s
- Charles Leclerc (Ferrari) +3.828s
- Lando Norris (McLaren) +4.754s
- Fernando Alonso (Alpine) +6.382s
- Yuki Tsunoda (AlphaTauri) +6.624s
- Carlos Sainz (Ferrari) +7.709s
- Daniel Ricciardo (McLaren) +8.874s
- Kimi Raikkonen (Alfa Romeo) +9.576s
- Max Verstappen (Red Bull) – 105
- Lewis Hamilton (Mercedes) – 101
- Sergio Perez (Red Bull) – 69
- Lando Norris (McLaren) – 66
- Charles Leclerc (Ferrari) – 52
- Red Bull – 174
- Mercedes – 148
- Ferrari – 94
- McLaren – 92
- AlphaTauri – 39
The F1® schedule takes in France, with Circuit Paul Ricard hosting the French Grand Prix in two weeks' time.