Match ends, Crewe Alexandra 1, Bristol City 0.
Byron Moore scored a stoppage-time penalty as Crewe beat winless Bristol City in dramatic fashion.
The game looked set to end in a goalless draw before Moore was brought down on the edge of the penalty area by midfielder Scott Wagstaff.
The winger stepped up and sent City keeper Elliott Parish the wrong way.
Crewe missed a number of chances earlier in the game, with Moore hitting the crossbar and Oliver Turton's shot well saved by Parish.
City's best chance came when Jay Emmanuel-Thomas dispossessed Mark Ellis and was left one-on-one with keeper Steve Phillips, but he could only find the side netting.
The result left Sean O'Driscoll's side bottom of League One, while Crewe sit in 16th.
VIEWS FROM THE DRESSING ROOM
Bristol City head coach Sean O'Driscoll told BBC Radio Bristol:
"I didn't think either team deserved to win it and no team deserved to lose it so we would have been delighted with the draw.
"It would have been our first clean sheet and we were resolute at times.
"We probably had the best chance of the game in the first half. Jay went through and you would have bet on him going one-on-one with the goalkeeper he would have scored.
"We could have been talking about a really good defensive performance and a 1-0 win but were talking about a mistake at the death and going home with a loss."
- 24MolyneuxSubstituted forClaytonat 72'minutes
- 20TurtonBooked at 8mins
- 26AnekeSubstituted forRayat 90+5'minutes
- 11MooreBooked at 90mins
- 2MoloneyBooked at 69mins
- 5FlintBooked at 6mins
- 9BaldockSubstituted forMcLaughlinat 84'minutes
- 10Emmanuel-ThomasSubstituted forTaylorat 60'minutes
- Geoff Eltringham
- Shots on Target
Second Half ends, Crewe Alexandra 1, Bristol City 0.
Substitution, Crewe Alexandra. George Ray replaces Chukwuemeka Aneke.
Byron Moore (Crewe Alexandra) is shown the yellow card.
Foul by Byron Moore (Crewe Alexandra).
Marlon Pack (Bristol City) wins a free kick on the left wing.
Goal! Crewe Alexandra 1, Bristol City 0. Byron Moore (Crewe Alexandra) converts the penalty with a right footed shot to the high centre of the goal.
Penalty Crewe Alexandra. Byron Moore draws a foul in the penalty area.
Penalty conceded by Scott Wagstaff (Bristol City) after a foul in the penalty area.
Hand ball by Abdul Osman (Crewe Alexandra).
Abdul Osman (Crewe Alexandra) wins a free kick in the defensive half.
Foul by Aden Flint (Bristol City).
Foul by Adam Dugdale (Crewe Alexandra).
Joe Bryan (Bristol City) wins a free kick in the defensive half.
Substitution, Bristol City. Stephen McLaughlin replaces Sam Baldock.
Mark Ellis (Crewe Alexandra) wins a free kick in the attacking half.
Foul by Sam Baldock (Bristol City).
Attempt blocked. Abdul Osman (Crewe Alexandra) right footed shot from outside the box is blocked.
Kelvin Mellor (Crewe Alexandra) wins a free kick in the defensive half.
Foul by Ryan Taylor (Bristol City).