Match ends, Oldham Athletic 1, Bradford City 2.
Bradford ended 10-man Oldham's unbeaten start to the League One campaign as they sealed all three points at Boundary Park.
The Bantams broke the deadlock when Mark Marshall fed Reece Burke, with the West Ham loanee slotting the ball home.
Oldham had Jonathan Forte sent off when he tangled with Stephen Darby, before Devante Cole doubled Bradford's lead.
The Latics pulled one back when Joe Mills nodded home Mark Yeates' cross, but the visitors held on.
Oldham manager Darren Kelly told BBC Radio Manchester:
"You have to move on. I'm not going to sit and dwell over it, life stops for no one and you have to just do what you do.
"I'll never use an excuse. I'll always stand at the front and take full responsibility for the result. I'm the person that picks the team, I put a team out there, I'll never shy away from responsibility.
"No matter which way you look at it, it's three points I feel we've lost because we've got to win our home games. Getting beat is not nice."
Line-ups
Oldham
Formation 4-2-3-1
- 1Coleman
- 21O'ConnellBooked at 89mins
- 5Wilson
- 16BurnSubstituted forMurphyat 70'minutes
- 3Mills
- 10PhilliskirkBooked at 13mins
- 4DiengSubstituted forTurnerat 45'minutes
- 8Jones
- 17DunnSubstituted forWinchesterat 79'minutes
- 22Yeates
- 11ForteBooked at 34mins
Substitutes
- 2Brown
- 13Cornell
- 15Winchester
- 18Turner
- 19Murphy
- 27Edmundson
- 29Tuohy
Bradford
Formation 4-1-2-1-2
- 1Williams
- 2Darby
- 16Burke
- 23McArdle
- 3Meredith
- 8LiddleBooked at 32mins
- 7MarshallSubstituted forAndersonat 85'minutes
- 14Morris
- 11KnottSubstituted forMcMahonat 89'minutes
- 44ColeSubstituted forJamesat 76'minutes
- 9HansonBooked at 82mins
Substitutes
- 5Clarke
- 15Leigh
- 22Jones
- 24Davies
- 26Anderson
- 29McMahon
- 33James
- Referee:
- Andy Haines
- Attendance:
- 5,619
Match Stats
- Possession
- Home51%
- Away49%
- Shots
- Home10
- Away14
- Shots on Target
- Home5
- Away5
- Corners
- Home3
- Away7
- Fouls
- Home10
- Away20
Live Text
Post update
Full Time
Second Half ends, Oldham Athletic 1, Bradford City 2.
Post update
Corner, Bradford City. Conceded by Michael Jones.
Substitution
Substitution, Bradford City. Tony McMahon replaces Billy Knott.
Booking
Eoghan O'Connell (Oldham Athletic) is shown the yellow card for a bad foul.
Post update
Foul by Eoghan O'Connell (Oldham Athletic).
Post update
Luke James (Bradford City) wins a free kick in the attacking half.
Post update
Attempt missed. Rhys Murphy (Oldham Athletic) header from the centre of the box is too high.
Post update
Attempt missed. Carl Winchester (Oldham Athletic) left footed shot from outside the box is high and wide to the left.
Substitution
Substitution, Bradford City. Paul Anderson replaces Mark Marshall.
Post update
Foul by Rhys Turner (Oldham Athletic).
Post update
Rory McArdle (Bradford City) wins a free kick in the defensive half.
Booking
James Hanson (Bradford City) is shown the yellow card for a bad foul.
Post update
James Wilson (Oldham Athletic) wins a free kick in the attacking half.
Post update
Foul by James Hanson (Bradford City).
Goal!
Goal! Oldham Athletic 1, Bradford City 2. Joseph Mills (Oldham Athletic) header from the centre of the box to the bottom right corner. Assisted by Mark Yeates.
Post update
Eoghan O'Connell (Oldham Athletic) wins a free kick in the defensive half.
Post update
Foul by James Hanson (Bradford City).
Substitution
Substitution, Oldham Athletic. Carl Winchester replaces David Dunn.
Post update
Attempt missed. Josh Morris (Bradford City) left footed shot from outside the box is too high.