A blunder by O’s goalkeeper Ryan Allsop after seven minutes settled the outcome as the visitors recorded their first win in four matches.
A 20-yard shot by Gary McSheffrey looked harmless but Allsop spilled the ball on the greasy turf and McGoldrick pounced from close range for his sixth goal in as many matches.
However, on the stroke of half-time Allsop produced a superb save to prevent McSheffrey from doubling the lead and kept alive the O’s hopes of salvaging something from the match.
In an entertaining game, McGoldrick and McSheffrey both had goalbound efforts blocked by Ben Chorley.
The hard-working David Mooney came closest to rescuing a point for the home side when he latched onto a pass from Chorley in the last minute but his shot from 15 yards went agonisingly wide.