Match ends, Oldham Athletic 2, Bradford City 1.
Jonathan Forte scored his 11th of the season as in-form Oldham beat Bradford.
Jabo Ibehre headed down a Joseph Mills cross for Forte to finish, before Mike Jones's deflected strike from 20 yards made it 2-0 after 24 minutes.
On-loan winger Andy Halliday volleyed his first goal for Bradford from James Hanson's header just before the break.
Alan Sheehan's stinging shot was pushed away by Latics keeper Paul Rachubka as City pushed for an equaliser but they had Rory McCardle dismissed late on.
Oldham manager Lee Johnson told BBC Radio Manchester:
"It was a tough game full of endeavour. Some good football was played.
"I felt we made it difficult for ourselves by not finishing some good chances that we had and then we gave them a lifeline with a poor goal on our part, but a good goal on their part.
"It was a topsy-turvy end to end passionate League One tie and I was just delighted to come out on the right end of it."
- 15WinchesterSubstituted forDaytonat 73'minutes
- 11ForteSubstituted forPoleonat 76'minutes
- 18RoutisSubstituted forMeredithat 39'minutes
- 23McArdleBooked at 90mins
- 6SheehanBooked at 90mins
- 25HallidaySubstituted forClarkeat 79'minutes
- 17KennedySubstituted forKnottat 73'minutes
- David Coote
- Shots on Target
Second Half ends, Oldham Athletic 2, Bradford City 1.
Attempt missed. Gary Liddle (Bradford City) right footed shot from outside the box misses to the left.
Corner, Bradford City. Conceded by Timothee Dieng.
Attempt blocked. Mark Yeates (Bradford City) right footed shot from the left side of the box is blocked.
Alan Sheehan (Bradford City) is shown the yellow card.
Michael Jones (Oldham Athletic) wins a free kick on the left wing.
Foul by Alan Sheehan (Bradford City).
Second yellow card to Rory McArdle (Bradford City).
Jabo Ibehre (Oldham Athletic) wins a free kick on the left wing.
Foul by Rory McArdle (Bradford City).
Attempt saved. Mark Yeates (Bradford City) right footed shot from the centre of the box is saved in the centre of the goal.
Attempt missed. Billy Clarke (Bradford City) left footed shot from outside the box is close, but misses to the left.
Attempt missed. Jabo Ibehre (Oldham Athletic) header from the centre of the box is close, but misses to the right.
Corner, Oldham Athletic. Conceded by Rory McArdle.
Attempt blocked. James Dayton (Oldham Athletic) right footed shot from outside the box is blocked.
Liam Kelly (Oldham Athletic) wins a free kick in the defensive half.
Foul by Gary Liddle (Bradford City).
Attempt missed. Billy Clarke (Bradford City) left footed shot from the centre of the box is just a bit too high.
Corner, Bradford City. Conceded by Joseph Mills.