The Scottish striker sidefooted home Nathan Blake's cross-cum-shot six minutes from time, but the draw means that Colin Todd's side have now gone eight games without a win.
The Swindon winger Mark Walters had given the home side the lead in the 33rd minute with an exquisite chip over goalkeeper Gavin Ward from 20 yards after the ball had fallen invitingly into his path. Walters had to limp off with a hip injury shortly before half-time and Bolton pulled themselves level in the 58th minute when the substitute Scott Green, on for the injured winger Michael Johansen, scored from close range following another piece of good work from Blake.
Swindon restored their advantage through Wayne Allison after a good passing movement involving on-loan Spurs defender David Kerslake and Kevin Watson, but McGinlay struck in the 84th minute to level again and then Green had a "goal" disallowed for offside.
Goals: Walters (33) 1-0; Green (58) 1-1; Allison (73) 2-1; McGinlay (84) 2-2.
Swindon Town (3-5-2): Digby; Horlock, O' Sullivan, Robinson; Kerslake, Darras (Elkins, 66), Watson, Cowe, Culverhouse; Allison, Walters (Smith 39). Substitute not used: Collins.
Bolton Wanderers: (3-5-2): Ward; Frandsen, Taggart, Fairclough; Bergsson, Johansen (Green, 55), Sheridan, Sellars, Phillips; Blake, McGinlay. Substitutes not used: Pollock, Small.
Bookings: Swindon: Booked: Elkins, Smith. Bolton: Sheridan.
Referee: A D'Urso (Billericay).
Attendance: 8,948.Reuse content