Match ends, Millwall 0, Bradford City 0.
Millwall climbed up to seventh with a point against Bradford as they kept a fourth clean sheet in a row at The Den.
Lee Gregory fired over under pressure from Bradford's Reece Burke, while Devante Cole had a penalty appeal for the visitors turned down.
Millwall keeper Jordan Archer was untroubled by Tony McMahon's long-range volley just after the hour mark.
But Ben Williams had to produce a stunning save to prevent Shaun Williams firing Millwall in front from 18 yards.
Millwall manager Neil Harris told BBC Radio London:
"It was two good sides in good form at the moment facing each other.
"I think there was a lot of cancelling each other out, two game plans that were quite similar and we just didn't quite have the end product today.
"We didn't have that zip about us but we're making small steps all the time."
- 5CraigSubstituted forWebsterat 56'minutes
- 18FergusonSubstituted forOnyedinmaat 62'minutes
- 9GregorySubstituted forPaveyat 90'minutes
- 29McMahonBooked at 69mins
- 17ReidSubstituted forMarshallat 72'minutes
- 44ColeSubstituted forClarkeat 80'minutes
- Kevin Johnson
- Shots on Target
Second Half ends, Millwall 0, Bradford City 0.
Foul by Joe Martin (Millwall).
Tony McMahon (Bradford City) wins a free kick in the attacking half.
Substitution, Millwall. Alfie Pavey replaces Lee Gregory because of an injury.
Substitution, Bradford City. Billy Clarke replaces Devante Cole.
George Saville (Millwall) wins a free kick on the left wing.
Foul by Mark Marshall (Bradford City).
Foul by Shaun Williams (Millwall).
Lee Evans (Bradford City) wins a free kick in the attacking half.
Foul by Steve Morison (Millwall).
James Meredith (Bradford City) wins a free kick in the attacking half.
Aiden O'Brien (Millwall) wins a free kick on the right wing.
Foul by Tony McMahon (Bradford City).
Fred Onyedinma (Millwall) wins a free kick in the defensive half.
Foul by James Hanson (Bradford City).
Corner, Millwall. Conceded by Ben Williams.
Attempt saved. Shaun Williams (Millwall) right footed shot from the centre of the box is saved in the top left corner.
Substitution, Bradford City. Mark Marshall replaces Kyel Reid.
Shaun Williams (Millwall) wins a free kick on the left wing.