Match ends, Walsall 2, Port Vale 0.
Sean O'Driscoll began his career as Walsall head coach with victory over Port Vale to go second in League One.
Vale's Richard Duffy had a third-minute effort disallowed for offside after goalkeeper Neil Etheridge had spilled Ryan McGivern's header.
Substitute Jordan Cook put Walsall ahead, slotting home after Jak Alnwick parried Jason Demetriou's shot.
Cook got a second from 12 yards as he reacted quickest after George Evans had kept the ball alive in the box.
Vale had decent opportunities to go ahead, Sam Kelly and AJ Leitch-Smith both having chances saved by Etheridge either side of half-time.
Walsall's Anthony Forde forced a good save from the legs of Alnwick after Cook had teed him up six minutes after the opening goal.
Walsall head coach Sean O'Driscoll told BBC WM 95.6:
"I was just pleased with the way they performed in some senses.
"I said to them before the game 'if you want to impress me, impress me with your attitude and your honesty and your commitment' - and I thought they did.
"I still think they are punching above their weight and I think the second half of the season is going to be a little bit more difficult."
- 27EvansSubstituted forMantomat 90+2'minutes
- 18MorrisSubstituted forCookat 60'minutes
- 5McGivernBooked at 85mins
- 8O'ConnorBooked at 75mins
- 19MooreSubstituted forHooperat 84'minutes
- 10DoddsSubstituted forIkpeazuat 55'minutes
- 18KellySubstituted forFoleyat 71'minutes
- Kevin Wright
- Shots on Target
Second Half ends, Walsall 2, Port Vale 0.
Andy Taylor (Walsall) wins a free kick on the right wing.
Foul by Adam Yates (Port Vale).
Substitution, Walsall. Sam Mantom replaces George Evans.
Attempt saved. Ben Purkiss (Port Vale) header from the centre of the box is saved in the bottom right corner.
Corner, Port Vale. Conceded by Paul Downing.
Corner, Port Vale. Conceded by Anthony Forde.
Foul by Anthony Forde (Walsall).
Michael O'Connor (Port Vale) wins a free kick in the defensive half.
Foul by Milan Lalkovic (Walsall).
Ryan McGivern (Port Vale) wins a free kick on the left wing.
Ryan McGivern (Port Vale) is shown the yellow card for a bad foul.
Romaine Sawyers (Walsall) wins a free kick in the attacking half.
Foul by Ryan McGivern (Port Vale).
Substitution, Port Vale. JJ Hooper replaces Byron Moore.
Goal! Walsall 2, Port Vale 0. Jordan Cook (Walsall) right footed shot from the centre of the box to the bottom right corner.
Attempt blocked. Anthony Forde (Walsall) right footed shot from outside the box is blocked.
Attempt blocked. Uche Ikpeazu (Port Vale) right footed shot from outside the box is blocked.
Foul by Adam Chambers (Walsall).