Hamilton, who had spun at Stowe in the opening minutes, had looked set to book the top spot after setting a 1m 34.344s on Pirelli's hard-compound tyre - at one stage leaving him one second clear of the field.
Rosberg usurped him in the final minutes, however, slipping in a 1m 34.274s - a fine recovery, and one that left the Silver Arrows with a one-two at the head of the timesheet.
Toro Rosso were the surprise leaders of the chase, with Max Verstappen third fastest ahead of team mate Carlos Sainz in fifth. The Ferrari of Kimi Raikkonen split them in fourth, with Sebastian Vettel sixth in the sister SF15-T.
Verstappen lapped in 1m 35.530s and Sainz in 1m 35.669s, with Raikkonen separating them right at the end with 1m 35.588s. Vettel, meanwhile, was only fractions down the road with 1m 35.739s, enough to keep him ahead of the Red Bulls of Daniel Ricciardo on 1m 35.818s and Daniil Kvyat on 1m 35.876s.
Nico Hulkenberg revelled in the handling of the revised Force India VJM08 on his way to 1m 36.157s, as Felipe Massa led the Williams attack in 10th with 1m 36.469s.
Felipe Nasr, who spun his Sauber prior to recording 1m 36.855s, was 11th ahead of Sergio Perez, who posted a 1m 36.889s in the second Force India.
Susie Wolff, deputising for Valtteri Bottas at Williams, was the fastest of the FP1-only drivers, as a 1m 37.242s earned her 13th. Jolyon Palmer, once again driving in place of Romain Grosjean, was Lotus's quickest runner on 1m 37.262s, more than half a second up on Pastor Maldonado's 1m 38.080s. Maldonado, however, completed just eight laps, the fewest of any driver.
Raffaele Marciello, the third and final FP1-only driver, posted 1m 37.372s in the second Sauber to claim 15th, ahead of Maldonado.
McLaren kept their powder dry and saved mileage on their older Honda power units, which meant that Fernando Alonso and Jenson Button only ran in the final half hour. The Spaniard was immediately called back in to discuss a 'deployment problem,' but got going to record 1m 38.222s for 17th as Button did 1m 38.860s.
Will Stevens was Marussia's faster runner on 1m 38.981s, significantly quicker than team mate Roberto Merhi's best of 1m 40.477s.