The win was Verstappen's fourth of the season, second in Monaco and 39th of his career.
The Mexican's teammate Max Verstappen finished third to stretch his Formula One championship lead over Leclerc.
The 23-year-old Dutch driver started the day 14 points behind Mercedes' seven-time world champion Hamilton and ended it four clear.
Formula One needs a minimum of eight races for the season to be a proper championship.
A joint statement by Formula One and the governing FIA said they expected the season to start 'as soon as it is safe to do so after May'.
Alonso is hoping to become only the second driver after the late Briton Graham Hill to complete the so-called 'Triple Crown of Motorsport', having already secured wins at the Monaco Grand Prix and Le Mans 24 Hours.
Ferrari's Sebastian Vettel was runner-up, ending Mercedes's run of five successive one-two finishes, with Hamilton's team mate Valtteri Bottas third.