Full-time from The Den
Lalkovic's 29th-minute strike proved enough to take all three points, although The Lions were desperately unlucky not to have taken a share of the spoils as they put a below-par first-half display behind them to really put in a spirited show after the break.
Sub Alfie Pavey hit the woodwork and The Lions twice had penalty appeals turned down in a frantic final 15 minutes, but it was Sean O'Driscoll's slick Saddlers who held out for a win that takes them top of the pile ahead of Burton.
Goalkeeper David Forde came in for Jordan Archer, who was suspended, to make his first League One start since 18th August, whilst centre half Sid Nelson returned to the heart of defence in place of Byron Webster.
Walsall started in confident mood and kept possession well in the opening quarter of an hour to the frustration of the home fans.
A much improved performance from The Lions saw Harris' charges begin to find their attacking rhythm after the break, and the home side got stronger as the half wore on.
Millwall were a whisker away from levelling seven minutes after the restart but were denied by a brilliant save by Etheridge. Morison was the provider, working an opening superbly on the right and slipping the ball though to O'Brien whose snap shot from close range was turned behind for a corner.
A surging run from Onyedinma came to an abrupt halt as he was about to pull the trigger thanks to an impeccably timed tackle from James O'Connor as The Lions began to build up a head of steam.
Ed Upson entered the fray with 22 minutes remaining and was soon in the thick of the action, despatching a teasing delivery that caused panic in the visiting defence, who eventually cleared.
O'Brien and Williams both had efforts blocked by a resilient Saddlers rearguard before Millwall went for broke in the last quarter of an hour.
Left-back Joe Martin made way for Alfie Pavey and Millwall really gave it a go in a bid to grab an equaliser.
The Lions had a penalty appeal turned down following a goalmouth scramble when it appeared as if Abdou was sent tumbling and as the home side kept the pressure on, O'Brien's header from a Ferguson cross hit the woodwork to deny Millwall a leveller.
However Walsall continued to look a threat on the break, and a magnificent last-ditch tackle by Beevers nicked the ball off the feet of Jordan Cook on the edge of the penalty area.
Millwall were again frustrated by the officials in injury-time; on this occasion sub Pavey looked to have been nudged in the back as he prepared to shoot, ended up on the deck but the referee waved away a loud shout for a spot-kick.
Skipper Morison was so close to grabbing the goal that Millwall deserved with seconds remaining, only to see his header from a Ferguson corner acrobatically saved by Etheridge.
Walsall's rearguard stood firm under the second-half onslaught and The Lions now have to pick themselves up for a quick turn around with a trip to Southend United in just 48 hours.
Millwall: Forde, Edwards, Martin (Pavey, 75mins), Nelson, Beevers, Abdou, Williams, Ferguson, O'Brien, Morison, Onyedinma (Upson, 68mins). Subs not used: King, Cummings, Webster, Saville, Thompson.
Booking: Upson (80mins)
Walsall: Etheridge, Demtriou, Taylor (Kinsella, 46mins), O'Connor, Downing, Chambers, Sawyers, Forde, Lalkovic (Preston, 88mins), Morris (Cook, 71mins), Evans. Subs not used: Roberts, Mantom, Baxendale, Flanagan.
Bookings: Lalkovic (46mins), Evans (52mins)
Scorer: Lalkovic (29mins)
Att: 8,364 (away 248)
Tweets by @MillwallFC