The Sky Bet League One leaders were stunned by two strikes from Harry Pickering and Charlie Kirk, and weren't able to bring themselves back into the game in the second half.
A contentious free kick born from a tackle from Louis Reed just before the half-hour mark led to the first goal. From then, Posh found it difficult to get out of their own half, with accurate passing and determined pressing from Crewe.
Peterborough's plight deepened when a risky cross-field pass from Niall Mason was intercepted by Kirk, who raced clear and thrashed the ball into the corner beyond Pym for Crewe’s second four minutes before the break.
Darren Ferguson’s side improved in the second half but posed a limited threat. Their best chance fell to substitute Mo Eisa after Crewe keeper Will Jaaskelainen pushed out Reece Brown’s long-range effort. But Eisa failed to make the most of the loose ball and his miss-hit follow-up was blocked by the keeper.
Speaking after the game, Ferguson said: "Crewe thoroughly deserved their win. Throughout the game in every department, running, tackles and second balls they were way ahead of us,” said Ferguson, who was recently named manager of the month for October.
"We didn’t keep the ball well enough and we gave it back to a team who are good in possession. There wasn’t enough quality. We were way off it and I need to find out why we gave a performance like that as we have done so well.
"We can’t have days off as we’ve got to get as many points as quickly as possible as we don’t know what is going to happen. We’ve had a great run but we can’t have performances like that."
A win for Hull means that the gap at the top is now just a point, with Posh on 25 points and Hull City on 24.