The 23-year-old broke the deadlock with 18 minutes on the clock when he managed to find the net from inside the area.
Then, despite some pressure from the home team, Walsall doubled their advantage before the break when Paul Downing headed in from close range.
Preston continued to push forward in search of a route back into the encounter after the restart, but the match was put beyond them when former Leeds United youngster James Baxendale added a third for the Saddlers.
The home outfit did manage to reduce the arrears in stoppage time through Australian defender Bailey Wright, but it proved to be a mere consolation.
The victory has moved Walsall up to 12th in the League One table.