Foxes chief Eriksson made four changes from the team which grabbed a 2-2 draw against Leeds on Boxing Day, but his reshuffle failed miserably as his side were outplayed in south London.
Wales striker Morison took his tally for the season to 11 and Puncheon grabbed his second goal since joining on loan from Southampton to leave the visitors on the ropes well before half-time.
Sven's men fought back from two goals down to snatch a point from Leeds, but showed little sign of a repeat performance despite playing against 10 men for more than half an hour following Alan Dunne's dismissal as they slumped to a ninth defeat on the road this term.
They actually had the first chance of the match after eight minutes but Paul Gallagher dragged his shot wide.
And four minutes later it was Millwall who took the lead when Liam Trotter crossed from the right and Morison was on hand to fire into the net.
The Lions had their tails up and continued to attack, and they deservedly went two ahead after 25 minutes when City defender Jack Hobbs was caught napping and Puncheon nipped in to prod Tony Craig's ball past Chris Kirkland.
It could have been three barely a minute later when Richie Wellens felled Jimmy Abdou just outside the area but James Henry put the free-kick over the bar.
Shell-shocked Leicester finally put a decent move together in the 40th minute with Gallagher and Greg Cunningham combining well to tee up Kyle Naughton but the on-loan Tottenham defender sent his shot wide.
They could have pulled one back before half-time but Gallagher and Andy King both blazed over.
Eriksson made two changes at the break although one was enforced with Chris Weale replacing the injured Kirkland in goal, while Darius Vassel replaced the hopelessly ineffective Roman Bednar in attack.
And just seconds into the second half Lloyd Dyer was put through one on one with Millwall keeper David Forde but scuffed his hurried finish wide.
The hosts were reduced to 10 men in the 53rd minute when stand-in skipper Dunne lunged in two-footed on Wellens on the halfway line and was shown a straight red card.
Leicester duly pushed forward but could not find a way back into the game, with substitute Steve Howard summing their afternoon up by firing their best chance wide.