Nick Powell's early header proved to be the difference as a frustrated Rovers couldn't break down a stubborn Stoke City at the bet365 Stadium.
Rovers totally bossed the game against the Potters, who held on for 84 minutes following Powell's sixth minute opener.
The playmaker, a pantomime villain for Wigan Athletic during our League One battles in 2017-18, rose highest to thump home Morgan Fox's excellent cross from the left, giving Thomas Kaminski no chance.
That was the only shot on target Michael O'Neill's side throughout the game, but Rovers couldn't find a way to turn their near 70% possession into a goal.
The closest Tony Mowbray's men did come was when Barry Douglas smashed a strike against the post in the first half.
Adam Armstrong went close to equalising early into the second half, but Stoke stood firm despite Rovers' control.
A late flurry of opportunities saw Harvey Elliott's strike saved by Joe Bursik before Armstrong's prod towards goal was deflected wide as Stoke held on.
The boss made two changes to his starting XI, with Tom Trybull and Lewis Holtby returning to the side having made an impact off the bench in midweek.
Injury kept Daniel Ayala out of the fixture, whilst John Buckley dropped to the bench.
Ayala's omission forced Bradley Johnson to take the unfamiliar position of left centre back alongside Darragh Lenihan.
In an even start, it took only six minutes for the Potters to take the lead, with Powell powering home a header from close range after Fox's perfect cross found the playmaker in the box.
Rovers responded well to the early setback and were dominating possession before working a great chance as the midway point of the first half approached.
Ryan Nyambe's rampaging run saw the Namibian race forward and deliver a ball that reached Douglas at the back post, but the strike could only crash against the base of the post before the ball was hacked clear.
Soon after and Sam Gallagher turned smartly before curling over the upright as Rovers continued to probe for an equaliser.
It was to prove a half of real frustration aganinst an organised and stubborn Stoke side on home turf.
A great chance arrived five minutes after the interval through Armstrong, who latched onto the end of Elliott's fine pass, but Joe Bursik was out quickly to block as the striker attempted to dink the goalkeeper.
A triple change saw Butterworth, Tyrhys Dolan and Stewart Downing enter the action as Mowbray freshened things up with 25 minutes remaining in a bid to add energy to the side.
Soon after though and City made a rare foray forward, but Jordan Cousins' strike flew past the target as the game opened up more following the alterations.
Time was running out for Rovers to grab a late equaliser, and Armstrong saw his effort from close range deflected off James Chester and miss the target.
Rovers threw everything at Stoke in the dying embers of the game, which included Kaminski heading up for corners, but after Elliott's effort was shovelled away and Armstrong's prod was deflected wide, time was up and Rovers were left with more away day frustration.
Next up for Mowbray's men is a home test against Sheffield Wednesday at Ewood Park on Boxing Day.
Stoke City: Bursik, Collins, Souttar, Chester (c), Fox, Powell (Oakley-Booth, 65), Cousins, Ince (Thompson, 74), Tymon, Fletcher (Vokes, 74), Brown (McClean, 65).
Unused substitutes: Noukeu, Batth, Smith, Shawcross, Verlinden.
Goal: Powell, 6.
Booked: Chester, 36.
Rovers: Kaminski, Nyambe (Buckley 78), Lenihan (c), Johnson, Douglas, Trybull (Downing, 64), Rothwell (Chapman, 85), Holtby (Butterworth, 64), Gallagher (Dolan, 64), Elliott, Armstrong.
Unused substitutes: Pears, Bell, Davenport, Carter.