Chuks Aneke fired Alex ahead but two goals in five second-half minutes from the visitors ended their three-game losing streak.
Chances were at a premium as Luke Murphy drilled over for Crewe while Boro defender Mark Roberts almost turned a Mathias Pogba cross into his own net.
At the other end, Mark Ellis fluffed a headed backpass but goalkeeper Steve Phillips raced from his line to beat Haber to the ball.
Crewe took the lead after 33 minutes when Pogba cut the ball back for Aneke to find the net with a first-time shot.
Akins curled over before Greg Tansey went close with a free-kick as the visitors looked for a leveller.
Boro keeper Steve Arnold kept his side in it with an acrobatic stop to tip over when David Gray's defensive header from Byron Moore's cross almost found its way into the net.
Shortly after the break, Akins turned home a loose ball from six yards out to level and the turnaround was complete after an hour when Haber brushed off Harry Davis and dispatched a low finish under Phillips.
Haber almost extended the lead when he met an Akins cross at the far post while Alex substitute Ryan Colclough headed wide when he had a great chance to earn his side a point at the death.