Goals from Chris McCready and Neil Cox were enough to secure a place in the second round of the FA Cup for Crewe.
McCready gave Alex the perfect start, heading Billy Jones' free-kick beyond Nathan Abbey but there were few other clear chances in a drab opening half.
The home side went 2-0 up when Cox arrived to finished with a stinging volley following a corner from Jones.
Jemal Johnson netted from the penalty spot after Julien Baudet tugged Drewe Broughton but the home side held on.
Crewe: Williams, Woodards (Bennett 55), Baudet, McCready, Jones, Roberts, Cox, Rix, Moore, Lowe (Schumacher 90), Church.
Subs Not Used: fon Williams, Miller, Matthew Bailey.
Goals: McCready 3, Cox 65.
Milton Keynes Dons: Abbey, Edds, O'Hanlon, Swailes, Lewington, Johnson (Baldock 81), Navarro, Wright, Smart (Cameron 70), Broughton (Wilbraham 69), Gallen.
Subs Not Used: Walker, Murphy.
Booked: Edds, Lewington.
Goals: Johnson 69 pen.
Ref: Keith Hill (Hertfordshire).