Oldham gick framför i femte minuten när Marc Klok levererade en frispark från höger till den avlägsna inlägget, där obestridda försvarare Peter Clarke gjorde med en nedåt rubrik.
Bradford dominerade resten av öppningsperioden då besökarnas försvar överlevde en rad trånga flykter.
Keeper Connor Ripley gjorde en lysande enhands spara för att förneka ytter Mark Marshall, Timothee Dieng och Josh Cullen båda hade skott avböjda för hörn, och Billy Clarke missade en bra chans när han vände James Meredith kors bred.
Oldham höll på något sätt sin ledning till halvtid, men Bradford välförtjänt utjämnade efter 57 minuter när Ousmane Fane släpade Cullen till marken och Clarke gjorde mål från platsen.
Bradford fortsatte att dominera, men kunde inte förvandla ägandet till mål som Oldhams försvar höll fast.
Rapport från Pressföreningen.
Bradford City manager Stuart McCall talar med BBC Radio Leeds
Matchen slutar, Bradford City 1, Oldham Athletic 1.
Andra halvlek, Bradford City 1, Oldham Athletic 1.
Hörnet, Bradford City. Förföljd av Cameron Burgess.
Romain Vincelot (Bradford City) vinner en frispark i defensiva halvan.
Foul av Darius Osei (Oldham Athletic).
Försening i match Marc Klok (Oldham Athletic) på grund av en skada.
Försök missade. Mark Marshall (Bradford City) vänster fotade skott utanför lådan är nära, men missar till vänster.
Försök missade. Vincent Rabiega (Bradford City) vänster fotade skott från mitten av lådan missar till höger.
Substitution, Oldham Athletic. Darius Osei ersätter Billy McKay.
Försök missade. Timothee Dieng (Bradford City) huvudet från mitten av lådan är nära, men missar till vänster efter en set bit situation.
Mark Marshall (Bradford City) vinner en frispark på högerkanten.
Foul av Ryan Flynn (Oldham Athletic).
Handboll av Ryan Flynn (Oldham Athletic).
Hörnet, Bradford City. Förföljd av Josh Law.
Foul av Josh Cullen (Bradford City).
Ryan Flynn (Oldham Athletic) vinner en frispark i den defensiva halvan.
Försök missade. Billy Clarke (Bradford City) vänster fotade skott från utsidan lådan är hög och bred till vänster.
Hörnet, Bradford City. Förföljd av Ryan McLaughlin.
Substitution, Bradford City. Vincent Rabiega ersätter Jordy Hiwula-Mayifuila.
Handboll av Ryan Flynn (Oldham Athletic).
Försök missade. Josh Cullen (Bradford City) höger fotade skott från utsidan lådan är hög och bred till höger.
Connor Ripley (Oldham Athletic) visas det gula kortet.
Försening i match Marc Klok (Oldham Athletic) på grund av en skada.
Hörnet, Bradford City. Sammankallad av Peter Clarke.
Substitution, Oldham Athletic. Ryan McLaughlin ersätter Lee Erwin.
Försöket räddades. Nathaniel Knight-Percival (Bradford City) huvud från mitten av lådan sparas i toppen av målet.
Billy McKay (Oldham Athletic) visas det gula kortet.
Hörnet, Bradford City. Förföljd av Connor Ripley.
Försöket räddades. James Meredith (Bradford City) vänster fotade skott från vänster sida av lådan sparas i nedre högra hörnet.
Försök missade. Nicky Law (Bradford City) höger fotade skott utanför lådan missar till höger.
Hörnet, Bradford City. Sammankallad av Peter Clarke.
Foul av Billy Clarke (Bradford City).
Charles Dunne (Oldham Athletic) vinner en frispark i anfallshalvan.
Hörnet, Bradford City. Sammankallad av Peter Clarke.
Substitution, Oldham Athletic. Oliver Banks ersätter Ousmane Fane.
Mål!  Bradford City 1, Oldham Athletic 1. Billy Clarke (Bradford City) konverterar straffet med en vänster fotad skott till nedre högra hörnet.
Straffet Bradford City. Josh Cullen drar ett brott i straffområdet.
Ryan Flynn (Oldham Athletic) visas det gula kortet.
Straff som medgavs av Peter Clarke (Oldham Athletic) efter ett brott i straffområdet.
Nathaniel Knight-Percival (Bradford City) vinner en frispark i anfallshalvan.
Bradford Citys trematchsvinnande lopp slutade när de hölls till en dragning av Oldham Athletic på Valley Parade trots att de dominerade spelet.