The Saddlers, beaten for the first time in eight games, had skipper Andy Butler sent off in the 43rd minute for tripping McLeod and Ben Reeves made no mistake from the resulting spot-kick a minute later.
The visitors were all over Walsall in a blustery wind from the word go and only a fine save by Richard O’Donnell prevented McLeod giving them the lead in the 11th miknute, then the Dons striker lobbed just over the crossbar when Paul Downing completely missed the ball.
McLeod had another goal disallowed for offside with the Saddlers offering only token resistance, and the inevitable happened in the 30th minute when a quick through ball from Samir Carruthers saw McLeod beat the offside trap and he coolly lob the keeper to put the Dons ahead .
Just before half-time Butler brought down McLeod, was shown the red card and Reeves tucked home the penalty.
Any hope Walsall had died when McLeod broke though after 70 minutes and rifled an angled shot into the roof of the net.
Walsall striker Michael Ngoo, making his debut as a substitute after arriving on loan from Liverpool, was brought down for a penalty in the 89th minute. He took the kick himself but his effort was saved by David Martin.