The Foxes had the ball in the back of the net within 10 minutes as Jamie Vardy finished off a good team move, only for the goal to be disallowed for offside.
© Getty Images
There was nothing McCarthy could do about Leicester's equaliser just a minute later, however, as a good build-up eventually saw the ball come to Danny Drinkwater, who lashed it past the keeper from the edge of the box.
There was still time in the first half for Reading to threaten again as McCleary latched on to a long ball forward to race through on goal, only to be denied by Schmeichel.
The Royals continued to push for a second goal after the break and they came within inches of getting it just five minutes into the second half when Pavel Pogrebnyak's header hit the post before being cleared by Morgan.
Leicester almost took the lead four minutes later as David Nugent's pass found Drinkwater on the edge of the six-yard box, but McCarthy stood tall to block his attempted chipped finish.
The hosts were next to come close as McAnuff's corner picked out Sean Morrison, who nodded over when unmarked inside the area.
Reading's hopes of getting a late winner took a blow with four minutes left of normal time as Mikele Leigertwood was shown a second yellow card, having only come off the bench 26 minutes previously.
There was a late sight of goal for Leicester to steal all three points at the death as Drinkwater was afforded time and space on the edge of the box, but he couldn't keep his shot down as the match ended all square.