Match report: Bradford City 2 Doncaster Rovers 0
Defensive lapses led to first half headed goals from Charlie Wyke and Nathaniel Knight-Percival for the hosts at Valley Parade.
And while Rovers produced another good attacking performance to keep the Bantams under pressure for long periods, they struggled with the final ball and had very few real efforts on goal.
Darren Ferguson made three changes to the side that lost to Shrewsbury in midweek. Ian Lawlor, as expected, sat out with an ankle injury, Matty Blair missed out entirely and James Coppinger dropped to the bench.
In came Marko Marosi, Ben Whiteman and, making his second start for the club, Harry Toffolo.
Rovers started the game superbly with an excellent display of possession football, smart passing and patient play. The ball was played with real composure across midfield and down the flanks, ensuring they maintained an excellent degree of control over the game.
But there were early warning signs and it took a brave, scrambled header from Rodney Kongolo to prevent Wyke from nodding in at the back post.
Rovers continued to push and almost took the lead through a rare stroke of good fortune. Alfie May did superbly well to work space and drill a low effort which Matt Kilgallon stuck out a leg to block, only to send it up and off the post.
The positive start was undone on 19 minutes - and, as has become all too familiar, there was a real element of Rovers shooting themsevles in the foot.
Adam Chicksen sent in a superb cross from the left but the towering Wyke was shown no attention, finding space between Andy Butler and Toffolo to rise and drop a header into the bottom corner.
The goal rattled Rovers and they struggled to replicate their efforts from the early part of the game.
Bradford almost hit them again within two minutes when Marosi failed to hold a header and the ball was stabbed home but referee Anthony Backhouse quickly signalled for a foul.
Rovers had a shout for a penalty when John Marquis tumbled after getting in behind Knight-Percival but Backhouse was unmoved.
The visitors began to grow back into the game as the half wore on, stringing decent passing moves together once again.
But Bradford continued to offer glimpses of threat and it needed a vital sliding tackle from Niall Mason to cut out a low pass into Wyke to prevent the big forward from scoring.
And Rovers were indeed hit again before the break as they conceded a second on 40 minutes - with defensive frailty also coming into play again.
From a corner, Knight-Percival charged in from deep, leaving Marquis in his wake before powering a header which squeezed in at the post.
Rovers started the second half as they did the first - on the front foot and packed with energy.
They worked a good early chance when Jordan Houghton slid a pass through for May, who exhchanged passes with Marquis before firing low and forcing Colin Doyle to tip wide.
Marosi had to be alert and delivered as he raced out to block superbly after Dominic Poleon raced clear and was poised to shoot.
Toffolo went for goal from 35 yards with a speculative effort that gave Doyle something to think about.
While Rovers maintaained a high amount of pressure on the hosts, forcing them deeper and deeper, they had real problems testing Doyle.
The Bradford defence was packed tight but the final ball from Rovers was not good enough to find the gaps.
Butler of all people produced a superb curling effort from the edge of the box but it drifted wide.
And Tommy Rowe sent a header on goal from a corner which needed Alex Gilliead to block on the line with his chest.
Bradford: Doyle, McMahon, Knight-Percival, Kilgallon, Chicksen, Reeves, Vincelot, Gilliead (Hendrie 90), Poleon (Patrick 60), Taylor (Law 60), Wyke. Subs: Raeder, Thompson, Field, Jones.
Rovers: Marosi, Mason, Wright, Butler, Toffolo (Coppinger 69), Houghton (Mandeville 80), Kongolo, Whiteman, Rowe, May, Marquis. Subs: Jones, Alcock, Garratt, Ben Khemis, Williams.
Referee: Anthony Backhouse (Cumbria)
Attendance: 20,430 (889 away)