With the entire field using Pirelli's orange-marked hard compound tyre throughout, Hamilton headed early proceedings, was deposed briefly by Button, but then settled matters with a best lap of 1m 26.187s.
Button was happy with the 1m 26.810s that earned him second, 0.623s adrift of Hamilton but ahead of the Briton's Mercedes team mate Nico Rosberg. The German had trailed Hamilton by just 0.007s after the opening exchanges, so expect their duel here this weekend to be as close as ever.
Fernando Alonso showed Ferrari's now customary Friday form with 1m 27.169s for fourth, fractions ahead of Kevin Magnussen on 1m 27.228s in the second McLaren and Red Bull's Sebastian Vettel, who raised spirits with 1m 27.271s for sixth. Spa-Francorchamps racewinner Daniel Ricciardo was stranded down in 16th, having posted a best lap of 1m 28.487s, after suffering power loss in his Renault V6 after the first hour.
While it was a relatively straightforward session in which most of the top teams moved onto race work before the end of the 90 minutes, there were also several notable driver changes.
Daniel Juncadella replaced Sergio Perez at Force India for the first 30 minutes before the Mexican took over; Giedo van der Garde ran Adrian Sutil's Sauber; Charles Pic had his first 2014 run in Romain Grosjean's Lotus; and Roberto Mehri ran for Caterham in the CT05 that Kamui Kobayashi will take back on Friday afternoon.
Of that group it was Perez who ended up quickest, slotting into eighth on 1m 27.687s - less than two tenths down on Kimi Raikkonen, who lapped his Ferrari in 1m 27.493s.
Daniil Kvyat posted a 1m 27.741s to secure ninth for Toro Rosso, while Nico Hulkenberg was the final top ten runner for Force India with 1m 28.112s, two-thousandths of a second up on Esteban Gutierrez's Sauber.
Williams were among the fastest in a straight line, clocking speeds in excess of 346 km/h, but the team may rethink their settings after Valtteri Bottas was only 12th on 1m 28.148s from team mate Felipe Massa on 1m 28.150s. Jean-Eric Vergne was 14th in the second Toro Rosso on 1m 28.300s as Van der Garde's 1m 28.429 left him 15th ahead of Ricciardo.
Juncadella once again acquitted himself well with 1m 29.192s in his brief stint, as Pastor Maldonado's 1m 29.512s in the unruly Lotus E22 left him 18th ahead of on-form Max Chilton.
The Englishman wheeled his Marussia round in 1m 30.017s, hounded by team mate Jules Bianchi on 1m 30.081s. Pic posted a 1m 30.125s in the second Lotus, while Mehri impressed by lapping in 1m 30.704s - which should also help his superlicence claim - edging out Caterham regular Marcus Ericsson, who finished 23rd on 1m 30.948s.