The substitute struck midway through the second half of a scrappy match to condemn the Foxes to their sixth defeat on the road this season.
It meant a return to winning ways for Millwall's manager of the month Kenny Jackett, whose side's 13-match unbeaten run came to a surprise end at Ipswich last week.
Leicester actually made the livelier start and David Nugent's shot was deflected wide before Jamie Vardy teed up Andy King, whose effort was blocked.
But no-nonsense Millwall soon began to out-muscle City's flair players and there were few clear-cut chances in the first half.
On-loan striker Chris Wood had Millwall's first chance after 20 minutes but planted his header wide.
Leicester passed up a decent chance to take the lead in the 37th minute when Nugent met a free-kick from Anthony Knockaert six yards out, but the one-time England striker's shot was too close to home keeper David Forde.
Jackett's half-time team talk seemed to work wonders as his side dominated the early stages of the second half.
Dany N'Guessan and Shane Lowry had shots blocked for Millwall before winger Taylor, on at the break, fired over the crossbar. Wood got another sight of goal on the hour mark but lifted his shot too high, while Danny Drinkwater fired over the top for City.
But the deadlock was broken in the 67th minute when Liam Trotter played a neat one-two with Andy Keogh down the left and crossed for Taylor, who sidefooted from six yards out past the helpless Kasper Schmeichel.
Leicester attempted to hit back and Nugent fired wide before Forde saved Wes Morgan's stoppage-time shot, but they could not find a way past a stubborn Millwall rearguard.