Jonathan Obika gave Swindon Town the lead on 17 minutes firing into the bottom corner, whilst they extended their lead early in the second half through Brandon Ormonde-Ottewill.
The wing back received the ball in the penalty area and fired past Connor Ripley to win the game for the Robins.
Stephen Robinson made one change to his side which drew 0-0 with Coventry City last weekend as Lee Croft replaced Brian Wilson as Latics lined up 4-4-2.
Swindon dominated the first half of the game and went close early on.
The ball fell to captain Nathan Thompson in the penalty box from a corner but the defender volleyed over from close range.
He would soon be booked on six minutes as he was adjudged to pull back Lee Croft as he raced forward into the opposition half.
Raphael Rossi-Branco was the next man to go close for the Robins as his volley from inside the box whisked past Ripley’s far post.
The visitors did take the lead on 18 minutes through Obika.
After a flowing move, lasting over 10 passes, Obika received the ball on the edge of the box, took a touch and knocked the ball into the bottom corner to give Swindon Town the lead.
Latics had an opportunity to equalise soon after as Lee Erwin won a free kick on the edge of the box for Latics.
Josh Law stood over the ball but could not recreate his exploits from the game against Shrewsbury Town and his free kick went wide of the post.
Obika’s overhead kick on the half hour mark was saved by Ripley before Latics almost managed to get back into the game.
After good work on the left by Freddie Ladapo, the ball was cut back to Erwin inside the penalty area but the striker’s shot was blocked by a Swindon defender.
The striker had another chance with time in the first half running out as he received the ball in space in the penalty area but Lawrence Vigouroux saved comfortably.
Robinson made two changes at the break as Ousmane Fane and Darius Osei were introduced and it was Latics who were unfortunate not to equalise minutes after the break.
The ball found Ollie Banks in the centre, he was allowed to drive forward into space but his fierce effort went inches past the goalkeeper’s post.
The midfielder almost turned provider minutes later as he provided the cross to the back post for captain Peter Clarke but his header from six yards went off target.
As Latics were just starting to build some momentum, against the run of play, Swindon extended their lead.
The ball found Ormonde-Ottewill in the centre and he fired through the legs of Ripley to put the Robins two goals ahead.
Latics were struggling to find a foothold in the game and Swindon looked the more likelier to extend their advantage.
Just after the hour mark, Clarke was forced to clear the ball off the line after a header by Lloyd James.
Ripley also had to be alert and kept the scores down as he saved efforts from Ormonde-Ottewill and Conor Thomas before making a wonder save from Obika.
The striker got his head to a cross into the box but with the ball behind him, he managed to save well.
Latics almost found a way back into the game from a set piece as Banks’ free kick from 25 yards got up and over the wall but Vigouroux managed to tip wide.
Time started to run out for Latics and Ripley again did well to keep the scores down, palming wide a Yaser Kasim free kick from 25 yards.
Time ran out for Latics and they fell to their first defeat in three two games.
Oldham Athletic: Ripley, Law, Burgess, Clarke, Dunne, Croft (Osei 46’), Banks, Green, Klok (Fane 46’), Erwin (Mckay 56’), Ladapo.
Subs not used: Kettings, Wilson, Flynn, McLaughlin.
Swindon Town: Vigouroux, Thompson, Ormonde-Ottewill, Thomas (Iandolo 88’), Kasim, Obika, Goddard (Rodgers 75’), Furlong, Delfouneso (Norris 72’), Jones, Rossi-Branco.
Subs not used: Henry, Evans, Smith, Hylton.
Goals: Oldham Athletic 0-2 Swindon Town (Obika 18’, Ormonde-Ottewill 55’)