The session was only 19 minutes old when Kevin Magnussen suffered a mechanical problem at Turn 3. He did well to keep out of the barriers, correcting several slides all the way to Turn 5 before hauling his McLaren to a halt and bringing out the red flag.
At that stage Hamilton was fastest on 1m 40.725s from team mate Nico Rosberg on 1m 40.831s and Toro Rosso's home favourite Daniil Kvyat on 1m 40.960s, all set on the hard tyre.
The session resumed after six minutes , and soon Williams' Valtteri Bottas had a spell at the top with 1m 40.655s, before Rosberg trimmed that back to 1m 40.178s.
That was the sign of how competitive Williams would be, and the Finn ran the Mercedes duo close when they switched to the soft tyres.
Hamilton maintained his advantage, lapping in 1m 38.726 before he span at the exit of Turn 17 with seven minutes to go, prompting him to head straight across the road into the pits once he'd recovered.
In the meantime Bottas had worked down to 1m 39.097s to beat Rosberg's 1m 39.792s, but subsequently the German eventually got within 0.290s of his team-mate with 1m 39.016s. But with Bottas only 0.371 away, Mercedes may have a battle on their hands for pole position in qualifying.
Daniel Ricciardo surprised with fourth place for Red Bull, but there was a big gap as he posted 1m 39.755s. That left him narrowly ahead of Felipe Massa on 1m 39.954s in the second Williams.
Kvyat was a popular sixth for Toro Rosso on 1m 40.009s, with Kimi Raikkonen right on his tail as Ferrari's better runner on 1m 40.011s. The other red car of Fernando Alonso was eighth on 1m 40.151s, ahead of Jean-Eric Vergne in the second Toro Rosso on 1m 40.205, Sebastian Vettel in the second Red Bull on 1m 40.338s, Jenson Button on 1m 40.355s in the lead McLaren, and the Force Indias of Nico Hulkenberg and Sergio Perez on 1m 40.669s and 1m 40.699s.
Adrian Sutil edged out Esteban Gutierrez at Sauber, 1m 41.146s to 1m 41.520s, as a late improvement to 1m 41.915s moved Lotus's Romain Grosjean ahead of Magnussen. The Dane's early time of 1m 42.436s left him 17th.
Marcus Ericsson was the faster Caterham driver with 1m 43.109s to team mate Kamui Kobayashi's 1m 43.975s, but Max Chilton had been ahead of them in the sole Marussia on 1m 44.737s before a problem with his MR03's driveshaft prevented him from improving his time.
The only driver not to set a lap time in the session was Pastor Maldonado after Lotus discovered a suspected ERS problem on his E22.