Stuart Green then punished them for that mistake by putting City ahead. He played a one-two with Phil Jevons to cut open the Macclesfield defence, and the hand goalkeeper Steve Wilson got on the ball wasn't enough to keep out the shot.
Macclesfield pressed forward and Welsh's long-range shot went just wide, before Matthew Tipton hit the woodwork.
Shaun Smith then had City's last chance of the half, when Wilson clawed away his 25-yard free kick.
After half time Macclesfield hit City with two early goals to go ahead. Michael Welch popped up with a goal out of nothing just two minutes after the restart. He hit a fierce, swerving shot from around 40 yards out which left Matt Glennon with no chance.
They were then gifted the second when a mix-up between Justin Whittle and Glennon left Kyle Lightbourne with an open goal to make it 2-1.
The visitors continued to dominate the proceedings and should have added to their lead earlier than they did.
Gary Alexander missed a clearcut chance to get City back in the game when he shot over from six yards out from substitute Lawrie Dudfield's left-wing cross.
The third goal eventually came in the closing stages when sub John Askey finished off a move down the left flank.
City line-up (4-4-2): Glennon; Regan, Whittle, Anderson, Smith; Green, Ashbee, Keates, Williams (Dudfield 58); Alexander, Jevons (Johnson 58).
Un-used subs: Musselwhite, Edwards, Bradshaw.