Match ends, Crewe Alexandra 1, Millwall 3.

Aiden O'Brien scored a hat-trick for Millwall as bottom club Crewe Alexandra suffered a third consecutive defeat.
O'Brien put the visitors in front when he turned in Carlos Edwards's cross at the back post.
Lauri Dalla Valle scored a fortuitous equaliser when Brad Inman's shot deflected off him and past goalkeeper Jordan Archer.
But O'Brien put Millwall back in front with a stunning 30-yard strike, before drilling in a third to seal victory.
Millwall manager Neil Harris told BBC London 94.9:
"I thought we were fantastic - first and foremost I need to talk about Aiden; what a hat-trick. He's got the ability and quality to do that. It wasn't just his goals, his all-round performance was good.
"The back four were much better, much more aware of danger.
"I thought all over the park, I thought the subs that came on played their part, I thought we managed the game really well and that's the pleasing thing."
Line-ups
Crewe
Formation 4-3-3
- 1Garratt
- 2Turton
- 4DavisBooked at 60mins
- 6Nugent
- 17Kingsley
- 15FoxSubstituted forWilsonat 67'minutes
- 8Atkinson
- 16King
- 10Inman
- 12Dalla ValleSubstituted forCooperat 80'minutes
- 27Colclough
Substitutes
- 3Guthrie
- 5Ray
- 9Haber
- 11Cooper
- 13Richards
- 19Baillie
- 24Wilson
Millwall
Formation 4-3-3
- 13Archer
- 4Edwards
- 15NelsonSubstituted forWebsterat 51'minutesBooked at 87mins
- 16Beevers
- 5Craig
- 6Williams
- 10OnyedinmaSubstituted forFergusonat 69'minutes
- 26Abdou
- 20Morison
- 8Upson
- 22O'BrienSubstituted forGregoryat 84'minutes
Substitutes
- 1Forde
- 7Cowan-Hall
- 9Gregory
- 14Marquis
- 17Webster
- 18Ferguson
- 24Thompson
- Referee:
- Darren Handley
- Attendance:
- 4,293
Match Stats
- Possession
- Home53%
- Away47%
- Shots
- Home10
- Away12
- Shots on Target
- Home6
- Away5
- Corners
- Home9
- Away8
- Fouls
- Home4
- Away16
Live Text
Post update
Full Time
Second Half ends, Crewe Alexandra 1, Millwall 3.
Post update
Corner, Crewe Alexandra. Conceded by Jordan Archer.
Post update
Attempt saved. Ryan Colclough (Crewe Alexandra) right footed shot from outside the box is saved in the top right corner.
Booking
Mark Beevers (Millwall) is shown the yellow card for a bad foul.
Post update
Bradden Inman (Crewe Alexandra) wins a free kick on the right wing.
Post update
Foul by Mark Beevers (Millwall).
Post update
Attempt saved. Harry Wilson (Crewe Alexandra) left footed shot from outside the box is saved in the centre of the goal.
Post update
Attempt missed. Shaun Williams (Millwall) left footed shot from outside the box misses to the left.
Post update
Oliver Turton (Crewe Alexandra) wins a free kick in the attacking half.
Post update
Foul by Ed Upson (Millwall).
Post update
Attempt missed. Harry Wilson (Crewe Alexandra) left footed shot from outside the box is close, but misses to the right.
Post update
Attempt missed. Ed Upson (Millwall) right footed shot from outside the box is close, but misses to the left.
Substitution
Substitution, Millwall. Lee Gregory replaces Aiden O'Brien.
Substitution
Substitution, Crewe Alexandra. George Cooper replaces Lauri Dalla Valle.
Post update
Foul by Chris Atkinson (Crewe Alexandra).
Post update
Shaun Williams (Millwall) wins a free kick in the attacking half.
Post update
Attempt missed. Ryan Colclough (Crewe Alexandra) left footed shot from outside the box misses to the right.
Post update
Bradden Inman (Crewe Alexandra) wins a free kick in the defensive half.
Post update
Foul by Shane Ferguson (Millwall).