The play-off seeking Merseysiders made much of the running before deservedly taking the lead two minutes into the second period.
Then an 82nd minute penalty ensured a first defeat in 24 games for City.
It was very tight early on with neither side able to create a real opening. Eventually Antony Kay blasted well over for the home side from twenty yards after thirteen minutes.
Then Bas Savage headed well wide from a Danny Mayor cross.
Kerrea Gilbert almost got free for City but Danny Coyne remained virtually untroubled in the home goal.
Tranmere were certainly commanding much of the possession. Steve Howard fired off target in a rare Leicester attack and was wayward with another effort soon afterwards following patient build up work.
The home side could have been ahead in the 39th minute after a mistake by Michael Morrison but the shot by Savage was turned for a corner by Stockdale.
Howard saw a shot saved straight after the restart before Rovers went ahead on 47 minutes. Kaye netted with an excellent strike from the corner of the box when set up by Savage for his eighth of the season.
Tranmere continued to command. A Terry Gornell header was deflected for a corner and Savage fired across the face of the goal.
Chris Powell brought down Savage in the 82nd minute and Steve Jennings made no mistake from the spot with a shot into the right hand corner.