The visitors started the game well and could have taken an early lead when McAnuff raided down the left and lifted a cross into the area for Adam Le Fondre, but his header went over the bar.
The Royals took the lead just before the break when McAnuff latched onto Royston Drenthe's cross at the back post and fired home.
However, that advantage lasted just a minute as the home side won a penalty when Kaspars Gorkss brought down Macheda, and Paul Caddis fired in the spot kick.
After half time, Macheda nearly handed his side the lead when he latched onto a cross into the box from the left, and his header nearly wrong-footed McCarthy, who did well to change direction to make the stop.
The striker was proving to be a thorn in the side of the visitors and came close again. Will Packwood headed the ball across the face of goal and Macheda made contact, but his effort hit the bar.
Reading regained the lead in the 82nd minute with a free-flowing move, which ended when Chris Gunter squared the ball for McAnuff to slot home from close range for his second of the match.