Colchester recorded their first win in seven games against MK Dons, dating back to January 2010.
Patrick Bamford missed an early Dons chance, before Craig Eastmond put the U's ahead with an effort off the post.
Jabo Ibehre made it 2-0, latching onto a mistake by Jordan Spence before rounding keeper Ian McLoughlin.
Spence gave the Dons hope with a second-half header, only for substitute Macauley Bonne to make it three for Colchester with a fine strike.
VIEW FROM THE DRESSING ROOM
Colchester United manager Joe Dunne told BBC Essex:
"It was a tremendous effort by all the players. They work hard every day, I want them to enjoy it.
"It's a very pleasing result, very workmanlike, great effort, great commitment, we should have scored more goals.
"I think we created numerous chances, we needed to take that because they are a big threat.
"The pleasing thing was we haven't been creating many lately, and it looked like we were going to keep on creating."
MK Dons' boss Karl Robinson told BBC Three Counties Radio:
"I'm disgusted, I'm absolutely embarrassed. There isn't one positive to come out of that.
"I apologise to the fans who came, they deserve better than that.
"Colchester have battered us here tonight, I'm lucky I'm not stood here with it being six [goals]. That should have been six.
"I do not want to speak to them [the players] tonight!"
Colchester United 44 Walker 20 Wilson 27 Garbutt 06 Eastmond (Bond - 78' ) 04 Okuonghae 18 Eastman 22 Gilbey Booked 02 Wright 17 Ibehre (Szmodics - 92' ) 25 Vose (Bonne - 68' ) 03 Dickson Substitutes 01 Cousins 09 Morrison 14 Bond 23 Olufemi 35 O'Donoghue 40 Szmodics 41 Bonne Milton Keynes Dons 16 McLoughlin 05 Hodson 03 Lewington 08 Potter 23 Spence 06 Williams 18 Baldock (Banton - 53' ) 07 Gleeson 12 Reeves (McLeod - 69' ) 15 Bamford 14 Alli (Powell - 46' ) Substitutes 04 Flanagan 11 Smith 13 McLeod 17 Powell 21 Banton 22 Carruthers 50 Burns
Ref: Tim Robinson