The Merseysiders had the boost of an early goal but City pegged them back before half-time.
Both sides had good chances in the second period as the windy conditions worsened but defences generally held the whip-hand.
Gareth Taylor brought a fingertip save from City keeper Donovan Ricketts after eight minutes but found the target 60 seconds later when he turned in Calvin Zola's cross.
Steven Schumacher brought a good save from Joe Hart after 15 minutes and Carlos Logan curled a left footer on to the top of the net after half-an-hour.
City's equaliser came on 34 minutes with Schumacher drilling a low shot past Hart after being set up by Jermaine Johnson.
Chris McCready was just wide for Rovers approaching half-time and Taylor was unlucky with two good efforts soon after the break before heading wide in the 63rd minute from Chris Shuker's centre.
The Bantams almost snatched the lead on 71 minutes with Logan putting an effort inches wide after being set up by Jermaine Johnson.
Tranmere went close to a second three minutes later with Ricketts making a superb save from a powerful header by John Mullin.
Mullin and Ian Goodison both missed the target late on as Tranmere looked for a winner and at the other end Jermaine Johnson saw a 20-yard effort comfortably saved by Hart.
A late flare-up resulted in cautions for Tranmere skipper Goodison and City sub substitute Eddie Johnson.
Jermaine Johnson was always a threat for the visitors and there was a solid display in central defence by skipper David Wetherall.
Taylor was best for Rovers on the night but there was also a lively contribution from Shuker and the hard-working Mullin.