The Lions forward found the top corner with a set-piece strike after 65 minutes to secure a first away win of the season for Gary Rowett's side.
The new Millwall manager has now claimed 10 points from five matches since taking over in October.
The defeat meant it was more home woe for Swansea, who have now lost four times at the Liberty Stadium this season.
Swans boss Steve Cooper named an unchanged side for the fourth game running after a run of three games unbeaten.
The Swans' promotion-chasing form prompted Rowett to make a defensive switch. Alex Pearce came into a back three in place of midfielder Jayson Molumby while Tom Bradshaw dropped to the bench to make room for Connor Mahoney.
The Ghanaian's ball across the six-yard box fell perfectly for Nathan Dyer, but he failed to set his feet and instead saw the ball go straight between his legs and harmlessly away.
Jon Dadi Bodvarsson headed wide as Millwall recovered from their early scare and began to frustrate the Swans with their defensive organisation.
Mahoney was the next to threaten before half-time when he beat Jake Bidwell all ends up and forced Freddie Woodman into a save at his near post. Jed Wallace raced onto the loose ball but could only fire over as the teams went in level at half-time.
Cooper reacted to his side's sloppy showing by sending on Kristoffer Pieterson in place of Wayne Routledge at the interval.
The decision almost paid off when the Swedish winger turned Shaun Hutchinson and shot, but Bartosz Bialkowski raced out to block his effort to keep it goalless.
And the Swans were made to pay after Mike van der Hoorn tangled with Wallace as he threatened to get on the end of a hopeful ball downfield.
Referee Andy Davies blew for a free-kick and booked the Swansea defender, before Wallace dusted himself off and found the top corner with a curling free-kick from 20 yards out.
Davies had another big call to make in the final 10 minutes when George Byers appeared to pull Jiri Skalek down in the box to prevent him getting to Wallace's cross. But the referee waved away the Millwall protests.
Sam Surridge flicked the ball over the defence to give fellow substitute Borja Baston a clear sight on goal in the final minutes, but the Spanish striker's lob went agonisingly wide as Millwall held on to triumph.