Marouane Fellaini broke the deadlock with a 42nd-minute header, with Steven Piennar’s fine goal making it 2-0 just before the hour.
Pienaar then created Everton’s third in the 66th minute with a through-ball that was converted by Kevin Mirallas, before Hal Robson-Kanu replied for the Royals.
Sunderland came from two goals down to draw 2-2 at home to Fulham in an open game at the Stadium of Light.
A Dimitar Berbatov penalty and a Sascha Riether strike put the visitors 2-0 up inside 35 minutes, but Craig Gardner immediately reduced the arrears from the penalty spot and Stephane Sessegnon claimed a 70th-minute equalizer.
Elsewhere, substitute Jack Collison gave West Ham United a 1-0 win at Stoke City, while an 85th-minute Luke Moore effort earned League Cup winners Swansea City a 1-0 victory at home to Newcastle United.