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."
Swindon Town 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 Substitutes 30 Bedwell 03 McEveley 22 Ward 08 Ferry 33 Bostock 14 Benson 28 Rooney Leyton Orient 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' ) Substitutes 19 Grainger 06 Baudry 11 Smith 14 Laird 17 Odubajo 20 Obafemi 26 Brunt