Scott Sellars’ men looked on course for victory after Pedro Goncalves’ brilliant strike had flown into the top corner just after the hour-mark.
That came after Wolves have struck the crossbar on three separate occasions through Christian Herc, Dan Armstrong and Benny Ashley-Seal.
However, in the third minute of injury time Cameron John handled in the box and Campbell converted from the spot to earn Stoke an unlikely point.
On a chilly afternoon at Compton, the first chance fell to the visitors, but Harry Burgoyne was quick off his line to deny Shola Ayoola with his feet.
Despite that chance, it was Wolves who’d come closer in the half, with Sherwin Seedorf’s goal-bound strike being blocked, before Herc crashed an effort off the crossbar from range.
Just three minutes later the woodwork intervened again. This time Goncalves’ brilliant cross picked out Armstrong at the back post, but his header came back off the bar too.
Burgoyne was having a solid game between the sticks for Wolves and he got down low to palm away a vicious effort from Campbell, son of former Everton striker, Kevin.
Port Vale-bound Wilson surrendered a great chance when he ran through and shot at the feet of Stoke goalkeeper, Joe Bursik, before Burgoyne again excelled at the other end to save from Lewis Banks.
Half-Time: Wolves 0 Stoke 0
Following the interval, Wolves were back on the attack and Ashley-Seal, who’d replaced Wilson, was the next to hit the crossbar with a header from a corner.
Wolves were getting closer and Bursik denied Herc, before the breakthrough finally arrived. Goncalves picked up the ball 25 yards from goal, found his range and fired into the top corner.
That goal was the least Wolves deserved and they could have had more when Goncalves and Ashley-Seal both missed the target with following shots.
Three minutes from time Jose Xavier, who’d only been on the pitch for three minutes, thought he’d sealed the points, but his low effort was kept out by a fine, one-handed save by Bursik.
However, they were punished for not adding to that lead when the game took a final twist in added time.
Jake Dunwoody’s strike was adjudged to have hit the hand of John and a penalty was awarded, with Campbell sending Burgoyne the wrong way from the spot.
Full-Time: Wolves 1 Stoke 1
Wolves: Burgoyne, Buur, Breslin, Watt, Goodliffe, John, Armstrong (Xavier 87), Goncalves, Wilson (Ashley-Seal 86), Herc, Seedforf (Heredia).
Unused subs: Odoffin, Yang.
Stoke: Bursik, Pemberton, Banks, Sorensen, Souttar, Butler (Hill 75), Dunwoody, Shenton, Campbell, Jarvis, Ayoola (Greenidge 75).
Referee: Alan Young