MK Dons ended Crewe's five-match unbeaten run with a narrow victory.
The home side controlled the first half, taking the lead through Charlie MacDonald, who slotted in Dean Bowditch's low cross at the near post.
Bowditch went close to making it 2-0 with a 25-yard drive but saw it tipped wide by Crewe keeper Alan Martin.
Crewe improved after the break but AJ Leitch-Smith failed to convert two one-on-one chances.
Teenage Crewe striker Ryan Colclough, making only his second appearance as a substitute, finished the game with a suspected broken jaw, following a collision with Dons midfielder Darren Potter.