Oldham's James Dayton struck a late equaliser to deny struggling Bristol City a first home win of the season.
Jay Emmanuel-Thomas's acrobatic volley from strike partner Ryan Taylor's well-placed cross had given the Robins a first-half advantage.
Dayton and Adam Rooney both had shots well blocked as Lee Johnson's Oldham looked the brighter team.
And Dayton finally got his goal with 13 minutes left when his left-foot shot beat goalkeeper Elliot Parish.
The result means City climb a place to 23rd in the League One table, while Oldham are 16th.
VIEW FROM THE DRESSING ROOM
Bristol City head coach Sean O'Driscoll told BBC Radio Bristol:
"We have had a lot of time where we have walked in saying we didn't deserve that.
"People say to me you could do with a 1-0 scrappy win and you reply understanding the sentiment but I know what a scrappy win looks like and it's not pretty.
"I think it's about creating openings. I don't think we created enough.
"I'm not sure whether that's down to conditions but we were not fluid enough with our play."
Bristol City 13 Parish 02 Moloney 22 Shorey Booked 25 Elliott (Baldock - 83' ) 05 Flint 03 Williams 11 Wagstaff 21 Pack 10 Emmanuel-Thomas 18 Taylor (Gillett - 75' ) 14 Reid (Bryan - 62' ) Substitutes 01 Fielding 09 Baldock 15 Bryan 17 Cunningham 23 Harewood 34 Gillett 35 Osborne Oldham Athletic 01 Oxley 05 Kusunga 12 Mellor 08 Smith 06 Tarkowski Booked 03 Grounds 27 Philliskirk 04 Wesolowski (Rodgers - 88' Booked ) 09 Rooney (Montaño - 70' ) 14 Clarke-Harris Booked 19 Dayton (Schmeltz - 83' ) Substitutes 07 Schmeltz 11 Montaño 15 Winchester 17 Rodgers 21 Millar 24 Joksts 29 Rachubka
Ref: Andy Madley