Hamilton set his table-topping 1:43.285s lap with 25 of the 90 minutes remaining, and beat his countryman and team-mate by 0.333s, with title protagonists Sebastian Vettel and Fernando Alonso third and fourth.
More than 35 minutes had elapsed when most of the drivers took to the track, surface temperatures having exceeded 45 degrees Celsius by that point.
Jean-Eric Vergne set the initial pace, and brought his marker down from 1:48.9s to 1:46.6s before Valtteri Bottas, Michael Schumacher and Alonso took turns at the top, the latter in 1:45.1s with 50 minutes gone.
Championship leader Vettel was the first driver to break into the 1:44s shortly afterwards, but his spell at the top lasted less than a minute as Hamilton took a lead he would not relinquish.
Button improved his time before the end of the session as Hamilton experimented with a number of different fuel settings during the final half-hour.
Vettel ended up third, despite the double world champion running wide at Turn 16 after getting his Red Bull crossed up on the kerb at the corner's entry.
Ferrari driver Alonso, who had dropped to sixth, set his best time in the final minute of the session to climb back up to fourth, ahead of Mark Webber in the second Red Bull and Michael Schumacher's Mercedes.
Pastor Maldonado and Nico Rosberg completed the top eight while Bottas was the best of the test drivers in action in his Williams. He was ninth overall, ahead of Kimi Raikkonen's Lotus.
Sauber driver Sergio Perez had a scary moment at the pit entrance with 12 minutes to go. Attempting to simulate a full-speed, race entry, the Mexican ran wide as he turned right and was forced to drive over the run-off area and back onto the race track to avoid contact with the barrier.
Heikki Kovalainen was the only one of the Caterham drivers to set a time as Giedo van der Garde spent the session in the garage as his team tried to rectify an engine installation issue.
Marussia's Max Chilton did get out though, to undertake a series of aero tests in his maiden F1 practice outing.
His team-mate Timo Glock, 20th, suffered a series of lock-ups and wide moments. He lost a potentially strong laptime with 25 minutes left when he was impeded by Schumacher's Mercedes under braking for the left-hander at the end of the main straight.
He communicated his annoyance with a waved hand, but immediately saw Schumacher pull off the track and gesturing a wave of his own in the Marussia's direction by way of apology.
- Sports & Recreation
- Motor Racing
- Michael Schumacher
- Sebastian Vettel
- Fernando Alonso
- Valtteri Bottas