Jabo Ibehre netted an 89th-minute winner to beat 10-man Scunthorpe.
Kevan Hurst crossed for Garry Thompson to head Scunthorpe in front, but their debutant defender David Mirfin was then sent off following a foul on Ibehre.
Marco Reich equalised for the Saddlers with a superb free-kick before Walsall's Alex Nicholls and Sofiene Zaaboub missed good chances to score.
But Ibehre made no mistake, exchanging passes with substitute Ishmel Demontagnac and firing home.
Bookmark with:
What are these?