Ryan Bowman's late strike clinched Exeter a 3-2 win at Macclesfield and lifted them level on points with Sky Bet League Two leaders Swindon.

Bowman's 86th-minute winner sealed Exeter's third straight league victory after they had let slip a two-goal lead.

Swindon's home game against Scunthorpe fell victim to Storm Dennis and Exeter were quick to take advantage as early goals from Nicky Ajose and Pierce Sweeney put them in control.

Connor Kirby pulled one back for Macclesfield before the interval and Fiacre Kelleher equalised before Bowman fired home from six yards.

Crewe slipped to third place following a 2-1 defeat at promotion rivals Plymouth.

Harry Pickering fired Crewe ahead early in the second half, but Plymouth hit back through Luke Jephcott and Antoni Sarcevic's penalty before Pickering's stoppage-time shot hit a post.

Port Vale climbed up to sixth thanks to Tom Conlon's first-half opener and Mark Cullen's second-half brace in a 3-0 home win against Colchester.

Former City striker James Hanson and Josh Benson were both on target for Grimsby in a 2-1 home win against Morecambe, for whom Adam Phillips scored a late consolation, and Danny Rose's 11th goal of the season secured Mansfield a 1-0 home win against the Bantams' next opponents Newport.

Rory Holden scored a stoppage-time winner for Walsall, who came back from 2-0 down to beat Northampton 3-2.

Callum Morton notched a first-half double for Northampton before Josh Gordon's header and Danny Guthrie's free-kick hauled Walsall level and Holden snatched victory in the third minute of added time.

Reuben Reid's 88th-minute header clinched play-off hopefuls Cheltenham a 2-1 home win against Leyton Orient after Conor Wilkinson's first-half opener for the visitors had been cancelled out a minute later by Alfie May.

George Williams' late equaliser secured Forest Green a 1-1 draw at Oldham, who went ahead through Gevaro Nepomuceno's second-half effort

Brandon Thomas-Asante's first-half header sealed Salford a 1-0 win at Stevenage and Crawley were held 0-0 at home by Carlisle.