Dean Cox’s stoppage time goal saw the O’s win for the first time in 2015 as they picked up a precious three points at Chesterfield.
Jay O’Shea had given the Spireites a lead from the penalty spot, but Orient went in level when Mooney slotted home Dean Cox’s cross.
The O’s fell behind again though when Elliot Omozusi put past his own goalkeeper Alex Cisak, however, Mooney struck again with 20 minutes to level for the O’s.
And just when it looked like a point for both sides, Cox was on hand to net after Tommy Lee fumbled a cross from the left.
Nathan Clarke made a return to the starting line-up, while Dean Cox and Elliot Omozusi also started with Orient boss Fabio Liverani making three changes from the side which lost 1-0 to Notts County in midweek.
Orient started the better of the two sides and had the early possession, though Chesterfield mounted a couple of quick counter attacks which came to nothing.
But the O’s found themselves behind when Clarke was adjudged to have brought down Caolan Lavery inside the box, and Jay O’Shea sent Alex Cisak the wrong way to put the hosts in front.
Cox got the O’s on the front foot straight away though and saw a fierce effort from the left pushed behind by home goalkeeper Tommy Lee.
Some sloppy defending from the hosts allowed the visitors plenty of chances, but Dagnall and Mooney both missed good opportunities, with the latter’s shot held comfortably by Lee.
However, they were level on 35 minutes when Cox ran into the box and played the ball across for Mooney for a simple tap in.
It remained 1-1 at half time, but the hosts started the second half brightly.
Clucas saw an early effort well held by Cisak, while up the other end Chris Dagnall fired over from just outside the box.
But the hosts took the lead in unfortunate circumstances for the O’s as some good build up from the Spireites resulted in a ball into the box and Omozusi fired past his own goalkeeper to put Chesterfield back in front.
Marvin Bartley replaced Josh Wright just before the hour mark, before Ryan Hedges was also brought on in place of Bradley Pritchard as the visitors looked for a way back into the match.
And they got just that with 20 minutes left on the clock when Mooney raced on to a ball over the top and fired low across goal past a full stretch Lee.
Chances continued to come for both sides and the O’s managed to clear a goalmouth scramble, before skipper Clarke saw a great header expertly tipped over by Lee from Cox’s corner.
Eight minutes of stoppage time was announced and there was an injury to home skipper Ian Evatt which delayed that even further.
And that may well have played a part as Lee came out to gather a cross but fumbled into the path of Cox who slotted home to give the O’s a vital three points.
CHESTERFIELD: Lee, Darikwa, Morsy, Ryan (Humphreys 78) Gnanduillet (Harrison 82), O’Shea, Clucas, Lavery, Duffy (Jones 75), Raglan, Evatt.
Substitutes not used: Chapman, Jones, Carter, Harrison, Banks, Dieseruvwe.
Bookings: Evatt (33)
ORIENT: Cisak, Omozusi, Clarke, Lowry, Sawyer, Pritchard (Hedges 68), Vincelot, Wright (Bartley 58), Cox, Mooney (Batt 84), Dagnall
Substitutes not used: Baudry, Lisbie, McAnuff, Woods.
Attendance:6,524 (285 Leyton Orient fans)