Everton breathed new life into their push for a European place with a comfortable win which increased Reading's relegation worries.
Marouane Fellaini opened the scoring after connecting with Seamus Coleman's inviting cross before Steven Pienaar doubled the lead with a 20-yard finish.
Pienaar then turned provider as the South African set up Kevin Mirallas.
Reading, who remain in the relegation zone, scored a late consolation through substitute Hal Robson-Kanu's header.
While David Moyes' side move to within two points of fifth-placed Arsenal, who play on Sunday, Reading's Premier League future remains in a precarious state.
This was their third straight league defeat, a run they must address as four of their last 10 games are against Manchester United (away), Arsenal (away), Liverpool (home) and Manchester City (home).
The only negative for Everton was the fifth-minute loss of Phil Jagielka to an ankle injury after a challenge by Adam Le Fondre which could sideline the England defender for several weeks.
Reading arrived on Merseyside with the Premier League's worst away record and without injured first-choice goalkeeper Adam Federici.
Yet for 42 minutes Brian McDermott's side frustrated a team that had been displaying all the signs of a side running out of steam at the business end of the season.
Few Everton players have suffered a bigger dip in form than Nikica Jelavic and the Croatian striker was denied his first top-flight goal since 9 December when goalkeeper Stuart Taylor, starting his first Premier League match for five years, saved well with his body in a one-on-one situation.
There was also a Premier League debut for Everton goalkeeper Jan Mucha, starting in place of the injured Tim Howard. And the Slovakian was left breathing a sigh of relief when Le Fondre hit the post from 15 yards after the Toffees defence had failed to deal with a 20th-minute corner.
But Reading's early endeavour evaporated once Fellaini opened the scoring with his 11th league goal of the season, a well placed 42nd-minute header from six yards after good work by Coleman.
Two goals in the space of six second-half minutes killed off any hopes of a Reading comeback.
It was Pienaar who made it 2-0 in the 59th minute, beating Taylor with an excellent finish into the top corner from the edge of the area after a delightful run.
Then the former Tottenham player turned provider - Pienaar's exquisite 66th-minute pass finding an unmarked Mirallas inside the Reading box and the Belgian made no mistake with his second goal in as many games.
If there is one positive McDermott can take from his side's current predicament it is that they do not give up.
Seven of Reading's previous 11 league goals before the game had arrived inside the last 10 minutes and they conjured up another late goal at Goodison Park.
Sadly for the Royals, substitute Robson-Kanu's unmarked header from Ian Harte's 83rd-minute cross proved nothing more than a consolation.
Indeed, Everton would have won by a more handsome scoreline had Harte not cleared Victor Anichebe's late attempt off the line.
Everton manager David Moyes:
"I thought we started well but the injury (to Jagielka) rocked us badly and it took us a wee while to settle after that.
"Reading were always a threat, had a few chances, hit the bar.
"That is the way the Premier League is, whoever you play, the games are tight."
Reading manager Brian McDermott:
"There was nothing in the first half but they have got major quality.
"When Adam Le Fondre had a shot and hit the post - if that goes in maybe it's different.
"It was a great goal they scored, the first goal; and the second goal, what can you say?
"But we played some great football after that and that gives me real hope going forward."