The Shrimps claimed a hard earned three points and moved up to 18th in League Two after falling behind to Pierce Sweeney’s opener for the visitors.
Morecambe boss Jim Bentley had made three changes from the side which drew at Crawley Town last time out.
Back came Alex Kenyon, Garry Thompson and Callum Lang with Kevin Ellison out injured while Andy Fleming and Aaron Wildig dropped to the bench.
A gusty, icy wind and occasional snow flurries meant it was never going to be the most aesthetically pleasing 90 minutes for the fans who braved the freezing temperatures.
The visitors played with the wind in the opening 45 minutes and possessed the major attacking threat in that time in Kyle Edwards.
Time and again in the first half, the West Bromwich Albion loanee posed a problem on the left-hand side, either by getting to the line and crossing or by cutting inside and shooting at goal.
He sent one attempt narrowly over from the edge of the box and cut the ball back for Ryan Harley to shoot off target as the visitors, initially, had the clearer sights of goal.
At the other end, Rose had a vociferous penalty appeal waved away after his free-kick was blocked by the wall before the visitors took a 37th minute lead.
Lloyd James’ pass was dummied by Jayden Stockley and full-back Sweeney, all alone a dozen yards out, showed commendable composure to slot the ball past Barry Roche.
Morecambe drew level six minutes later though when Lavelle got free to power home a header from Rose’s corner.
There was still time, however, for arguably the game’s turning point to come seconds after the Shrimps had got on level terms.
Edwards cut inside from the Exeter left, beating a couple of challenges and arrowing a shot towards the top corner, only for Roche to produce an acrobatic fingertip save and push the ball over the bar.
Rather than playing catch-up, especially seconds after scoring, it meant Morecambe still hard parity going into the second 45 minutes and with conditions to their advantage.
They tried to utilise the strong wind, almost shooting on sight when they got within range of the visitors’ goal.
Adam McGurk and Kenyon were twice off target, while Rose’s bouncing effort from 30 yard was held by City keeper Christy Pym.
At the other end, Edwards found the side netting and Stockley fired a free-kick wide before the winner came 12 minutes from the end of normal time.
Aaron McGowan’s cross was collected by Kenyon; he laid the ball back for Rose, who took a touch before beating Pym from 25 yards.
It was almost 3-1 four minutes later when Roche’s wind-assisted goal kick beat everyone, bounced over Pym and then narrowly over the bar.
Though both sides freshened up their attacking options with time running out, the Shrimps played out four minutes of added time to claim a vital victory.
Morecambe: Roche, McGowan, Winnard, Lavelle, Conlan, Kenyon, Rose, Thompson, Lang (Wildig 85), Wylde (Campbell 80), McGurk (Oliver 80). Subs not used: Nizic, Brough, Fleming, Lund.
Exeter City: Pym, Sweeney, Brown, Archibald-Henville (Simpson 83), Moxey, Harley (Jay 83), Boateng, James (Tillson 60), Taylor, Stockley, Edwards. Subs not used: Jones, McAlinden, Wilson, Croll.
Referee: Carl Boyeson.