Match ends, Crawley Town 1, Bristol Rovers 2.
Two late goals saw Bristol Rovers come from behind to beat Crawley 2-1 in their FA Cup second-round replay.
An Elliot Richards volley with seven minutes remaining cancelled out Jamie Proctor's first-half header and looked to be sending the game into extra time.
But John-Joe O'Toole proved the match-winner in stoppage time as he finished from close range after Richards' initial effort was saved by Paul Jones.
Rovers will play Birmingham City away in the third round next Wednesday.
The two sides, who drew 0-0 in the initial tie on 7 December, finally settled their second round replay at the third attempt.
On 18 December, the match was abandoned midway through the second half because of a waterlogged pitch, and the fixture was re-arranged for Saturday, 4 January.
However, the match was postponed when the pitch at the Checkatrade.com Stadium failed an inspection.
The eventual winners of the third-round tie between Birmingham and Bristol Rovers will welcome Premier League side Swansea City, who knocked out Manchester United last weekend, on the weekend of 25-26 January,
VIEW FROM THE DRESSING ROOM
Crawley Town boss John Gregory told BBC Sussex:
"In the second half, we didn't play as well as the first half. One-nil up at half-time, it doesn't happen very often that it ends up in a defeat. We just had to keep a clean sheet in the second half and we didn't.
"Credit to Bristol. They put four on up front and just stuck the ball in our half of the pitch as often as they could. They had the wind behind them as well. They deserved to win it - we didn't.
"You don't get too carried away when things are going well, you just keep everyone's feet on the floor, and likewise after a poor result, you have to stay calm with everything.
"It's not time for ranting and raving. It's time for a composed head and hopefully 11 composed heads when we get on the field against Coventry at the weekend."
- 20SinclairSubstituted forAlexanderat 72'minutes
- 30LockyerSubstituted forBeardsleyat 63'minutes
- 24O Clarke
- 32O'TooleBooked at 90mins
- 7ClarksonSubstituted forHarrisonat 72'minutes
- Andy Davies
- Shots on Target
Second Half ends, Crawley Town 1, Bristol Rovers 2.
Attempt missed. Jamie Proctor (Crawley Town) header from the centre of the box misses to the left.
Foul by Gary Alexander (Crawley Town).
Ellis Harrison (Bristol Rovers) wins a free kick in the attacking half.
John-Joe O'Toole (Bristol Rovers) is shown the yellow card.
Goal! Crawley Town 1, Bristol Rovers 2. John-Joe O'Toole (Bristol Rovers) right footed shot from the centre of the box to the centre of the goal.
Corner, Bristol Rovers. Conceded by Joe Walsh.
Foul by Joe Walsh (Crawley Town).
John-Joe O'Toole (Bristol Rovers) wins a free kick in the attacking half.
Tom Parkes (Bristol Rovers) hits the left post with a right footed shot from the centre of the box.
Foul by Mark Connolly (Crawley Town).
Chris Beardsley (Bristol Rovers) wins a free kick in the defensive half.
Goal! Crawley Town 1, Bristol Rovers 1. Eliot Richards (Bristol Rovers) right footed shot from outside the box to the bottom left corner.
Corner, Bristol Rovers. Conceded by Kyle McFadzean.
Foul by Jamie Proctor (Crawley Town).
Tom Parkes (Bristol Rovers) wins a free kick on the right wing.
Attempt missed. John-Joe O'Toole (Bristol Rovers) left footed shot from outside the box is close, but misses to the left.
Corner, Crawley Town. Conceded by Michael Smith.
Substitution, Crawley Town. Gary Alexander replaces Emile Sinclair.