Romain Vincelot gave the Bantams the lead early in the first half but full back Brian Wilson equalised before the break following an error from Bradford goalkeeper Colin Doyle.
Latics had to thank goalkeeper Connor Ripley for keeping them in the game but Bradford managed to break through the rearguard as they took the lead on 76 minutes.
Rory McArdle managed to bundle the ball home at the back post to win the game for the Bantams.
Manager John Sheridan named an unchanged squad from Tuesday night’s win over Peterborough United.
That meant a second start for Aaron Holloway and he won a free kick within the first 10 minutes of the game but Ollie Banks’ delivery was cleared.
The returning Tim Dieng, who received a good reception from the Latics supporters, had two strikes in the first 10 minutes.
Firstly he opened fire from 25 yards which went wide of Ripley’s goal whilst his second effort did not trouble the goalkeeper as much.
Latics were taking the game to their opponents but they were hit with a sucker punch on 14 minutes as Bradford City took the lead.
A short corner was played to Josh Cullen who found Vincelot running in and he headed beyond Ripley to give the visitors the lead.
Latics did not let that goal deter them and they continued to attack Bradford’s defence.
Latics won a corner midway through the half and Banks’ delivery almost deceived goalkeeper Doyle but he managed to tip it away from the head of Anthony Gerrard.
However, minutes later, Bradford almost made it two as Tony McMahon raced past two defenders but Ripley managed to make the save with his face.
Athletic were frustrating their opponents as they felt they should have been awarded a penalty on 27 minutes.
Ousmane Fane and Billy Clarke collided in the penalty area but the referee waved away the protests.
Bradford did feel they had doubled their lead on 36 minutes as Rory McArdle nodded past Ripley but the linesman’s flag was up for offside.
That seemed to kick Latics into action and they finished the half the better of the two teams.
And they were level a minute before the break as Wilson scored in fortuitous circumstances.
The right back picked the ball up on the half way line, ran with it, cut inside and his tame effort seemed to bobble over goalkeeper Doyle and brought Latics level at the break.
Bradford City started the second half the brighter of the two sides and Latics had to thank Ripley for keeping the scores level.
He denied Jordy Hiwula with his feet from close range after the striker got behind Peter Clarke and Gerrard and minutes later he made a great save to stop Cullen from putting the Bantams back ahead.
It was all the visitors at the start of the second half as Athletic struggled to get hold of the ball.
However, on the hour mark, McLaughlin managed to get himself free on the left hand side, he cut inside but Doyle managed to make the save.
Latics were back defending a minute later though as Banks was forced to clear the ball off the line whilst from the rebound, Ripley managed to save Clarke’s point blank header.
Ripley again made a save to deny Vincelot on 65 minutes but a minute later, Athletic almost caught the visitors on the breakaway.
It all came from excellent work from Holloway who won the ball, took it around three players and played in McLaughlin but his curled effort went wide of Doyle’s post.
The visitors managed to break down the Oldham Athletic defence and McArdle forced the ball over the line to win the game for Bradford City.
After a scramble in the penalty box, Vincelot headed goalwards and it was central defender McArdle who manage to stab home at the far post.
Latics needed a response and almost found an equaliser on 83 minutes after Banks’ header found substitute Billy Mckay but his shot was well saved by Doyle.
Athletic pushed until the end of the game as Clarke’s header was saved by the goalkeeper but it was the Bantams who came away with the victory.
Oldham Athletic: Ripley, Wilson, Gerrard, Clarke, Reckord, Fane, Banks (Hunt 83’), Green, Flynn (Mckay 61’), McLaughlin (Ngoo 84’), Holloway.
Subs not used: Kettings, Law, Edmundson, Erwin.
Bradford City: Doyle, Meredith, Law, Vincelot, Marshall, Dieng, Clarke (Gilliead 84’), Hiwula (Jones 70’), Cullen, McArdle, McMahon.
Subs not used: Sattelmaier, Darby, King, Devine, Hudson.
Goals: Oldham Athletic (Wilson 44’) 1-2 Bradford City (Vincelot 14’, McArdle 76’)
Attendance: 6,516 (2,871 visiting supporters)