Danny Philliskirk extended Oldham's winning run to four games by completing an impressive fightback at Shrewsbury.
On-loan Reading striker Gozie Ugwu pounced on poor defending to fire Town ahead - his first goal for the club.
Tamika Mkandawire denied Korey Smith an equaliser with a goal-line clearance, before Charlie MacDonald ran onto a neat ball from Anton Rodgers to level.
Philliskirk put Oldham ahead, before keeper Mark Oxley ensured victory by denying Tom Bradshaw late on.
VIEW FROM THE DRESSING ROOM
Shrewsbury manager Graham Turner told BBC Radio Shropshire:
"To be fair, it's as well as we've played for a while. We passed the ball well and got into good areas.
"But the equaliser just before half-time was criminal - to be opened up at the back like that with one ball through the middle.
"We started so brightly with Gozie Ugwu's first goal for the club, and one or two situations we should have done better with.
"It was a frustrating night, to be leading 1-0 and looking comfortable - and to end up with nothing."
Oldham manager Lee Johnson told BBC Radio Manchester:
"We just didn't get going and I was really upset with the first-half performance. We were off it but it was good character from the boys.
"I'm pleased because we've won ugly and that's an art.
"We've always got threats all over the pitch and we have got finishers, but we just needed to be a bit tidier around the pitch."
Shrewsbury Town 01 Weale 18 Goldson 03 Jacobson (McAllister - 26' Booked ) 04 Summerfield Booked 05 Jones 16 Mkandawire 17 Parry 10 Wroe 20 McAlinden (Bradshaw - 81' ) 07 Ugwu 23 Reach Substitutes 06 Winfield 08 McAllister 09 Bradshaw 12 McQuade 14 Marsden 25 Anyon Oldham Athletic 01 Oxley 18 Lanzoni 12 Mellor 08 Smith 03 Grounds 06 Tarkowski 20 Petrasso (Clarke-Harris - 34' ) 17 Rodgers (Wesolowski - 60' ) 10 MacDonald 27 Philliskirk 19 Dayton (Schmeltz - 67' ) Substitutes 04 Wesolowski 07 Schmeltz 09 Rooney 14 Clarke-Harris 15 Winchester 22 Belezika 29 Rachubka
Ref: James Adcock