Rosberg crossed the line second but was later given a 10-second time penalty for breaking team radio rules, relegating him to third behind Max Verstappen of Red Bull.
The German, who had a race-long battle with Verstappen, suffered a gearbox malfunction late in the 52-lap race at Silverstone.
As Dutch teenager Verstappen closed, Rosberg sought advice over his team radio how to fix the problem, eventually holding on to second place after being told to avoid seventh gear.
Stewards ruled that the advice he received broke regulations introduced to limit the amount of information teams are able to supply to drivers in those circumstances.
Mercedes said it would launch an appeal against the penalty.
Hamilton, who was claiming his 47th career win, has drawn level with British legend Nigel Mansell with four victories in his home grand prix.
The polesitter dominated from start to finish, with the initial laps behind a safety car as heavy rain hit the famous circuit.
"Firstly I am glad that the good English weather came out. All of a sudden it rained and it was so tricky in those conditions. Trying not to make a mistake was difficult for all of us, but that is what I love about this race. It is never plain sailing," he said at the prize presentation.
When racing got underway for real, the precocious Verstappen completed an audacious passing move on Rosberg, but lost his advantage during a subsequent round of pit stops as drivers changed to slicker tires.
"I think I stopped one lap too late. Unfortunately Nico got past but I still had good pace," he said before learning he had been promoted to second place.
Behind the leaders, Australian Daniel Ricciardo took fourth for Red Bull, while Kimi Raikkonen -- who on Thursday signed a new contract with Ferrari for 2017 -- was fifth after a battle with Force India's Sergio Perez.
Raikkonen's teammate, four-time champion Sebastian Vettel, had a miserable day, back in 10th after being given a five-second penalty for an illegal overtaking move on the Williams of Felipe Massa.