City boss Lee Johnson made one change to his starting line-up, as Nicolas Eliasson replaced Korey Smith. His opposite number Steve Bruce, on the other hand, made six changes to side.
The Owls had a brilliant chance to take the lead inside four minutes. Bannan's in-swinging corner found Tom Lees at the far post. He nodded the ball back to Gary Hooper – but his header flew just over the bar.
Minutes later, Joao threatened an opening goal. The Portuguese forward worked his way into the area before his low, curling effort was stopped well by a diving Max O'Leary.
Bannan who opened the scoring in the 17th minute with a stunning left-footed drive from 25 yards out. The Scotsman unleashed a spectacular strike which arrowed into the top corner, leaving O'Leary no chance.
The visitors were struggling to create many openings but when Jay Dasilva combined with Famara Diedhiou on the edge of the box, Dasilva found himself through on goal with a chance to score – but his shot was scuffed wide.
Six minutes before the interval Bannan turned provider, clipping a delightful ball over the defence to Joao, who calmly lifted the ball over O'Leary to double the Owls' lead despite Dasilva's best efforts to clear.
Dasilva came close again for the visitors before half-time. His cross missed every man in the box but found its way to the far post and hit Cameron Dawson's upright before bouncing away from danger.
The visitors came out in the second half inspired to claw their way back in the game.
After Josh Brownhill's throw-in found its way to Andreas Weimann, whose header was matched by Dawson, Weimann carried the ball across the box and fired a shot narrowly wide.
Joao nearly grabbed a second goal with a strike emulating Bannan's in the first half – but his long-range effort skimmed the bar.
The Robins had two big opportunities to halve the deficit as the game entered the closing stages.
O'Leary's long kick was brought down well by Diedhiou, who then struck a powerful effort which Dawson was equal to.
That save did not clear the danger, however, as Brownhill was found unmarked in the box – but he hesitated before seeing his effort saved well by Dawson.