Hamilton appeared set to claim his eighth win of a dominant season before drama struck on lap 29 of 64 in a race which featured four safety car periods.
The British star, who had just stopped for dry rubber, ran off the road at a final corner which had claimed Ferrari's Charles Leclerc one lap earlier.
Hamilton had to stop for a new front wing and was stationary for more than 50 seconds as his Mercedes crew dashed around for spare parts.
He finished 11th, having also been hit with a five-second penalty for entering the pits on the wrong side of the bollard, and spun in the final stages too on a day to forget for the world champion.
Verstappen, who stopped five times in the most topsy-turvy of races, took the chequered flag to claim his second win of the campaign.
The Dutchman finished ahead of Ferrari's Sebastian Vettel, who fought back from last, and Toro Rosso driver Daniil Kvyat. Racing Point's Lance Stroll finished fourth.
On a miserable day for Mercedes at their home race, Valtteri Bottas crashed out at the first corner with eight laps remaining, while in the hunt for the podium.
Bottas' spin brought a furious reaction from Toto Wolff, the Mercedes team principal banging both his fists on the table.
The result means Hamilton's lead in the championship as he goes for his sixth world title remains at 39 points over Bottas, with Verstappen in third a further 32 points back.