Värdarna hade bättre chanser som Lee Gregory volleyed över och Steve Morison ledde Shane Ferguson kors bred.
Walsalls bästa chans var Florent Cuveliers långdistansstrejk som hölls av Millwalls målvakt Jordan Archer.
Substitute Aiden O'Brien sköt över från lång räckvidd när Millwall stängde gapet på play-offs till fyra poäng.
Matchen slutar, Millwall 0, Walsall 0.
Andra halvlek, Millwall 0, Walsall 0.
Försening i match Jason McCarthy (Walsall) på grund av en skada.
Foul av Steve Morison (Millwall).
Eoghan O'Connell (Walsall) vinner en frispark i anfallshalvan.
Foul av Shaun Cummings (Millwall).
Simeon Jackson (Walsall) vinner en frispark i defensiva halvan.
Hörnet, Walsall. Förföljd av Shaun Cummings.
Foul av Aiden O'Brien (Millwall).
Joe Edwards (Walsall) vinner en frispark i den defensiva halvan.
Försök missade. Kieron Morris (Walsall) vänster fotade skott från utsidan lådan är hög och bred till vänster.
Substitution, Walsall. Will Randall-Hurren ersätter Erhun Oztumer.
Försök missade. Aiden O'Brien (Millwall) höger fotade skott från utsidan lådan är hög och bred till höger.
Foul av Ben Thompson (Millwall).
Joe Edwards (Walsall) vinner en frispark på högerkanten.
Shaun Williams (Millwall) vinner en frispark i den defensiva halvan.
Foul av Simeon Jackson (Walsall).
Substitution, Walsall. Kieron Morris ersätter Florent Cuvelier.
Försök missade. Joe Edwards (Walsall) huvud från vänster sida av rutan är nära, men missar till vänster.
Joe Edwards (Walsall) visas det gula kortet för en dålig foul.
Fred Onyedinma (Millwall) vinner en frispark på högerkanten.
Foul av Joe Edwards (Walsall).
Försök blockerat. Aiden O'Brien (Millwall) höger fotade skott utanför lådan är blockerad.
Substitution, Walsall. Simeon Jackson ersätter Amadou Bakayoko.
Substitution, Millwall. Fred Onyedinma ersätter Jed Wallace.
Substitution, Millwall. Aiden O'Brien ersätter Shane Ferguson.
Steve Morison (Millwall) vinner en frispark i anfallshalvan.
Foul av Eoghan O'Connell (Walsall).
Hörnet, Millwall. Förföljd av Eoghan O'Connell.
Försök blockerat. Ben Thompson (Millwall) höger fotade skott utanför lådan är blockerad.
Hörnet, Millwall. Förföljd av Eoghan O'Connell.
Försök missade. Joe Edwards (Walsall) vänster fotade skott från vänster sida av lådan är nära, men missar till vänster.
Ben Thompson (Millwall) vinner en frispark i anfallshalvan.
Foul av Florent Cuvelier (Walsall).
Foul av Steve Morison (Millwall).
Jesaja Osbourne (Walsall) vinner en frispark i anfallshalvan.
Lee Gregory (Millwall) vinner en frispark på högerkanten.
Foul av Eoghan O'Connell (Walsall).
Andra halvan börjar Millwall 0, Walsall 0.
Första halvlek, Millwall 0, Walsall 0.
League One play-off jagade Millwall missade chansen att göra betydande mark på de sex bästa eftersom de hölls till en mållös dragning av Walsall.