Rickie Lambert and Adam Lallana then completed the rout in the second half.
Walsall gave themselves an ideal start as Richards curled in a delightful 25-yard free kick but the lead lasted just five minutes as Lambert and Puncheon combined for the midfielder to claim his first goal for the club.
Barnard blasted his first of the game after Jose Fonte headed John Otsemobor's cross back across goal. The former Southend striker then doubled his tally with a fine touch and half-volley on the turn from Otsemobor's pass.
Twenty-six goal top scorer Lambert took until the hour mark to get in on the action as he cushioned Otsemobor's long diagonal ball to fire under Walsall keeper Rene Gilmartin. In the final moments Lallana then tapped into an empty net from substitute Michail Antonio's centre.