Simon Grayson's team opened the scoring on nine minutes when Antony Kay turned the ball into his own net from Chris Humphrey's low cross.
Kevin Davies tried to double the advantage soon after, however the 36-year-old's powerful strike was parried by goalkeeper David Martin.
The former Bolton striker tried his luck once more but nodded Humphrey's cross inches wide of the left-hand post.
Instead Dons' Jason Banton levelled the score in the 31st minute with a stunning long-range strike that flew past Declan Rudd and into the top corner.
But Preston quickly regained their lead with Joe Garner pouncing on a short backpass from Jon Otsemobor and sliding the ball past Martin.
The hosts began the second half in similar high-tempo fashion and Garner flicked the ball on to Davies, who struck his shot wide.
But Karl Robinson's side responded with another equaliser with 27 minutes remaining after Humphrey conceded a penalty and Williams slotted the ball into the bottom corner.