Frontline partner Chris Dagnall had a shot parried by Steve Phillips and O'Grady pounced on the loose ball, volleying it into the roof of the net from 10 yards.
Dagnall had a shot cleared off the line by Harry Worley, while Phillips produced good saves to deny O'Grady and Dagnall before the half was out.
Crewe had their chances in an entertaining first 45 minutes, Steve Schumacher testing Frank Fielding with a long-range free-kick and Luke Murphy firing over after good approach play from John Brayford and Schumacher.
Dario Gradi's men also had a penalty claim turned down when Scott Wiseman challenged Byron Moore. An own goal by Matt Tootle seconds after the interval effectively wrapped up the result, while Phillips denied the hosts a third by saving Kallum Higginbotham's long-range effort and a diving header from Craig Dawson.