The seven-time champion, who will turn 40 in January, cracked with emotion and was in tears as he spoke on Mercedes team radio on his victory lap, having finished 1.465 seconds ahead of Red Bull's series leader and three-time champion.
In a roller-coaster race of changing weather and track conditions, Lando Norris came home third ahead of his McLaren team-mate Oscar Piastri, Carlos Sainz of Ferrari and Haas' Nico Hulkenberg with Lance Stroll finishing seventh for Aston Martin.
Hamilton, who had not won since the 2021 Saudi Arabia Grand Prix, delivered a masterclass in tyre and race management to secure his 150th podium finish for Mercedes.
Hamilton is leaving Mercedes for Ferrari after this season.