Hamilton, who last won at Silverstone in his 2008 championship year, now has 161 points to Rosberg's 165 with 10 races remaining and his title hopes fully restored. It was his fifth win of the year. Finland's Valtteri Bottas finished second for Williams, 30.1 seconds behind Hamilton, for his second successive podium with Australian Daniel Ricciardo third for Red Bull and a further 16.3 seconds down the road.
The race was red-flagged almost as soon as it started after Ferrari's 2007 champion Kimi Raikkonen had a big crash that left the Finn limping to the medical centre with a sore ankle but otherwise unscathed. It was the first time a race had been halted on the opening lap since Monaco 2000.
When it re-started behind the safety car after an hour's delay to fix damaged barriers, Hamilton went from overnight devastation to delight as Rosberg finally suffered some of the misfortune that had plagued his team mate. The championship and race leader reported a gearbox problem after 20 of the 52 laps, and just after Hamilton's race engineer had informed the second placed Briton it was "Hammer time' - time to for a full-on charge.
Nine laps later, Rosberg slowed, pulled over and parked up on the grass as Hamilton sped past. "It was just slowly but surely," said Rosberg. "It started on lap 20 and then it just got worse from there. There was nothing I could do or that they could suggest to save the gearbox. "I was very much in control until then," added the German. That's why it's all the more disappointing."
Hamilton's joy as he took the chequered flag was a complete contrast to the despair he felt on Saturday evening after gifting pole to Rosberg. "England!," he shouted as he took the chequered flag to give his compatriots something to celebrate after a sporting summer of disappointment. "I couldn't be happier. I'm sorry about yesterday, but a fantastic job today, as ever."
Rosberg had secured the top slot on the grid after Hamilton aborted his final lap in the mistaken belief that track conditions would not allow anyone to beat his time. "He was devastated," his father Anthony told Sky Sports television before the race. "Last night was tough for him."
Britain's Jenson Button, the most experienced driver in the race who has never finished on his home podium, chased Ricciardo home to take fourth for McLaren on an emotional afternoon for the 2009 champion.
The race was the first at Silverstone for Button, who started third on the grid, since the death of his father John in January.
Red Bull's quadruple champion Sebastian Vettel finished fifth after a lively battle with Ferrari's Fernando Alonso, who took sixth after originally starting 16th and then being hit with a stop/go penalty for overshooting his mark on the grid.
— Derek Abraham (@DAbrahamm) July 6, 2014
1. Lewis Hamilton (Britain) Mercedes 2:26:52.094
2. Valtteri Bottas (Finland) Williams-Mercedes +00:30.135
3. Daniel Ricciardo (Australia) RedBull - Renault 00:46.495
4. Jenson Button (Britain) McLaren 00:47.390
5. Sebastian Vettel (Germany) RedBull - Renault 00:53.864
6. Fernando Alonso (Spain) Ferrari 00:59.946
7. Kevin Magnussen (Denmark) McLaren 01:02.563
8. Nico Huelkenberg (Germany) Force India - Mercedes 01:28.692
9. Daniil Kvyat (Russia) Toro Rosso - Renault 01:29.340
10. Jean-Eric Vergne (France) Toro Rosso - Renault 1 lap
11. Sergio Perez (Mexico) Force India - Mercedes 1 lap
12. Romain Grosjean (France) Lotus - Renault 1 lap
13. Adrian Sutil (Germany) Sauber - Ferrari 1 lap
14. Jules Bianchi (France) Marussia - Ferrari 1 lap
15. Kamui Kobayashi (Japan) Caterham - Renault 2 laps
16. Max Chilton (Britain) Marussia - Ferrari 2 laps
17r. Pastor Maldonado (Venezuela) Lotus - Renault 3 laps
r. Nico Rosberg (Germany) Mercedes 23 laps
r. Marcus Ericsson (Sweden) Caterham - Renault 41 laps
r. Esteban Gutierrez (Mexico) Sauber - Ferrari 43 laps
r. Felipe Massa (Brazil) Williams-Mercedes 51 laps
r. Kimi Raikkonen (Finland) Ferrari 52 laps
(rank: r = retired, nc = not classified)
Fastest Lap: Lewis Hamilton,1:37.176, lap 26.