Leyton Orient picked up their first points of the League One season at the expense of Swindon, who have now lost three games in six days.
The Robins also lost their 28-game unbeaten home run, which spanned all competitions, stretching back to 30 August 2011.
Michael Symes headed off target and Kevin Lisbie missed from six yards for the visitors.
But Lee Cook converted Leon McSweeney's cross at the back post to settle it.
That ended Swindon's club record run of 12 home matches without conceding, which had been in place since Matt Richards scored for Shrewsbury at the County Ground on 21 February.
VIEW FROM THE DRESSING ROOM
Swindon Town manager Paolo Di Canio told BBC Wiltshire:
"There wasn't passion in this game or desire. It was an empty performance.
"I have over-estimated some of my players. I hope my players analyse themselves.
"We have very good players but football is not just about technique, it's about the brain, mentally.
"I have to convince them that they have to work a lot."
Leyton Orient manager Russell Slade told BBC London 94.9:
"It was a really solid performance. It was worth waiting for.
"We created a couple of really good chances in the first half and we could have got in front, but it's really great that one of the new boys managed to slot the all-important goal in the net.
"All of a sudden, from a gloomy start to the season where we played three and lost three, we have now won a game.
"We have a game in hand and two home games to come, so the place is a little bit brighter."
- 01 Foderingham
- 04 Flint
- 05 Devera
- 21 Bessone
- 06 Navarro (Ferry - 51' )
- 10 Ritchie
- 12 McCormack
- 18 Miller
- 09 Collins (Rooney - 65' )
- 16 Williams (Benson - 76' )
- 23 De Vita
- 30 Bedwell
- 03 McEveley
- 22 Ward
- 08 Ferry
- 33 Bostock
- 14 Benson
- 28 Rooney
- 16 Allsopp
- 03 Sawyer
- 04 Chorley Booked
- 15 Clarke
- 02 McSweeney
- 07 Cox
- 08 Griffith
- 21 Cook (Odubajo - 86' )
- 22 Rowlands
- 09 Lisbie Booked
- 10 Symes (Brunt - 79' )
- 19 Grainger
- 06 Baudry
- 11 Smith
- 14 Laird
- 17 Odubajo
- 20 Obafemi
- 26 Brunt
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +2:00
Matt Ritchie gives away a free kick for an unfair challenge on Martin Rowlands. Direct free kick taken by Leon McSweeney.87:31
The assistant referee signals for offside against Kevin Lisbie. Alan McCormack takes the direct free kick.85:38
Ryan Allsop restarts play with the free kick.85:38 Substitution
Substitution Lee Cook leaves the field to be replaced by Moses Odubajo.85:38
Free kick awarded for a foul by Paul Benson on Nathan Clarke.84:48
Joe Devera gives away a free kick for an unfair challenge on Ryan Brunt. Martin Rowlands takes the direct free kick.82:40
Effort on goal by Joe Devera from deep inside the penalty area misses to the right of the target.81:31
Dean Cox takes a shot from just outside the penalty area clears the crossbar.81:00
Paul Benson is ruled offside. Ryan Allsop restarts play with the free kick.78:30 Substitution
Substitution Ryan Brunt joins the action as a substitute, replacing Michael Symes.75:20
Corner taken by Dean Cox from the left by-line, clearance made by Tommy Miller.75:20 Substitution
Substitution Paul Benson is brought on as a substitute for Andy Williams.74:22
Free kick awarded for a foul by Adam Rooney on Leon McSweeney. Ryan Allsop restarts play with the free kick.70:57
Lee Cook fouled by Matt Ritchie, the ref awards a free kick. Free kick taken by Dean Cox.68:48
Unfair challenge on Matt Ritchie by Gary Sawyer results in a free kick. Free kick taken by Alan McCormack.66:39
Dean Cox has an effort direct from the free kick.66:39 Booking
Booking Kevin Lisbie is given a yellow card.66:07
Free kick awarded for an unfair challenge on Kevin Lisbie by Alan McCormack.65:42
Effort from the edge of the box by Adam Rooney goes wide of the right-hand upright.
Substitution James Collins goes off and Adam Rooney comes on.63:10
Matt Ritchie decides to take a short corner.61:33
Corner from the left by-line taken by Dean Cox, clearance by Tommy Miller.58:44
The assist for the goal came from Leon McSweeney.58:44 Goal scored
Goal! - Lee Cook - Swindon 0 - 1 Leyton O A goal is scored by Lee Cook from inside the six-yard box to the top left corner of the goal. Swindon 0-1 Leyton Orient.56:56
Free kick taken by Alan McCormack.56:56 Booking
Booking Ben Chorley booked.56:47
Unfair challenge on James Collins by Ben Chorley results in a free kick.55:15
Shot by Matt Ritchie. Save by Ryan Allsop.54:03
Free kick awarded for an unfair challenge on Michael Symes by Aden Flint. Gary Sawyer restarts play with the free kick.51:59
Free kick awarded for an unfair challenge on Alan McCormack by Dean Cox. Free kick taken by Wes Foderingham.51:32
Matt Ritchie takes a shot. Save by Ryan Allsop.49:42
Ryan Allsop restarts play with the free kick.49:42 Substitution
Substitution Simon Ferry on for Alan Navarro.49:42
Raffaele De Vita challenges Leon McSweeney unfairly and gives away a free kick.47:30
The official flags Kevin Lisbie offside. Alan McCormack takes the indirect free kick.45:56
Andy Williams fouled by Nathan Clarke, the ref awards a free kick. Tommy Miller takes the direct free kick.45:22
James Collins fouled by Gary Sawyer, the ref awards a free kick. Aden Flint takes the direct free kick.45:01
The game restarts for the second half.45:00 +1:06 Half time
Half Time The half-time whistle blows.43:48
Joe Devera challenges Gary Sawyer unfairly and gives away a free kick. Ryan Allsop restarts play with the free kick.43:03
Ben Chorley gives away a free kick for an unfair challenge on Andy Williams. Free kick taken by Joe Devera.38:45
Andy Williams fouled by Leon McSweeney, the ref awards a free kick. Raffaele De Vita restarts play with the free kick.37:57
Header from close range by Kevin Lisbie misses to the right of the goal.37:37
Tommy Miller concedes a free kick for a foul on Lee Cook. Free kick taken by Martin Rowlands.33:33
Free kick awarded for a foul by Michael Symes on Aden Flint. Free kick taken by Wes Foderingham.32:38
Foul by Aden Flint on Kevin Lisbie, free kick awarded. Direct free kick taken by Ryan Allsop.31:59
Shot from close range by Michael Symes misses to the right of the goal.30:43
Alan McCormack gives away a free kick for an unfair challenge on Kevin Lisbie. Direct free kick taken by Leon McSweeney.29:58
Leon McSweeney concedes a free kick for a foul on Raffaele De Vita. Wes Foderingham takes the indirect free kick.26:39
Foul by Tommy Miller on Martin Rowlands, free kick awarded. Ryan Allsop takes the direct free kick.25:59
Lee Cook has an effort at goal from the edge of the box that misses to the right of the target.25:19
The referee blows for offside. Wes Foderingham takes the indirect free kick.23:22
Free kick awarded for an unfair challenge on Kevin Lisbie by Alan McCormack. Leon McSweeney takes the direct free kick.21:58
The referee blows for offside against Kevin Lisbie. Alan McCormack restarts play with the free kick.19:08
Inswinging corner taken right-footed by Raffaele De Vita from the left by-line, clearance by Michael Symes.18:31
Raffaele De Vita takes the chance to get an effort at goal. Ben Chorley gets a block in.16:21
Aden Flint concedes a free kick for a foul on Michael Symes. Kevin Lisbie takes the free kick.12:28
James Collins fouled by Martin Rowlands, the ref awards a free kick. Raffaele De Vita crosses the ball from the free kick right-footed from left channel.7:11
Anthony Griffith challenges Raffaele De Vita unfairly and gives away a free kick. Direct free kick taken by Federico Bessone.6:36
Kevin Lisbie gives away a free kick for an unfair challenge on Aden Flint. Wes Foderingham takes the indirect free kick.5:10
Inswinging corner taken right-footed by Dean Cox from the left by-line, clearance made by Raffaele De Vita.4:40
Corner taken right-footed by Dean Cox from the right by-line, Aden Flint makes a clearance.2:55
The referee blows for offside. Indirect free kick taken by Alan McCormack.0:49
Leon McSweeney is penalised for a handball. Raffaele De Vita crosses the ball in from the free kick, save by Ryan Allsop.0:00
The game begins.
Live data and text provided by our data suppliers