The 21-year-old striker has been held back by the City boss, but he had the home fans drooling after just seven minutes when his superb touch and turn created the space for Kyle Nix to fire home from close range.
Nix, who has now hit the net in three successive matches, latched onto Topp's neat pass and Town keeper Glyn Garner had no chance of stopping his fierce near post shot from six yards.
With Jamaican keeper Donovan Ricketts on his way to Queens Park Rangers, McCall also gave a first start to 19-year-old loan recruit Scott Loach and the youngster had few scares as City dominated the first period.
A vicious shot from Shrewsbury striker Guy Madjo flew over the City bar after 15 minutes and soon after Loach stood up well to force Chris Humphrey to shoot into the side-netting.
Topp showed his quality with a superb pass which put strike partner Peter Thorne in the clear, but the Bantams' leading scorer drilled his shot wide of the mark.
Winger Omar Daley then laid on a great chance for Topp, but his goal-bound strike was superbly blocked by Marc Tierney's desperate lunge.
City's lively display was rewarded just before the break when they capitalised on some sloppy defending.
Daley took full advantage when Garner's punch fell into his path and his 18-yard shot flew in with the aid of a slight deflection possibly off Topp.
Ex-Bradford man Dave Hibbert threw Town a lifeline when he came off the bench to head home after 48 minutes, but City responded within eight minutes.
Daley stretched the visitors with a surging run and, after his shot was blocked, Thorne swept home the loose ball from eight yards.
But there were still twists to come as Marc Pugh forced home a second for the visitors after the referee's assistant ruled that his effort had crossed the line despite the protests from Bradford.
Town looked like levelling the scores but, with City's nerves jangling, skipper David Wetherall was pushed over in the box and striker Barry Conlon converted the spot-kick six minutes from time.