Walsall bowed out of the Emirates FA Cup after James Henry scored a late winner to send Oxford United into the third round.
The Saddlers put in a spirited performance and defended brilliantly but League One Oxford showed their quality in the end.
Darrell Clarke made two changes to the team that drew 0-0 with Stevenage.
Mat Sadler and Rory Gaffney came back into the side in place of Dan Scarr and Wes McDonald.
The first 20 minutes were fairly quiet. Oxford were looking dangerous but the Saddlers had their moments.
They had a decent opportunity on 24 minutes when a corner was flicked on to Gaffney whose backheel was blocked near the line.
Walsall had plenty of crosses to deal with as Oxford looked dangerous in wide areas. Liam Roberts was forced into a save on 33 minutes when Tarique Fosu tried to bend one into the far corner.
There was plenty of action early in the second half. Roberts made a fantastic save a minute into the half when Ruffels headed from point blank range but he managed to get a strong glove to it.
Walsall had a decent chance five minutes later when Caolan Lavery found Gordon at the back post but his header hit the side-netting.
Oxford had a long spell of pressure but Clarke’s side defended manfully against the League One side.
The U’s continued to press and eventually broke the deadlock when Henry latched onto Chris Cadden’s cross with just six minutes to go.
The visitors saw the game out well to progress to the next round.
Walsall: Roberts (GK), Facey, J. Clarke ©, Sadler, Cockerill-Mollett, Holden, Kinsella, Bates, Gordon, Lavery, Gaffney.
Subs: Rose (GK), Scarr, Norman, McDonald, Guthrie, Liddle, Adebayo.