Verstappen started on pole position but was overtaken by George Russell and Hamilton on a chaotic opening lap that saw Ferrari’s Charles Leclerc crash out of the race.
Mercedes were in a prime spot to try and control the race but Alex Albon spun out and sprayed gravel onto the track.
Mercedes brought Russell into the pits but the race was red flagged, meaning Russell fell down to seventh when he could have stayed in the lead and had a free pit stop during the delay.
Hamilton took the lead but was soon overtaken by Verstappen, before Russell’s car caught fire, ending his race.
The race then briefly calmed down and Verstappen had appeared to be coasting to victory with an eight-second lead when debris from Kevin Magnussen’s Haas forced the second of three red flags with three laps remaining.
On the restart, Verstappen was able to hold Hamilton to the first turn as bedlam unfolded behind his RB19, sparking a massive reshuffle of the finishing order in the 58-lap race.
Alonso, who had challenged Hamilton for second position throughout much of the race, was hit by Ferrari’s Carlos Sainz on the first corner of the restart. Sainz, whose Ferrari showed good speed throughout the race, was issued with a five-second penalty which relegated him to 12th, consigning Ferrari to a pointless race.
Williams driver Logan Sargeant also drove into the back of Nyck DeVries and Alpine’s Esteban Ocon and Pierre Gasly also crashed.
The carnage was so chaotic officials decided to restart the race in the order of the previous start, for a procession lap.
In the end, only 12 of the 20 drivers completed the grand prix, meaning Oscar Piastri finished eighth to score the first championship points of his career at his home race.
Red Bull has won the first three races of a season for the first time, while Alonso has finished on the podium in every race so far in 2023.
-Agencies