Early Championship pacesetters Reading suffered a third successive defeat by losing 3-0 to Stoke at the Madejski Stadium.
Reading dominated most of the first half but were punished for defensive lapses when Stoke threatened on the break.
Campbell struck a post early in the second period and although Reading again showed the more attacking intentions, Stoke proved resilient and then added a third through Jacob Brown deep into stoppage time.
Reading had won seven of their eight opening matches to, at one stage, lead the second tier by seven points.
But a 3-2 defeat at Coventry, followed by a 3-0 home loss to Preston on Wednesday, had seen the gap to the chasing pack reduce substantially.
Stoke had won four of their previous eight league matches but had suffered defeat twice in their past three outings.
Reading began brightly and created two excellent chances in the opening exchanges – both falling to Benfica loanee Alfa Semedo.
Semedo's second effort was a similar header from a similar position – but Gunn again proved equal to it with another solid stop.
Stoke did not initially offer much going forward, with home centre back Lewis Gibson – on loan from Everton – having little to do on his debut.
But after John Obi Mikel had blazed high over the crossbar, Stoke took the lead – hugely against the run of play – midway through the first half.
Tomas Esteves failed to get any distance with an attempted clearing header and Campbell pounced with a half-scuffed shot.
Ten minutes before the break, Stoke increased their lead.
Gibson could have reduced the deficit shortly before the interval but miscued an Esteves free kick when arriving alone at the far post.
Esteves drove narrowly wide soon after the restart but Campbell almost made it 3-0 when his delicate curler cannoned off an upright with Rafael beaten.
As Reading pushed in search of a way back into the game, Esteves and substitute Michael Olise both saw efforts miss the target.
Sam Baldock went close towards the end, his close-range attempt dribbling past Gunn's far post, but Stoke made it 3-0 in the 95th minute when Brown seized on Gibson's poor backpass to slot home.