Curtis Main capped off a fine second half comeback from Paul Dickov’s men as Doncaster clinched the derby day bragging rights.
Rovers’ returning striker had been relatively quiet until the 69th minute when he rifled in a powerful shot at the nearpost, catching Jordan Pickford out.
And that goal complemented Reece Wabara’s earlier leveller after the full-back connected with substitute Liam Wakefield to hammer home a 59th minute equaliser.
City had gone into the lead deep into first-half stoppage time through Jon Stead’s thunderous strike.
That marked a first half full of chances for Phil Parkinson’s men with Rovers only really responding through Richie Wellens’ 13th minute low drive.
James Hanson saw a third minute half volley parried to safety by the impressive Sam Johnstone - with the Manchester United loanee returning between the sticks for Doncaster.
Filipe Morais unleashed a thunderbolt of an effort in the area after Rovers failed to clear a Bradford attack which Johnstone had no choice but to block as the winger’s second effort was also denied in the 24th minute.
The referee Kevin Wright was then called into action when City appealed for a handball in the area from left-back Cedric Evina, however, the man in the middle waved play on.
Andrew Davies then had a scare as his sliced clearance to get to the ball before Nathan Tyson went narrowly wide of Pickford’s goal.
Stead then had his head in his hands in the 34th minute after dragging his low drive just inches wide of Johnstone’s left-hand post with the visiting ‘keeper flat-footed.
A break in play was enforced as Evina laid on the floor following a City challenge before being stretchered off for the visitors.
Wakefield entered the fray for Rovers, as Evina was led down the tunnel by paramedics, moving to right-back with Reece Wabara switching to Doncaster’s vacated left spot.
Johnstone showed his class the Rovers faithful came to witness last season with a superb reflex save to his right from his own player as Luke McCullough’s header from Mark Yeates’ delivery flew towards the top corner.
Seven minutes of stoppage time ensued at Valley Parade and City certainly used it to their advantage as Stead fired in past the despairing right hand of Johnstone for 1-0.
Johnstone then prevented it from being 2-0 to the hosts with a stunning dive to his right to deny a near-post effort before Bradford flashed a dangerous delivery across goal.
After the interval, City exploded out of the blocks with a couple of early corners, however, Doncaster managed to clear.
But it was Rovers with the best chance six minutes after the restart as McCullough rose highest in the box but planted his looping header the wrong side of Pickford’s right-hand post.
Wabara then levelled proceedings for Doncaster, bundling in at the back-post.
Tempers later flared after Wellens pushed over James Meredith, with referee Wright booking the Doncaster midfielder.
Yeates tested Johnstone once more after cutting in from the left before seeing his powerful shot punched away by Rovers’ star man.
The home faithful were left stunned in the 69th minute when Main latched onto a pass and smashed home an effort at the nearpost, catching Pickford out and putting Doncaster into the lead for the first time in the game.
City continued to probe in the latter stages of the game but came up against an in-form Johnstone as Doncaster held on for maximum points and the Yorkshire derby bragging rights.
Bradford: Pickford, Darby, Meredith, Davies, Sheehan, Hanson, Knott, Yeates, Stead, Morais, Halliday. Subs: Williams, Dolan, Clarke, Kennedy, Routis, McBurnie, Mottley-Henry.
Rovers: Johnstone, Evina, Main, McCullough, Tyson, Butler, Keegan, Wellens, Wabara, Bennett, Coppinger. Subs: Marosi, Furman, McCombe, Robinson, Forrester, Wakefield, De Val.