The hosts took the lead after an error from visiting keeper Darryl Flahavan, who dropped Tom Barkhuizen's deflected cross onto Kevin Ellison's head and the winger bundled home.
Shaun Miller's low shot from eight yards out doubled the Shrimps' lead.
Crawley hit back through Rhys Murphy but Paul Mullin scored an injury-time penalty to secure the three points.
Crawley boss Mark Yates told BBC Surrey:
Media playback is not supported on this device
"It was a bit of a nothing game really. They've not really dominated us, and we've not really dominated them, but we've ended up getting beat 3-1.
"It was just a couple of poor goals that we've conceded and a late penalty.
"I think we had enough possession and enough play in the second half to come back like we have done of late.
"There is a fine line between sitting in and frustrating and having a go, and I just felt we were caught in between really."
Morecambe won a third consecutive league match as they eased to victory over Crawley at the Globe Arena.