They should have been further in front, kicking 3.9 for the quarter.
They were made to pay, when Melbourne kicked two goals in time-on to narrow the gap.
Swans co-captain Adam Goodes had the chance to add some breathing space, but missed a 15m set shot seconds before the three-quarter-time siren, to leave Melbourne in touch.
Goodes finished with 2.3 for the day, after a good battle with Melbourne’s Colin Garland, while small forwards Ben McGlynn and Jude Bolton kicked three goals each for the Swans.
For Melbourne, Lynden Dunn, Liam Jurrah and Green kicked two goals each, but Dunn and Jurrah were both among the culprits with missed shots.
Melbourne’s substitute Ricky Petterd came on at the last change, and had a big impact in attack to help his side erase the deficit.
Midfielder Brent Moloney was an excellent ball-winner for the Demons, well-served at the stoppages by ruckman Mark Jamar, while Aaron Davey used the ball cleverly.
For the Swans, Jarrad McVeigh and Kieren Jack were good in the midfield, while Ted Richards performed well on Jurrah.
MELBOURNE 3.2 5.8 8.12 11.18 (84)
SYDNEY 5.3 7.5 10.14 11.18 (84)
Melbourne: B Green 2 L Dunn 2 L Jurrah 2 B Moloney C Sylvia J Bennell N Jetta N Jones.
Sydney: B McGlynn 3 J Bolton 3 A Goodes 2 A Everitt J White S Reid.
Umpires: Stephen McBurney, Scott Jeffery, Jason Armstrong.
Melbourne: B Moloney M Jamar A Davey B Green J Trengove C Garland.
Sydney: R O’Keefe J McVeigh B McGlynn J Bolton K Jack T Richards.
Official Crowd: 33,951 at Melbourne Cricket Ground.