Hamilton recorded 1m 49.189s on Pirelli's soft compound tyre, leaving Rosberg well adrift on 1m 49.793s and the valiant Fernando Alonso on 1m 49.930s for Ferrari. Nobody else got close.
Williams had a better run, however, with Felipe Massa fourth on 1m 50.327s and Valtteri Bottas sixth on 1m 50.677s, as they sandwiched Jenson Button's McLaren on 1m 50.659s.
A surprise seventh was Russian rookie Daniil Kvyat who took his Toro Rosso around in 1m 50.725s to head Red Bull stablemate Daniel Ricciardo - the Australian eighth on 1m 50.977s.
Sebastian Vettel's bad day did not improve meanwhile as he was forced to sit out FP2; his RB10 still in pieces having its engine replaced after an electrical problem had caused damage in FP1.
Kevin Magnussen was still getting to grips with his McLaren and took ninth on 1m 51.074s, with Nico Hulkenberg's Force India right on his tail with 1m 51.077s. Jean-Eric Vergne was next in the second Toro Rosso on 1m 51.383s ahead of Adrian Sutil's Sauber on 1m 51.450s and Sergio Perez's Force India on 1m 51.573s.
Romain Grosjean was 14th for Lotus on 1m 52.196s and headed his former team mate - and four-time Belgian winner - Kimi Raikkonen, who complained bitterly about his Ferrari's rear end after finishing down in 15th on 1m 52.234s.
Jules Bianchi, meanwhile, did another great job for Marussia to take 16th on 1m 52.776s.
Two red flags interrupted the proceedings. Lotus's Pastor Maldonado brought out the first after seven minutes when he ran onto the grass coming out of Turn 9 and pinballed into the wall approaching Pouhon.
Twenty three minutes later an apparent mechanical issue pitched Esteban Gutierrez's Sauber into a spin as he negotiated Blanchimont. The Mexican, who took no further part in the session, ended up 17th on 1m 53.955s, while neither Maldonado nor Vettel recorded timed laps.
At the rear of the field, the battle between the returning Max Chilton at Marussia and the revised Caterhams of Marcus Ericsson and 32-year-old rookie Andre Lotterer was intense, with the trio separated by just 0.053s. The Englishman lapped in 1m 54.040s, the Swede in 1m 54.050s, and the German in 1m 54.093s.