Match ends, Crewe Alexandra 3, Doncaster Rovers 1.
Doncaster's relegation from League One was virtually sealed as bottom club Crewe came from behind to win for the first time in 16 games.
After a 30-minute delay at the start to drain a waterlogged pitch, Doncaster went ahead through Tommy Rowe's deflected 28th-minute strike.
But Crewe made it 1-1 at the break thanks to Callum Ainley's tap-in before Marcus Haber and Brad Inman struck.
Doncaster's inferior goal difference gives them no real chance of survival.
Rovers have one game left and are on -16. They are three points behind Fleetwood, who have two matches to play, and whose goal difference is -4.
- 25AinleySubstituted forUdohat 81'minutes
- 14SaundersSubstituted forInmanat 73'minutes
- 9HaberSubstituted forRayat 84'minutes
- 2LundSubstituted forTaylor-Sinclairat 46'minutes
- 37CalderSubstituted forStewartat 72'minutes
- 14TysonSubstituted forMandevilleat 72'minutes
- Lee Swabey
- Shots on Target
Second Half ends, Crewe Alexandra 3, Doncaster Rovers 1.
Corner, Doncaster Rovers. Conceded by David Fox.
Corner, Doncaster Rovers. Conceded by Harry Davis.
Attempt missed. Cameron Stewart (Doncaster Rovers) right footed shot from the right side of the box is too high from a direct free kick.
Foul by Bradden Inman (Crewe Alexandra).
Cameron Stewart (Doncaster Rovers) wins a free kick on the left wing.
Goal! Crewe Alexandra 3, Doncaster Rovers 1. Bradden Inman (Crewe Alexandra) right footed shot from outside the box to the bottom right corner. Assisted by Daniel Udoh.
Substitution, Crewe Alexandra. George Ray replaces Marcus Haber.
Attempt missed. Andy Williams (Doncaster Rovers) header from the left side of the six yard box is too high.
Attempt missed. Tommy Rowe (Doncaster Rovers) left footed shot from outside the box misses to the right.
Corner, Doncaster Rovers. Conceded by Bradden Inman.
Substitution, Crewe Alexandra. Daniel Udoh replaces Callum Ainley.
Corner, Crewe Alexandra. Conceded by Craig Alcock.
Attempt missed. Callum Ainley (Crewe Alexandra) right footed shot from outside the box misses to the left.
Riccardo Calder (Doncaster Rovers) wins a free kick in the defensive half.
Foul by James Jones (Crewe Alexandra).
Attempt saved. Andy Williams (Doncaster Rovers) header from the centre of the box is saved in the top centre of the goal.
Substitution, Crewe Alexandra. Bradden Inman replaces Callum Saunders.
Substitution, Doncaster Rovers. Cameron Stewart replaces Riccardo Calder.