Swindon Town moved into the League One play-off places as Walsall's winless run was extended to 10 matches.
Simon Ferry scored after 57 seconds to put the visitors ahead when he lashed home a cross from Gary Roberts.
Matt Ritchie netted Swindon's second after Walsall debutant Malvind Benning blocked a shot from Miles Storey.
Andy Williams was denied by Walsall keeper David Grof when clean through, while Adam Chambers and Jamie Paterson went close for the home side.
VIEW FROM THE DRESSING ROOM
Swindon Town manager Paolo Di Canio told BBC Wiltshire:
"The start was good from us. We dominated, they didn't have one shot on target. We fully deserved it.
"We came in professionally and did our job properly. The players were very good, they did a fantastic job.
"There were 11 leaders on the field. The back four were fantastic, they didn't make any mistakes."
Walsall 01 Grof 02 Taundry 04 Butler 05 Holden 20 Benning 06 Featherstone (Bowerman - 83' ) 07 Chambers 24 Baxendale (Brandy - 55' ) 27 Mantom 09 Grigg 10 Paterson (Hemmings - 79' ) Substitutes 23 Walker 22 Downing 25 Chambers 11 Hemmings 16 Jones 12 Brandy 17 Bowerman Swindon Town 01 Foderingham 03 McEveley 05 Devera 15 Thompson 22 Ward 08 Ferry 10 Ritchie 11 Roberts (De Vita - 71' ) 33 Bostock (Thompson - 80' ) 09 Collins (Storey - 55' ) 16 Williams Substitutes 30 Bedwell 02 Archibald-Henville 19 Thompson 14 Benson 20 Storey 23 De Vita 28 Rooney