The Alex had already gone close through Brad Inman when they took the lead after 13 minutes, midfielder Turton hitting a low 20-yard drive which wrong-footed Oldham goalkeeper Mark Oxley.
Max Clayton's deflected effort was tipped away by Oxley before Oldham's MacDonald met Sidney Schmeltz's cross and slammed his shot against the post from eight yards.
The Latics again threatened an equaliser after 35 minutes as Adam Rooney was denied by the legs of visiting keeper Steve Phillips.
They levelled nine minutes after the break when MacDonald latched on to James Dayton's lofted pass and hooked in a volley from six yards.
Dayton was denied by Phillips - making the 600th appearance of his career - as Oldham searched for the winner.
But Crewe also had their chances, with Oxley saving from Clayton and Ryan Colclough.