Goals from Amadou Bakayoko and Erhun Oztumer earned the Saddlers a first win in six matches with an absorbing victory over Oxford.
Bakayoko's tap-in put the Saddlers ahead on 34 minutes and Oztumer made it 2-0 with a lob shortly after the restart.
Alex Mowatt's 20-yard free-kick halved the deficit but the U's were unable to find a second, with home keeper Liam Roberts in exceptional form.
The Saddlers started brightly and could have taken the lead inside six minutes.
Oztumer’s free-kick was headed back across goal by Luke Leahy towards Jon Guthrie but, under pressure from John Mousinho, the ball somehow ricocheted into the grateful arms of Simon Eastwood.
The U’s gradually began to take control of proceedings, going close on 12 minutes when Aaron Martin’s downward header from Alex Mowatt’s deep free-kick was tipped over by Liam Roberts.
The home keeper twice came to the home side’s rescue in quick succession before the half-hour mark.
First, Jack Payne played the ball out to James Henry, who cut inside Leahy before seeing a firm drive smothered by Roberts from ten yards.
The stopper then produced a wonderful one-handed save to keep out Wes Thomas’ close-range header from Mowatt’s cross, when the striker appeared certain to score.
Oxford were on top, although it was Walsall who went ahead against the run of play on 34 minutes.
Oztumer’s quick free-kick caught the visiting defence napping, with Leahy delivering a low cross for Amadou Bakayoko to convert from close range.
Having played a key role in the first goal, Oztumer found the scoresheet himself three minutes into the second half.
The diminutive playmaker raced onto Leahy’s long ball and got the better of Mousinho before producing a delicate chip which Eastwood got a hand to but couldn’t keep out.
The ex-Blackburn glovesman fared better with the Saddlers’ next effort, diving full length to his left to flick over Joe Edwards’ terrific right-footed attempt.
Walsall were looking comfortable and threatened to increase the lead on 65 minutes, with George Dobson and Bakayoko each seeing goalbound shots blocked.
The U’s were given a lifeline on 70 minutes as Mowatt curled a delightful 20-yard free-kick beyond the despairing dive of Roberts and into the top corner.
With momentum behind them, Oxford could have levelled when Henry’s incisive pass put Jon Obika through on goal but Roberts rushed off his line to smother the ball at his feet.
Roberts was having a superb game and made another outstanding stop on 76 minutes to flick over Josh Ruffels’ 25-yard pile-driver which was heading for the top corner.
The Yellows piled on the pressure in the closing stages, with Obika glancing a header wide and substitute Agon Mehmeti firing off target deep in stoppage time.
Team: L Roberts, Kinsella, K Roberts, Guthrie, Leahy, Chambers, Dobson (Cuvelier 77’), Flanagan (Morris 45’), Edwards, Oztumer (T Roberts 85’), Bakayoko.
Subs not used: Gillespie, Devlin, Kouhyar, Jackson.
Attendance: 4,569 (1,125 Oxford supporters).