Leicester were denied early on when Wilfred Ndidi’s goal was overturned by VAR after Ayoze Perez was adjudged to be offside in the build-up.
Spurs broke the deadlock on 29 minutes. Son Heung-min latched on to Erik Lamela’s through-ball and flicked the ball to Harry Kane who, despite going to ground, guided the ball past Kasper Schmeichel.
Serge Aurier thought he had put Spurs 2-0 up on 64 minutes, only for the goal to be overruled for offside.
Five minutes later Leicester were level. Jamie Vardy got in down the left and his cross fell to Ricardo Pereira to finish.
Maddison won it five minutes from time, shooting from 25 yards to move Leicester up to second on 11 points, three clear of Spurs in fifth.
Leicester: 29 Sep v Newcastle (H)
Spurs: 28 Sep v Southampton (H)