Mitch Nichols's first half goal and a quickfire brace to Mark Bridge looked to have killed off the visitors, but City roared back into the contest with two utterly brilliant goals in the space of a few minutes from Harry Novillo and Bruno Fornaroli.
Brendon Santalab, on as a substitute, added a fourth late on - it should have really killed the game off, but this game knew no bounds.
Erik Paartalu pinched one back from a late set piece and so it ended with City on the wrong end of the odd goal in seven.
John van't Schip's side were hampered by the absence of Aaron Hughes, which meant Osama Malik made his debut after his move from Adelaide United.
They were dealt a further blow when captain Patrick Kisnorbo succumed to a calf injury after only four minutes and had to be replaced by Jack Clisby.
It meant Malik had to marshal a new-look back three, with Jacob Melling, usually a midfielder, and Clisby, nominally a left back, on either side.
Their inexperience as a unit began to show and Wanderers, at times, looked like breaking through at will.
Dario Vidosic's shot was saved by Thomas Sorensen, before Nichols opened the scoring with a beautiful finish past the Danish goalkeeper.
It was one-way traffic and on the hour mark, Bridge lashed home a wonderful finish after fluid lead up play set up Nichols to cut back from the right edge of the area.
Vidosic released Nichols shortly after - he lobbed Sorensen, who had raced off his line, and Bridge beat Malik to the ball to bundle it home.
At 3-0, it should have been over.
But Novillo skipped around Nikolai Topor-Stanley and finished from a tight angle to maintain City's interest in the fixture.
Less than two minutes later, Fornaroli bent an absolute peach into the top corner from the edge of the box, his 14th goal of the season, to really ramp up City's hopes of a remarkable comeback.
Anthony Caceres harshly saw red, Santalab tapped in Romeo Castelen's pass and Paartalu found the back of the net in a manic closing.
Western Sydney Wanderers 4 (Nichols 32', Bridge 60', 66', Santalab 89')
Melbourne City 3 (Novillo 76', Fornaroli 78', Paartalu 90+3')
Pirtek Stadium, Parramatta
Referee: Shaun Evans