Swashbuckling Doncaster Rovers got the better of spirited Bradford City to record their third straight win and move up to fourth in League One.
John Marquis made it five goals in his last five matches with expert finishes in both halves.
George Miller’s 81st minute goal set up a tense finale but Rovers held firm for a hard fought victory.
Grant McCann's side were both clinical and combative during an open and entertaining encounter against a Bantams outfit whose bright performance belied their lowly league position.
The only down side was a fifth league booking for Ben Whiteman which will rule the midfielder out of next weekend’s trip to Plymouth Argyle.
A lively first half saw chances aplenty at both ends but Rovers edged ahead courtesy of Marquis's powerful finish from 20 yards after excellent work from James Coppinger.
Bradford almost levelled immediately when Jack Payne turned cleverly in the area but shot just wide.
City defenders Nathan Knight-Percival and Anthony O'Connor both wasted free headers from corners either side of the opening goal.
At the other end Andy Butler saw a close range header saved by Richard O'Donnell and then headed the rebound wide.
Mallik Wilks also twice went close just before the interval with a cheeky flick, which was saved, and then a header, which flashed just wide, from Danny Andrew's dangerous corner deliveries.
Rovers survived a huge let-off just three minutes into the second period when Joe Wright appeared to bundle over Eoin Doyle in the box.
And the game swung firmly in the home side's favour moments later when they counter attacked with speed and precision allowing Marquis to expertly sweep home his second.
Wilks should have rounded off another sweeping counter on 64 minutes but pulled his shot wide.
Marko Marosi saved from Miller and then Doyle hit the post as the Bantams refused to lie down.
Miller set up a nervous finale when, on 81 minutes, he latched onto a long ball, beat the on-rushing Marosi and stroked it into an empty net.
The visitors pushed for an equaliser but the closest they came was when Jordan Gibson’s shot went just over.
Rovers: Marosi, Mason, Wright, Butler, Andrew, Whiteman, Kane, Blair, Coppinger (Taylor 82), Wilks (May 82), Marquis. Subs not used: Lawlor, T Anderson, J Anderson, May, Taylor, Beestin.
Bradford: O’Donnell, McGowan, O’Connor, Knight-Percival, Scannell, L O’Brien (Bruenker 90), J O’Brien, Wood, Payne (Miller 66), Ball (Gibson 66), Doyle. Subs not used: Sykes-Kenworthy, Seedorf, Isherwood, Goldthorpe.
Referee: Martin Coy
Attendance: 8,481 (1,298)