Hamilton had dominated the session, snatching back the initiative from team mate Nico Rosberg with a lap of 1m 15.610s to the German's 1m 16.120s, and as the Monaco winner also failed to improve on the red-banded tyres, the Brazilian jumped him for second place with 1m 16.086s.
Williams' speed came as a surprise to Ferrari, who had to be content with Fernando Alonso in fourth on 1m 16.488s after a subsequent effort to go quicker resulted instead in a trip over the grass at Turn 3 for the Spaniard. Daniel Ricciardo gave Red Bull a glimmer of hope with 1m 16.504s for fifth, but Sebastian Vettel struggled to 10th on 1m 16.884s.
In between them, Kimi Raikkonen was sixth on 1m 16.528s ahead of Valtteri Bottas on 1m 16.684s and the Toro Rossos of the impressive Daniil Kvyat on 1m 16.820s and Jean-Eric Vergne on 1m 16.824s.
This was altogether a much more frenetic session once people really started going for it, with a lot more incidents than FP1 or FP2.
Esteban Gutierrez kicked things off by backing his Sauber into the wall at Turn 4, after posting 1m 22.388s early on. Later Kevin Magnussen was lucky to get away without hitting anything after losing his McLaren heading into Turn 1 and spinning on to the grass. Then Lotus's Romain Grosjean, Caterham's Marcus Ericsson and Force India's Sergio Perez all had spins at Turn 8 with around 20 minutes remaining. All three got away with it.
In the end, Nico Hulkenberg was 11th for Force India with 1m 16.944s, as Magnussen maxed out his MP4-29 on 1m 16.993s as yesterday's promise evaporated.
Grosjean wound up 13th on 1m 17.121s ahead of Perez's 1m 17.188s, as Pastor Maldonado took the other E22 round in 1m 17.224s to head a disappointed Jenson Button on 1m 17.360s. That left the second McLaren just clear of Adrian Sutil's surviving Sauber on 1m 17.900s.
Jules Bianchi and Max Chilton demonstrated how big a step Marussia have taken since the Barcelona test, with closely matched times of 1m 18.518s and 1m 18.525s, as Ericsson recovered to lap his Caterham in 1m 19.865s. Kamui Kobayashi worked down to 1m 20.227s in the second green car but later was told to stop at Turn 10 as a technical issue arose. Gutierrez was 22nd.