In a closely contested session which saw the track improve significantly towards the end, Daniel Ricciardo was third for Red Bull ahead of the Ferrari of Sebastian Vettel. Carlos Sainz was fifth for Toro Rosso, followed by the Lotus of Pastor Maldonado and the second Red Bull of Daniil Kvyat.
Kimi Raikkonen finished up eighth for Ferrari, with last year’s winner Nico Rosberg ninth for Mercedes and the Williams of Felipe Massa completing the top ten, all of who were covered by little more than a second.
Things, however, were not quite as they seemed. The session was all about maintaining tyre and brake temperatures, and the timing of your runs - and Verstappen's fabulous effort of 1m 18.899s was one of several that came late in the session, on a track that improved all the way through the 90 minutes.
Hamilton's 1m 18.750s, in contrast, was set earlier on and proved good enough to keep him at the top for the remainder of the session, albeit by increasingly small margins.
The Briton was in mighty form throughout. He got down to a 1m 22s early on, at a time when others were exercising caution - and were all more than six seconds slower - on a track that was still drying following earlier downpours.
That confidence continued and when Nico Rosberg edged briefly ahead by 0.002s mid-way through, Hamilton's response was to go half a second faster; later he went a second quicker.
Mercedes' main rival this afternoon will likely be Vettel, who was second on 1m 19.134s before the rash of late improvements.
Ricciardo took his Red Bull to third with 1m 19.086s, while behind Vettel the order changed several times before Sainz eventually claimed fifth in the second Toro Rosso on 1m 19.245s, ahead of Maldonado on 1m 19.454s and Kvyat on 1m 19.520s.
Raikkonen, eighth on 1m 19.679s, had chased Hamilton and Vettel before Ferrari's programme called for other things rather than fast laps when others were making them, and the same held true for Rosberg, ninth on 1m 19.762s.
Massa managed a 1m 19.766s that proved just enough to secure 10th ahead of the McLarens of Fernando Alonso and Jenson Button. The Spaniard looked very hooked up as his 1m 19.791s at one stage left him fifth behind the Mercedes and the Ferraris, while Button was held in the garage with technical problems, believed to be ERS-related, and only got going properly in the final 40 minutes. His 1m 20.202s was thus a good effort.
Behind them, Romain Grosjean was 13th for Lotus with 1m 20.274s ahead of the Force Indias of Sergio Perez and Nico Hulkenberg on 1m 20.619s and 1m 20.784s respectively.
Sauber had a tough time, with Felipe Nasr 16th on 1m 20.857s, but not as tough as Valtteri Bottas who was unhappy with his Williams' brake temperatures on his way to 1m 20.917s. Marcus Ericsson was next on 1m 21.219s in the other Sauber, as Will Stevens finally moved ahead of Marussia team mate Roberto Merhi's on the very last lap, with 1m 23.234s to 1m 23.404s.
There were plenty of minor incidents as drivers explored the limits of grip. Rosberg brushed the wall at Tabac early on, without doing any damage to his Mercedes, while Nasr, Bottas (twice), Ricciardo, Alonso, Stevens and Verstappen all visited the escape road at Ste Devote. Bottas, Kvyat and Vettel were among those who also cut at least one of the chicanes, with Vettel also having to catch a slide and only just managing to keep his Ferrari out of the wall in Casino Square.