Goalscoring opportunities at both ends followed but it was QPR who proved more clinical, taking the lead just before the half-hour mark when Mackie beat the offside trap to cap off a neat team move at the far post.
Reading pushed hard for an equaliser but QPR held their own and almost hit their opponents on the break in the the 59th minute when Idrissa Sylla's effort from inside the box was kept out by Ali Al-Habsi.
The home side's best chance to equalise went begging in the 70th minute when McCleary's cross was headed against the crossbar by Kermorgant.
There was still enough left on the clock for the Frenchman to head inches wide from Roy Beerens's cross in the dying stages, but there was no time for the Royals to find an equaliser.
The result leaves Reading in third place in the Championship, with QPR climbing to 15th.