Match ends, Crewe Alexandra 0, Oxford United 6.
Oxford kickstarted their play-off hopes by thrashing Crewe 6-0 to equal their record away win.
Karl Robinson's side punished poor home defending with ruthless finishing and scored three times inside 10 minutes before the interval through Josh Ruffels, James Henry and skipper Elliott Moore.
Brandon Barker and Cameron Brannagan scored in quick succession shortly after the restart and Sam Winnall headed in late on to complete the rout.
Crewe goalkeeper Will Jaaskelainen diverted Omar Beckles' wayward back-pass off the line early on and then saved a low shot from Mark Sykes, who had burst clear.
Owen Dale twice went close for Crewe, heading just wide from a free-kick then driving a low shot which nicked off a post.
But it was Oxford who made their chances count, taking a 37th-minute lead when Sam Long's cross was flicked on by Sykes and Ruffels' downward header found the bottom corner.
A poor goal-kick from Jaaskelainen was Crewe's downfall three minutes later, with Oxford seizing possession and Barker pulling the ball back for Henry to side-foot home from 10 yards.
Moore grabbed the third as he latched onto Henry's fine free-kick delivery and prodded the ball past the keeper in first-half stoppage time.
Oxford were relentless and Barker drove forward and despatched a stunning drive from 25 yards into the bottom corner in the 47th minute.
Then Brannagan finished on the rebound for the fifth after Jaaskelainen had saved his penalty, awarded when Beckles stuck out a leg as Sykes dribbled past him.
Dale should have reduced the arrears but headed Charlie Kirk's cross over from close range.
Two Oxford substitutes combined for the sixth, with Dan Agyei lofting a cross for Winnall to head in at the far post.
Match report supplied by PA Media.
- 5DanielsSubstituted forOffordat 53'minutes
- 16LancashireSubstituted forWoodat 45'minutes
- 29BecklesBooked at 86mins
- 11AinleySubstituted forPorterat 45'minutes
- 19DaleSubstituted forWalkerat 53'minutes
- 10KirkSubstituted forEvansat 53'minutes
- 12LongSubstituted forHansonat 62'minutes
- 17HenrySubstituted forFordeat 80'minutes
- 27LeeSubstituted forAgyeiat 62'minutes
- 9TaylorSubstituted forWinnallat 61'minutes
- 30BarkerSubstituted forShodipoat 62'minutes
- Paul Howard
- Shots on Target
Second Half ends, Crewe Alexandra 0, Oxford United 6.
Attempt missed. Olamide Shodipo (Oxford United) right footed shot from the centre of the box is too high. Assisted by Anthony Forde with a cross following a set piece situation.
Cameron Brannagan (Oxford United) wins a free kick in the attacking half.
Foul by Ryan Wintle (Crewe Alexandra).
Daniel Agyei (Oxford United) wins a free kick in the defensive half.
Foul by Harry Pickering (Crewe Alexandra).
Attempt missed. Mark Sykes (Oxford United) right footed shot from more than 35 yards misses to the right.
Attempt saved. Mikael Mandron (Crewe Alexandra) left footed shot from outside the box is saved in the centre of the goal. Assisted by Antony Evans.
Mark Sykes (Oxford United) wins a free kick on the right wing.
Foul by Luke Murphy (Crewe Alexandra).
Omar Beckles (Crewe Alexandra) is shown the yellow card.
Sam Winnall (Oxford United) wins a free kick in the defensive half.
Foul by Omar Beckles (Crewe Alexandra).
Goal! Crewe Alexandra 0, Oxford United 6. Sam Winnall (Oxford United) header from very close range to the bottom left corner. Assisted by Daniel Agyei with a cross.
Foul by Mark Sykes (Oxford United).
Luke Murphy (Crewe Alexandra) wins a free kick in the defensive half.
Attempt blocked. Mikael Mandron (Crewe Alexandra) left footed shot from the left side of the box is blocked. Assisted by Antony Evans.
Offside, Crewe Alexandra. Will Jaaskelainen tries a through ball, but Chris Porter is caught offside.
Foul by Daniel Agyei (Oxford United).