Crewe Alexandra 4 Tranmere Rovers 3
The substitute secured The Railwaymen's first league victory in eight games when he met an 88th-minute Ryan Lowe corner, just as it seemed ten-man Rovers had held on for a point.
Midfielder Paul McLaren's 74th minute free-kick levelled the scores up a 3-3 after Rovers skipper Ian Goodison's sending-off inspired Crewe to press for the much-needed win.
The home side were behind as early as the eighth minute when loan defender Andy Taylor crashed home a volley from a corner.
Nicky Maynard came close to a swift equaliser, but Danny Coyne saved the striker's downward header with his legs.
And Coyne saved again from the youngster, while Chris McCready had a goal chalked out for offside against his former club as luck went against The Alex.
But when Antony Kay chopped Ben Rix down inside the box, Gary Roberts was able to fire in a 29th-minute equaliser from the spot.
However, a dreadful defensive lapse was punished within two minutes by Chris Greenacre. The striker caught left-back Ryan Lynch in possession and crashed the ball home from a tight angle to make it 2-1.
Crewe fought back bravely though at the start of the second half and Roberts bagged his second to draw his side level again.
Julien Baudet headed a Ryan Lowe corner back across the six-yard box and the midfielder applied a headed finish from close range.
Then Goodison's crunching tackle on Lowe produced a straight red from referee Jon Moss in the 64th minute.
Crewe were ahead immediately from the resulting long free-kick as Maynard tucked home from close range.
But after Danny Woodards was stretchered off with a head injury, McLaren arrowed a 25-yard free-kick low into the bottom corner past Ben Williams for the equaliser.
Sub Mark Carrington saw a thumping drive deflected for a corner and Coyne parried away a blockbuster from Maynard, as Crewe attempted to make their numerical advantage count.
Roberts volleyed inches wide as he went for his hat-trick and Coyne denied Maynard as Crewe applied the pressure at the death.
And finally it was O'Donnell rising to head home in a thrilling finale for the game's seventh goal.