Forest took the lead in the first half when Philip Zinckernagel scored from close range.
Forest then got their third after Joe Worrall headed in from a corner only for Kelechi Iheanacho to pull one back eight minutes later. Djed Spence wrapped the game up in the 61st minute with a clean strike.
This leaves Leicester without a win in their last three games and will be hoping to put that right ahead of Thursday's game against Liverpool.
Story of the Match
Forest made two changes from the side that lost at Cardiff last Saturday with Defender Joe Worrall replacing Jack Colback and on-loan Aston Villa striker Keinan Davis replacing the injured Lewis Grabban.
Leicester City made three changes from the side that laboured to a draw against Brighton the previous week, with Patson Daka and Kiernan Dewsbury-Hall being replaced with the returning Kelechi Iheanacho and Wilfried Ndidi after their stint with Nigeria at AFCON whilst Danny Ward replaced Kasper Schmeichel in goal.
It was a relatively slow start at the start of the game with both teams struggling to keep possession of the ball in the first ten minutes of the game, the first chance falling to Iheanacho who blazed a shot from close range over the bar after Luke Thomas had fed the ball to his feet at close range.
Leicester enjoyed a bright spell in the 11th minute where Ademola Lookman received the ball from a quick James Maddison corner on the edge of the area only for his strike to take a deflection off James Garner going wide of the right hand post.
19 minutes in Forest nearly took the lead after Ryan Yates found Keinan Davis with a lobbed pass inside the box only for Davis to control the ball with his chest and strike a volley onto the crossbar from the middle of the penalty area.
The hosts took the lead in the 23rd minute after Brennan Johnson's floated cross found Keinan Davis who headed the ball down to Philip Zinckernagel who found the back of the net with his knee at close range.
It was a minute later that the hosts found their second of the game after Daniel Amartey's failed pass back to Danny Ward found Brennan Johnson who slotted the ball through Ward's legs at close range.
Half an hour in, the hosts made it three after James Garner's corner found the returning Joe Worrall who's header bounced into the top right corner of the net.
In the 40th minute Keinan Davis found Djed Spence who's shot was saved at close range by Danny Ward, Leicester regrouped and hit Forest on the counter when James Maddison found Kelechi Iheanacho with a brilliant long pass for the Nigerian to jink it past goalkeeper Brice Samba and slot into the net from a tight angle.
Eight minutes into the second half Patson Daka found James Maddison on the edge of the area who struck the ball low towards the bottom right corner but it strayed wide of the right hand post. Moments later Daka again got involved in the action blazing a shot from close range over the bar.
Forest went back into the ascending seat in the 61st minute after Brennan Johnson had his strike saved by Ward only for the resulting throw in leading to Djed Spence bursting through the Leicester defence finding Philip Zinckernagel who fed the ball back to Spence who buried the ball past Danny Ward.
Forest's dominance continued as Max Lowe struck wide of the post in the 68th minute. But the pressure on Leicester was relentless for most of the match.
Leicester gained a rare chance in the 82nd minute as Daniel Amartey fired a volley from the edge of the area into the bottom right corner only for Brice Samba to produce a fantastic save.
The final chance of the game came in the 91st minute as Ricardo Pereira's strike was fired wide from a tight angle.
Leicester will be looking to put the loss aside as they look forward to a trip to Anfield midweek whilst Forest will be looking ahead as they face Huddersfield Town in the Fifth round.