Match ends, Oldham Athletic 2, Swindon Town 1.
Oldham strengthened their position in the play-offs with victory over Swindon, who lost ground on top spot.
The hosts stunned Mark Cooper's side with two quick first-half goals.
Mike Jones tapped in with ease for the opener, before Conor Wilkinson capitalised on a misplaced pass from Massimo Luongo to make it 2-0.
Luongo made amends for his earlier mistake to pull one back for Town with a long-range effort, but they failed to find an equaliser.
Andy Williams went close from six yards out, while Harry Toffolo's drive was stopped by Latics keeper Jake Kean.
Oldham's victory moved them up to fifth in the standings, while second-placed Swindon fell four points behind leaders Bristol City, who have a game in hand.
Oldham manager Lee Johnson told BBC Radio Manchester:
"People see the quality of the opposition - and they saw our quality as well. They saw a spirit, which was needed today. You have to show that spirit if you're going to beat a top side like Swindon.
"We have a good spirit. We recruit good people, whether that be staff members or managers or coaches, and i think that's important.
"There's no rest. You literally go home tonight, probably have to watch the DVD and then I'll be watching three or four of Colchester's games."
Swindon Town manager Mark Cooper told BBC Wiltshire:
"We got caught cold and didn't start properly. We got punished for 15 minutes.
"But for the last 15 minutes of the first and second half, it was probably the best we've played this season.
"But it was too late. We were already 2-0 down.
"I said to the boys 'you've wasted half an hour and given a team a two-goal start'."
- 3MillsBooked at 90mins
- 15WinchesterSubstituted forPoleonat 82'minutesBooked at 90mins
- 14MellisSubstituted forPhilliskirkat 56'minutes
- 17WilkinsonSubstituted forMurphyat 16'minutes
- 5StephensBooked at 90mins
- 29Rossi BrancoBooked at 7mins
- 8KasimSubstituted forSwiftat 65'minutesBooked at 73mins
- 19ThompsonBooked at 32mins
- 4LuongoBooked at 60mins
- 9SmithSubstituted forHyltonat 76'minutes
- 20ObikaSubstituted forWilliamsat 59'minutes
- Scott Duncan
- Shots on Target
Second Half ends, Oldham Athletic 2, Swindon Town 1.
Dominic Poleon (Oldham Athletic) is shown the yellow card.
Jack Stephens (Swindon Town) is shown the yellow card.
Foul by Brian Wilson (Oldham Athletic).
John Swift (Swindon Town) wins a free kick on the right wing.
George Elokobi (Oldham Athletic) wins a free kick in the attacking half.
Foul by Jordan Turnbull (Swindon Town).
Attempt saved. Jermaine Hylton (Swindon Town) header from the centre of the box is saved in the top centre of the goal.
Joseph Mills (Oldham Athletic) is shown the yellow card.
Foul by Joseph Mills (Oldham Athletic).
Ben Gladwin (Swindon Town) wins a free kick in the defensive half.
Attempt saved. Jonathan Forte (Oldham Athletic) right footed shot from the centre of the box is saved in the centre of the goal.
Corner, Swindon Town. Conceded by Jake Kean.
Attempt saved. Harry Toffolo (Swindon Town) left footed shot from the centre of the box is saved in the top centre of the goal.
Attempt saved. Massimo Luongo (Swindon Town) right footed shot from very close range is saved in the centre of the goal.
Foul by Rhys Murphy (Oldham Athletic).
Louis Thompson (Swindon Town) wins a free kick in the defensive half.
Substitution, Oldham Athletic. Dominic Poleon replaces Carl Winchester.
Substitution, Swindon Town. Jermaine Hylton replaces Michael Smith.