O’Donnell put the Heed ahead with just three minutes on the clock with a fine header from Nicky Deverdics’ free-kick to give Gateshead a dream start.
The Heed held firm in the second 45 to earn their second win over tough opposition inside three days and remain eighth in the National League North.
Mike Williamson was forced into making one change to the side that won 2-0 against Brackley Town on Saturday afternoon with Danny Greenfield replacing the injured Connor Oliver.
Williamson’s side got off to the perfect start as they went ahead with only three minutes on the clock with a well-worked set-piece not too dissimilar to Michael Nelson’s goal against Brackley.
Deverdics’ whipped ball into the centre of the box was missed by all in a green shirt, with O’Donnell rising to head home into the bottom left corner for his third of the season.
Things remained cagey for much of the half from that point onwards, with Dan Ward forcing a save from Brad James with a 20-yard effort in the Moors’ only real chance of the half.
O’Donnell and Greg Olley both fired just wide for Gateshead towards the end of the half but the sides went into the break with the hosts holding the advantage.
Substitute Adam Boyes forced James into another smart save at his near post soon after half time, before Ward’s volley almost flew into the bottom corner but for a fantastic diving stop from the Middlesbrough loanee.
Olley came inches away from doubling Gateshead’s lead at the other end on the hour mark as he and Deverdics traded passes, before the latter’s cross was placed just wide of the post by Olley from 12 yards.
Former Heed midfielder Rob Ramshaw was next to try his luck for the Moors as he sent a powerful 25-yard volley towards goal, although James was quick to react and hold at the near post.
The visitors were keen to continue applying pressure with the game wearing on and Stephen Brogan came a few yards from glory, sending a swerving shot just wide of James’ far post.
The Moors pushed for an equaliser late on but Gateshead’s resolve saw them through the final 10 minutes, with the referee calling time to an eruption of noise as the Heed earned their second win inside three days.
Gateshead XI: James; Nicholson, Lees, Nelson, Barrow (c); Greenfield (Thomson, 81’), Agnew; Olley, Deverdics, O’Donnell; Kayode (Blackett, 86’).
Unused subs: Guthrie, Forbes, Tear.
Goals: O’Donnell (3’)
Spennymoor Town XI: Gould; Williams, Brogan, Chandler, Buddle, Curtis (c), McKenna, Ramshaw, Taylor (Boyes’ 28’), Ward (Roberts, 82’), Johnson (Cogdon, 63’).
Unused subs: Mason, Henry
Bookings: McKenna (43’)
Referee: James Westgate
MOTM: JJ O'Donnell
Attendance: 1,337 (303 Spennymoor)