Full-time from The Den
Both teams had great chances to win the game in the dying seconds with Millwall sub Fred Onyedinma denied by a last-ditch tackle eight yards out and then at the other end home keeper Jordan Archer brilliantly turned Nicky Law's shot onto the post before gathering at the second attempt.
Overall a draw was just about the right result between two teams who had slugged it out four times last season, including two memorable Play-Off encounters in May.
With The Lions boasting a 100 per cent winning record in the League this season and Bradford victorious on their travels so far, it was perhaps of no little surprise that this match finished all square.
Millwall boss Neil Harris was a trio of players away on international duty, and Gregg Wylde was handed his first senior start following his summer move from Plymouth Argyle in one of half a dozen changes made to the starting line-up from the midweek win over West Brom.
The visitors responded and it took the firm boot of Martin to turn the ball behind for a corner from a Jordy Hiwula delivery across the face of goal after Billy Clarke had sent him clear on the right.
An athletic save by Lions keeper Archer prevented Bradford taking the lead on nine minutes, flinging himself to push away Law's goal-bound header after James Meredith's initial cross had been headed clear by Tony Craig.
But despite enjoying the majority of possession in the opening exchanges, it was Millwall who began to ask questions of the visiting defence. A brilliant piece of skill saw Morison hold off Nat Percival-Kinght and then try his luck with a lob that was caught from under the crossbar by Doyle.
Wylde then broke past Romain Vincelot and crossed for Ben Thompson, whose shot was blocked, before David Worrall's long-range follow-up was saved as The Lions created the clearer of the chances as the game headed towards half-time.
It took a spectacular save by Doyle to deny Millwall an equaliser moments before half-time, acrobatically tipping Williams' bullet header from Worrall's deep cross over to protect the Bantams' lead going into the break.
Law had the ball in the back of the net for the visitors after a slick move, but the flag had already gone up for offside before he latched onto a threaded forward pass from Billy Clarke, while at the other end Knight-Percival pulled off a crucial block after Aiden O'Brien got into a good position.
Den boss Harris introduced Fred Onyedinma for Wylde midway through the half and the youngster was a whisker away from edging The Lions in front, but could only guide his header from a Worrall cross a foot wide of the upright.
Sub Onyedinma was denied a certain goal in the final 15 minutes when he latched onto Morison's flick, danced his way into a central position and was just about to pull the trigger when Stephen Darby stole in and cleared with a last-ditch tackle.
Bantams defender Darby so nearly undid his good work when, in a pulsating finale, he miscued a clearance that flashed dangerously close to his own goal.
But in the very last minute of injury-time, Lions right-back Mahlon Romeo played keepy-uppy by the corner flag before trying to hook the ball clear upfield. Instead, his clearance dropped sideways, was picked up by Vincelot who squared to Law, who then saw his goal-bound effort diverted onto the foot of the post by Archer and straight back into the grateful keeper's hands.
Millwall: Archer, Martin, Craig, Williams, Worrall, Thompson, Wylde (Onyedinma, 65mins), Romeo, Webster, Morison, O'Brien. Subs not used: Nelson, Butcher, Philpot, Smith, King, Chesmain.
Bookings: Martin (29mins), Craig (63mins), Romeo (66mins)
Scorer: Martin (49mins)
Bradford City: Doyle, Darby, Meredith, Law, Vincelot, Marshall, Dieng, Clarke, Hiwula (Morais, 74mins), Knight-Percival, Devine. Subs not used: Sattelmaier, Webb-Foster, Kilgallon, Boateng, Hudson.
Bookings: Devine (45mins), Clarke (90+3mins)
Scorer: Webster (42mins, og)
Tweets by @MillwallFC