Clayton Donaldson's stunning volley was enough for Brentford to move level on points with sixth-placed Swindon.
Donaldson scored his third in five games with a thunderous strike and could have had another goal but for a smart save from Wes Foderingham.
For Swindon, Chris Martin's piledriver was well stopped by Simon Moore and the loan signing also headed just wide.
Simon Ferry also glanced past the post as Paolo Di Canio's side slipped to a fifth home defeat of the season.
VIEWS FROM THE DRESSING ROOM
Swindon Town manager Paolo Di Canio told BBC Wiltshire:
"I'm angry because it was an opportunity to stay up there (in the table).
"It was the opportunity to get wood for the chimney for the winter because it is cold.
"When you keep getting three points - this is all wood for the winter period.
"We always said we have finish this season comfortable - in mid-table or maybe higher - and although we are near the play-offs, it is difficult for me to improve the players."
Swindon Town 01 Foderingham 03 McEveley 05 Devera 15 Thompson 22 Ward Booked 08 Ferry (Bostock - 62' ) 10 Ritchie 11 Roberts (Rooney - 74' ) 26 Hollands 09 Collins (Storey - 58' ) 24 C Martin Substitutes 30 Bedwell 02 Archibald-Henville 12 McCormack 33 Bostock 20 Storey 23 De Vita 28 Rooney Brentford 21 Moore Booked 03 Barron (Forrester - 71' ) 05 Craig 06 Dean 14 Logan 24 Bidwell 04 Forshaw (Kiernan - 84' ) 08 Douglas Booked 20 Diagouraga 09 Donaldson 23 Hayes (Saunders - 76' ) Substitutes 01 Lee 33 Kiernan 07 Saunders 15 Dallas 27 Oyeleke 19 Forrester 30 German