Narrow leaders for most of the day, the Hawks stood up when it mattered most to secure a 13.13 (91) to 7.14 (56) triumph in front of 50,351 fans at the MCG on Saturday.
It was a victory more than seven years in the making, Hawthorn ending a run of nine matches against the Demons without a win.
Melbourne dominated contested possession and clearances, won the inside-50 count and had more scoring shots than their opponents through the opening three quarters.
But they repeatedly shot themselves in the foot with poor goal-kicking, and the Hawks made them pay in the final term.
Gunston finished with three goals, Chol and Nick Watson kicked two each, and James Worpel (28 disposals, 10 tackles, six clearances) was outstanding in the middle.
Hawks ruckman Lloyd Meek kicked the opening goal and his side held a slender lead for most of a dour first half.
Melbourne livewire Kysaiah Pickett (17 touches, nine tackles, two goals) was controversially denied a free kick when umpires failed to penalise Blake Hardwick for a blatant trip in the goal square.
Pickett kicked the next goal when a free kick was paid against Hardwick for a high tackle, and Christian Petracca (26 disposals) lifted in the middle in the second quarter.
After getting close moments before, Kosy gets his goal!#AFLDeesHawks pic.twitter.com/7k4JN0an27— AFL (@AFL) May 10, 2025
But the wasteful Dees managed just 2.7 to 2.2 for the term, despite controlling contested possession and territory.
They trailed by one point at the main break and the same margin at the final change, having briefly pinched the lead in the third quarter.
Hawthorn kicked the first three majors of the final term to take control, but Pickett breathed life into the contest with a superb running goal.
He burnt off one opponent in the centre square and took two bounces before kicking truly.
Gunston's third goal of the final quarter sealed the Hawks' victory.
First-year star Harvey Langford shone for Melbourne with three goals from 22 disposals.