It looked like a case of after the Lord Mayor’s Show for Doncaster as they struggled for long periods against a lively Oldham side.
Rovers had slammed four goals past Scunthorpe United on Saturday but seldom threatened the Latics’ goal in an uninspired first-half display.
Dean Saunders’s men stepped up the pace after the interval to clinch a hard-earned win that lifted them equal on points with Tranmere at the top of the table.
Dave Cotterill grabbed the winner with his seventh goal of the season but the game ended controversially when Rovers had striker Iain Hume sent off along with visiting goalkeeper Dean Bouzanis in stoppage time.
There was little to chose between the sides in a lacklustre first half although Oldham looked to be the more menacing with James Wesolowski and Dean Furman both going close.
Rovers rarely threatened apart from a 36th-minute header from Hume which was easily saved.
Oldham had a great chance to snatch the lead just before the interval but Jose Baxter made a hash of his shot.
Baxter had cause for regret when Cotterill caught the visitors napping with a quickly-taken free-kick which sailed into the net while Bouzanis was still lining up the defensive wall.
Worse was to come for Bouzanis when he was sent off in stoppage time for pushing Hume to the ground and the Rovers striker received two yellow cards, firstly for a foul on a defender and then for picking him up roughly after he had fallen to the ground.
Doncaster Rovers: G Woods, Quinn, Husband, Spurr, Jones, Harper (Syers 63), Keegan, Cotterill, Martin Woods, (Clingan 33), Brown, Hume. Unused substitutes: Maxted, Blake, Michael Woods, Martis, McCombe.
Oldham Athletic: Bouzanis, Brown, Grounds (Montano 73), Wesolowski (Smith 73), Mvoto, Croft (Jacob 90), Furman, Derbyshire, Byrne, Baxter, Wabara. Unused substitutes: Millar, M’Changama, Winchester. Sutherland.
Referee: G Sutton (Lincs).