A crowd of 15,151 saw an entertaining game of two halves and five goals.
Stoke took a shock lead after just 85 seconds when Mamady Sidibe and Wilson went up for a header.
The ball bounced loose and Liam Lawrence, Stoke's £500,000 signing from Sunderland, hit the ball home from 12 yards right-footed into the keeper's bottom left-hand corner. Carlo Nash got a hand to the ball but could not stop it nestling in the back of the net.
To make matters worse for Preston, they conceded again in the seventh minute, when Chris Sedgwick lost possession and Wilson was caught out again.
Sidibe had one header saved by Preston keeper Nash, but the six foot five inch striker then got in another header which Matt Hill tried to clear off the line with his head.
However, the linesman ruled that the ball had crossed the line and Sidibe was able to celebrate his fifth goal of the season.
Preston tried to force their way back into the game and David Nugent and Graham Alexander had efforts that flew narrowly wide before Brett Ormerod had a shot saved.
Preston brought on Simon Whaley for the below-par Sedgwick after 59 minutes and six minutes later Paul McKenna pulled a goal back.
Whaley's pass found McKenna who hit a 20-yard right-foot shot into the bottom left-hand corner of the net.
Nugent scored his tenth goal of the season to make it 2-2 after 74 minutes when he headed Whaley's right-foot right-wing cross into the bottom right-hand corner of the net from six yards.
Both managers made two substitutions in the closing stages and it looked as though the game was going to finish level.
But, with just two minutes to go, Wilson made up for his previous lapses at the back, when Lewis Neal's right-wing corner was missed by Stoke keeper Steve Simonsen.
Wilson, from just four yards out, managed to hook the ball into the keeper's top left-hand corner of the net, as Preston stole all three points.