A late Sam Surridge handed Oldham the three points after Dannie Bulman had cancelled out a Gevaro Nepomuceno opener.
Latics made the perfect start as Nepomuceno got his second goal in as many games after some good interchange with Rob Hunt.
Nepomuceno initially played it out wide on the left to Hunt to which he returned with a dangerous cross and the Curacao International tapped home past Glenn Morris in the Crawley goal.
The winger almost grabbed his second after a fantastic driving run from Johan Branger-Engone ended up in Jose Baxter’s path who, in turn, found Nepomuceno, but he couldn’t keep the effort down on this occasion.
Crawley found themselves level midway through the half as Ollie Palmer forced Daniel Iversen into a smart stop, but he could only parry into Bulman who tapped in for the equaliser.
Iversen redeemed himself later in the half as Ashley Nathaniel-George went down under a challenge from Sam Graham on the edge of the box, but the referee pointed to the spot.
The Danish U21 International stood tall and saved Palmer’s penalty low to his left to take the teams into half time on level terms.
Manager Frankie Bunn introduced both Sam Surridge and Callum Lang during the second half and the latter almost opened his Oldham account.
Another fantastic cross from Hunt was met by the head of the Wigan loanee but Morris got down well to save.
Oldham were searching for the winner and Lang did have the ball in the back of the net, but the linesman ruled it out for offside.
Then came the moment which secured the three points as Latics kept the ball alive from the corner.
It eventually found its way to George Edmundson who’s cross was stumbled by Surridge via Mark Connolly, but the striker will claim it.
Oldham had to soak up some late pressure, but the defence marshalled by Edmundson and Captain Peter Clarke coped well to hold onto the win.
It’s now two wins on the bounce for Latics ahead of the Checkatrade fixture with Barnsley on Tuesday night.
Attendance 4160 (62 Away)
Iversen, Graham (Hamer 79'), Clarke ©, Edmundson, Hunt, Branger-Engone, Missilou (Surridge 58’), Gardner, Nepomuceno, Baxter, O’Grady (Lang 66’)
Morris, Doherty, Connolly, Smith ©, Palmer, Poleon (Camara 66’), Francomb, Nathaniel-George, Vincelot (N’Gala 21’), Bulman, Morais