Match ends, Bradford City 1, Oxford United 0.
Bradford took another step towards the League One play-offs with a nervy win over Oxford.
Nicky Law scored the winner in the 59th minute of his first start since February following a lay-off with a knee injury.
The visitors failed to deal with a left-wing cross from Mark Marshall and Law poked the ball into the net when Charlie Wyke's glancing header landed into his path.
The result leaves Bradford six points ahead of seventh-placed Southend, but they had little to spare against hard-working Oxford.
Conor McAleny, on loan from Everton, posed the most danger, forcing diving saves from Bradford goalkeeper Colin Doyle as the visitors made a determined bid for an equaliser.
But Simon Eastwood also had to be at his best to keep out second-half efforts from Wyke and did well to block a close-range header from defender Nathaniel Knight-Percival in the 15th minute.
Report supplied by the Press Association.
- 7MarshallSubstituted forClarkeat 90'minutes
- 4LawSubstituted forDiengat 73'minutes
- 11Hiwula-MayifuilaSubstituted forDarbyat 84'minutes
- 2RibeiroSubstituted forEdwardsat 85'minutes
- 25RaglanBooked at 90mins
- 3SkarzBooked at 54mins
- 10MaguireSubstituted forHallat 81'minutes
- 18RothwellSubstituted forHemmingsat 76'minutes
- Richard Clark
- Shots on Target
Second Half ends, Bradford City 1, Oxford United 0.
Charlie Raglan (Oxford United) is shown the yellow card for a bad foul.
Stephen Darby (Bradford City) wins a free kick in the defensive half.
Foul by Charlie Raglan (Oxford United).
Tony McMahon (Bradford City) wins a free kick on the right wing.
Foul by Conor McAleny (Oxford United).
Substitution, Bradford City. Billy Clarke replaces Mark Marshall.
Hand ball by Robert Hall (Oxford United).
Foul by Timothee Dieng (Bradford City).
Joe Skarz (Oxford United) wins a free kick in the defensive half.
Substitution, Oxford United. Philip Edwards replaces Christian Ribeiro.
Foul by Charlie Wyke (Bradford City).
Josh Ruffels (Oxford United) wins a free kick in the attacking half.
Substitution, Bradford City. Stephen Darby replaces Jordy Hiwula-Mayifuila.
Substitution, Oxford United. Robert Hall replaces Chris Maguire.
Attempt missed. Marvin Johnson (Oxford United) left footed shot from outside the box is high and wide to the left.
Attempt missed. Josh Cullen (Bradford City) left footed shot from the centre of the box is high and wide to the left.
James Meredith (Bradford City) wins a free kick in the defensive half.
Foul by Chris Maguire (Oxford United).