Richie Bennett’s double inspired Morecambe to their fourth victory in six matches as they pulled further clear of the League Two relegation places.
The Carlisle United loanee netted in each half as the Shrimps made it seven goals and six points in their last two home games.
Ousseynou Cisse’s own goal also contributed to a three-goal lead for Jim Bentley’s players before Dons substitute Kieran Agard scored twice in seven minutes.
However, Aaron Collins wrapped up another three points for Morecambe when he broke the offside trap to slot home the decisive goal late on.
Bentley had named an unchanged side from that which saw off another promotion hopeful in Forest Green Rovers at the weekend.
Those who featured, however, had their mettle tested by Storm Gareth with winds approaching 50mph reducing parts of the game to a lottery.
However, with the conditions in their favour in the first half, the Shrimps started busily with skipper Alex Kenyon twice chancing his arm in the opening 10 minutes.
Bennett saw one effort blocked and the follow-up held by Dons keeper Stuart Moore before the deadlock was broken on 21 minutes.
Excellent work on the left from Rhys Oates ended with him crossing for Bennett to powerfully head home.
Twenty minutes and the lead was doubled in somewhat fortuitous fashion as Cisse inadvertently diverted Zak Mills’ cross over Moore.
At the other end, Jake Hesketh and Alex Gilbey came closest for the visitors, who fell further behind 12 minutes into the second half.
There was nothing lucky about Bennett’s second of the night as he sent a stunning 20-yarder past Moore.
With the Dons struggling to create much in the way of clear opportunities, they brought Agard off the bench and changed formation.
They pulled one back on 70 minutes when Agard flicked Gilbey’s cross beyond Morecambe keeper Mark Halstead.
Bennett volleyed over from Piero Mingoia’s cross before Agard set up a tense finish, capitalising on Halstead’s error to score his second with 14 minutes left.
The woodwork denied Bennett his hat-trick when he headed against the frame of the goal but Morecambe eventually secured the points in the 86th minute.
Bennett collected Kevin Ellison’s pass before his through ball released Collins to round Moore and slot home.
Morecambe: Halstead, Mills, Old, Sutton, Conlan, Mingoia, Kenyon, Wildig (Fleming 72), Oates (Ellison 62), Collins, Bennett. Subs not used: Roche, Mandeville, Mendes Gomes, Brownsword, McKay.
MK Dons: Moore, Brittain, Houghton, Martin, Lewington, Cisse (Walker 55), McGrandles, Gilbey, Hesketh (Agard 59), Aneke, Wheeler (Simpson 68). Subs not used: Nicholls, Watson, D’Ath, Harley.
Referee: Ross Joyce.