Championship leader Hamilton set his fastest time of 1 minute 38.773 seconds early during the final evening practice session in his Mercedes, beating Verstappen’s best effort for Red Bull Racing by 0.184 seconds.
Ferrari’s Sebastian Vettel ended the evening a distant third, more than 0.8 seconds off the pace, supporting pre-weekend expectations that the Italian team’s lack of downforce would count it out of the qualifying fight.
But whereas the fight for pole between Hamilton and Verstappen is poised to go down to the wire, Mercedes demonstrated foreboding long-run pace during their race simulations, suggesting Sunday’s results could swing the way of the German marque even if it failed to start from the front of the grid.
Hamilton’s long-run pace on the soft-compound tyre was particularly impressive, almost more than a second quicker than Verstappen on the same tyre and appearing able to set several more laps without a significant decline in performance.
Ferrari was a little further behind Red Bull Racing, albeit based on times set by Charles Leclerc, who was sixth-quickest at the end of the session.
Red Bull Racing has the final one-hour practice session to rectify its pace deficit on Saturday afternoon ahead of qualifying in the evening.
Valtteri Bottas was fourth quickest on a difficult day for the Finn. His best time was more than 1.1 seconds slower than teammate Hamilton’s, though even this was an improvement on his performance in the day’s first session, when he crashed in a clumsy moment of opposite lock at turn 19.
Thai driver Alex Albon was fifth for Red Bull Racing in his first visit to the Marina Bay Street Circuit. The 23-year-old’s inexperience on the difficult Singapore road course showed in a slow-speed crash at turn 10 that cost him his front wing, though he was able to continue back to the pits to continue his practice programme.
Charles Leclerc followed, 1.2 seconds off Hamilton’s time with a new gearbox fitted after a failure late during first practice.
Carlos Sainz made McLaren best of the midfield in seventh, and with ninth-placed Lando Norris he sandwiched Renault’s Nico Hulkenberg in eighth.
Pierre Gasly and Daniil Kvyat followed in 10th and 11th for Toro Rosso, with Daniel Ricciardo 12th in the second Renault.
Sergio Perez finished 13th for Racing Point, but the Mexican ended the day acrimoniously with a hearing before the race stewards for an incident with Haas driver Kevin Magnussen, who finished 19th.
Magnussen was following Perez around the track at slow speeds, both in preparation for a hot lap, but apparently became impatient towards the end of the tour and attempted to pass around the outside of the penultimate corner.
But Perez wasn’t willing to give up his position on the circuit and tracked to the right, squeezing the Dane against the barrier and forcing him to hit the brakes.
“What the hell!” Magnussen exclaimed over radio. “I don’t know if I have damage, guys; I must have damage.”
Perez was unapologetic in the immediate aftermath, accusing his rival of trying to ruin his lap, but the stewards deemed him at fault and handed him a reprimand.
It wasn’t the only incident of road rage with both Hamilton and Leclerc complaining at various points throughout the session of slower midfield cars obstructing their laps, though no action came of any other incident.
Antonio Giovinazzi finished 13th ahead of Lance Stroll and teammate Kimi Raikkonen. Romain Grosjean was the best-placed Haas car despite a spin late in the session, which the Frenchman blamed on his engineer for talking to him as he navigated turn three.
George Russell was 18th for Williams, ahead of Kevin Magnussen and teammate Robert Kubica.