Substitute Ajay Leitch-Smith scored the only goal as Crewe ended the four-game unbeaten run of Scunthorpe, who remain in the relegation zone.
Leitch-Smith hammered home the rebound after Luke Murphy's penalty, awarded for Tom Newey's push on Byron Moore, came back off the post.
Andy Barcham had hit the woodwork for the visitors early on in a first half in which both sides had chances.
The Iron had the better openings after the break but could not take them.
VIEW FROM THE DRESSING ROOM
Scunthorpe United manager Brian Laws told BBC Radio Humberside:
"The defeat is the hardest part because we didn't deserve that, there's no question about it.
"Every man that we put on the pitch I thought put in a great shift and worked really hard. I thought we were the best team.
"The disappointing thing is that we didn't finish them off - we had enough opportunities, we just didn't get that final touch and final finish that we needed to win the game."