Charlie Austin’s scuffed second-half penalty was saved by keeper Adam Davies on a frustrating afternoon for Rangers, who lost their record of having scored in all their Sky Bet Championship matches this season.
Mark Warburton’s side had found the net in 31 consecutive league games and were closing in on the club record of 33.
Stoke, who had lost their previous two matches without scoring, climbed to sixth with their deserved win – a place behind QPR, whose defeat was their first in seven games.
It was an eventful day for Vrancic, who set up the first goal, conceded the penalty and then sealed Stoke’s win with a thumping right-footed strike into the bottom corner from near the edge of the box.
After Rangers midfielder Andre Dozzell had given the ball away, Vrancic threaded a perfect pass through to Campbell who sprinted away from Yoann Barbet and fired past keeper Seny Dieng.
Campbell’s 14th-minute opener came after both teams had gone close to scoring in the early stages.
Davies dived to his left to push away Ilias Chair’s header from Chris Willock’s left-wing cross.
Dieng then did even better, producing a superb double save to keep out Campbell’s shot and Steven Fletcher’s follow-up, unaware that Fletcher was offside so a goal would not have stood had the Scot netted.
But Dieng was unable to prevent Campbell scoring his third goal of the season and ending Stoke’s mini-drought.
And the Potters almost scored again seven minutes before half-time when Josh Tymon pulled the ball back from the left for Fletcher, whose shot was deflected onto the post by Barbet.
Rangers were gifted a chance to equalise just after the hour mark when Vrancic ridiculously wrestled Barbet to the ground as Stoke were defending a Chair corner.
But the resulting spot-kick by Austin was not well struck and Davies dived to his right to save.
Having been given a reprieve, the otherwise outstanding Vrancic atoned for that error in fine style by doubling his team’s lead with 12 minutes remaining.
The impressive Davies produced more saves late on, denying George Thomas and Andre Gray at point-blank and getting to strikes from Chair and Luke Amos.
Substitute Thomas also went close to pulling a goal back when he headed Chair’s left-wing corner wide of the far post.
Register for free to continue reading
Registration is a free and easy way to support our truly independent journalism
By registering, you will also enjoy limited access to Premium articles, exclusive newsletters, commenting, and virtual events with our leading journalists
Already have an account? sign in
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies