Walsall suffered their first home league defeat of 2020 as Morecambe struck twice in the second half to claim all three points.
Wes McDonald had a first half penalty saved before Steve Old headed the visitors into the lead midway through the second half.
Dan Scarr came agonisingly close to a late equaliser after striking the post but Carlos Mendes-Gomes secured the victory seconds later.
Darrell Clarke made three changes to the team that lost to Carlisle United at the weekend.
Cameron Norman, Danny Guthrie and Caolan Lavery came into the side in place of James Clarke, Liam Kinsella and Rory Holden.
The Saddlers made a bright start and had a good chance to take the lead after eight minutes when Guthrie’s low corner was met by Mat Sadler but his hooked effort crept just wide.
The Saddlers were handed a glorious opportunity to take the lead on 23 minutes when they were awarded a penalty after Wes McDonald was tripped.
The winger stepped up but his low penalty was saved by Christopher Mafoumbi.
Morecambe grew into the game after the penalty miss and had a couple of efforts on goal through Adam Phillips and Ryan Cooney.
Clarke made a change at half time, replacing Gordon with Jack Nolan.
Walsall enjoyed the majority of the possession at the start of the second half but failed to create anything clear cut.
They suffered a setback on 68 minutes when the visitors took the lead when Old’s header from a corner bounced in off the post.
Walsall responded to the goal well with Lavery having a hat-trick of chances but he couldn’t find the target.
They almost equalised in injury time as Nolan’s low cross was converted onto the post and into the Christopher Mafoumbi’s arms.
The Shrimps went down the other end and secured the three points when Mendes-Gomes found the bottom corner with the last kick of the game.
Roberts; Norman, Scarr, Sadler, Pring; Gordon (Nolan 45’), Sheron, Guthrie (Sinclair 55’), McDonald; Lavery, Adebayo (Holden 55’).
Sub: Rose (GK), Kinsella, K. Roberts, Facey.