A strike from Matt Mills was enough to give Championship Reading victory over Premier League Everton and take them into the FA Cup quarter-finals.
The defender fired in low from 12 yards out when an Everton clearance from his initial goal-bound header fell back into his path.
Everton went closest when Royals keeper Alex McCarthy made a sensational one-handed save from Leon Osman.
Osman and Seamus Coleman also headed narrowly wide for the Toffees.
The home side were greeted with boos at the full-time whistle following what had been largely a passionless performance.
What would have been more disappointing for manager David Moyes and the fans is that the display was in stark contrast to the one which saw them knock out Chelsea at Stamford Bridge in the previous round.
Lying five points above the drop-zone, without midfielder Marouane Fellaini for the rest of the season and Tim Cahill for three weeks, Everton face a difficult end to the season.
Reading, meanwhile, have the play-offs in their sights and reached the last eight of the FA Cup quarter-final for only their third time. They will now face either Manchester City or Aston Villa.
The Championship outfit were a clear second best for the first 25 minutes as Everton controlled the flow of the traffic. However, the home side only produced one chance worthy of note.
Osman, one of their few bright lights, delivered a delicious ball to the far post which Coleman managed to head towards goal only for his effort to bounce into the ground and over the Reading bar.
The Royals' advances forward were dependent on their midfield picking up scraps as Everton dominated.
But the visitors had a brilliant dead-ball specialist among them in the figure of former Leeds full-back Ian Harte. And he was the provider for his side's goal when his corner found Mills, whose initial header was cleared by Osman but only back to the spot where the Royals captain was standing and he made no mistake with the follow-up.
The Berkshire side should have increased their lead a few moments later when Sylvain Distin failed to control a ball played back to him and the pacy Kebe stole in, only to place his shot into the clutches of the on-rushing Tim Howard.
Everton, like Reading, have players who can deliver accurate crosses into the area but it was a night when they missed the potency of the injured Tim Cahill.
One such occasion saw Osman head Leighton Baines' cross over the bar - it was the kind of chance Cahill would normally power in.
Reading, six points shy of a Championship play-off place, were very well organised on the night and their defence admirably coped with the Everton attack.
But they needed the largely inactive McCarthy to produce a stunning save 12 minutes before time to keep them ahead.
Baines' cross from the left was headed back in the direction of Osman, whose ferocious snapshot was swiped away by the England Under-21 stopper.
Everton were also out of luck when Louis Saha's hooked shot from a corner was blocked on the line by his own player substitute Jermaine Beckford, who would have started the match had he not been delayed by being caught up in the aftermath of a road accident.
During five minutes of stoppage time Everton desperately launched balls into the Reading area.
But Brian McDermott's side defended admirably and it was only appropriate that it was hero Mills who produced a brilliant block to prevent Mikel Arteta from providing a goal-scoring opportunity right at the last.
90:00+5:08 The referee signals the end of the game.
90:00+0:40 Jack Rodwell takes the chance to get an effort at goal. Mikele Leigertwood gets a block in.
90:00+0:16 Mikele Leigertwood challenges Victor Anichebe unfairly and gives away a free kick. Leighton Baines takes the free kick.
87:27 Substitution Jose Baxter joins the action as a substitute, replacing Phil Neville.
85:11 Substitution Simon Church is brought on as a substitute for Noel Hunt.
83:36 Free kick awarded for a foul by Brynjar Gunnarsson on Mikel Arteta. Free kick crossed left-footed by Leighton Baines, Alex
McCarthy makes a save.
82:10 Shot by Jack Rodwell from a long way out goes over the net.
81:45 Foul by Noel Hunt on Leighton Baines, free kick awarded. Leighton Baines takes the free kick.
81:07 Unfair challenge on Leon Osman by Jay Tabb results in a free kick. Indirect free kick taken by Phil Jagielka.
79:39 The assistant referee signals for offside against Jimmy Kebe. Indirect free kick taken by Tim Howard.
78:48 Substitution Jobi McAnuff leaves the field to be replaced by Hal Robson-Kanu.
78:08 Leon Osman takes a shot. Fantastic save by Alex McCarthy.
76:16 Outswinging corner taken from the left by-line by Leighton Baines, Louis Saha takes a shot. Matt Mills gets a block in.
75:18 Jay Tabb takes a shot. Phil Jagielka gets a block in. Ian Harte takes a corner.
74:11 Noel Hunt is adjudged to have handled the ball. Free kick taken by Tim Howard.
72:50 Foul by Phil Neville on Jobi McAnuff, free kick awarded. Ian Harte restarts play with the free kick.
71:14 Jay Tabb produces a left-footed shot from the edge of the box and misses to the left of the target.
70:14 Jobi McAnuff fouled by Mikel Arteta, the ref awards a free kick. Free kick taken by Matt Mills.
69:21 Ian Harte takes the inswinging corner, Jack Rodwell makes a clearance.
68:39 Ian Harte fouled by Jermaine Beckford, the ref awards a free kick. Alex McCarthy restarts play with the free kick.
67:49 Louis Saha takes a shot. Blocked by Brynjar Gunnarsson.
66:59 Shane Long has an effort at goal from deep inside the area missing to the left of the goal.
66:42 Jack Rodwell takes a shot. Mikele Leigertwood gets a block in.
64:59 Corner taken right-footed by Mikel Arteta from the left by-line to the near post, Ian Harte manages to make a clearance. Mikel
Arteta takes a inswinging corner from the left by-line played to the near post, clearance made by Shane Long.
63:55 Jimmy Kebe fouled by Leighton Baines, the ref awards a free kick. Mikele Leigertwood takes the free kick.
63:55 Booking Leighton Baines is shown a yellow card for unsporting behaviour.
63:33 Phil Jagielka fouled by Shane Long, the ref awards a free kick. Jack Rodwell takes the direct free kick.
62:51 Jimmy Kebe challenges Leighton Baines unfairly and gives away a free kick. Sylvain Distin takes the free kick.
62:17 Header from deep inside the area by Jermaine Beckford goes harmlessly over the crossbar.
58:53 Free kick awarded for an unfair challenge on Jobi McAnuff by Phil Neville. Ian Harte takes the direct free kick.
58:53 Booking Phil Neville receives a caution.
50:26 Sylvain Distin gives away a free kick for an unfair challenge on Jay Tabb. Direct strike on goal from the free kick comes
in from Ian Harte.
49:46 Foul by Jermaine Beckford on Zurab Khizanishvili, free kick awarded. Alex McCarthy takes the indirect free kick.
49:03 Victor Anichebe produces a left-footed shot from the edge of the box and misses to the right of the target.
48:08 Shot from long distance by Mikel Arteta goes wide of the left-hand post.
46:43 Foul by Leighton Baines on Jimmy Kebe, free kick awarded. Indirect free kick taken by Brynjar Gunnarsson.
46:09 Jermaine Beckford takes a shot. Save by Alex McCarthy.
45:01 The referee starts the second half.
45:01 Substitution Victor Anichebe joins the action as a substitute, replacing Seamus Coleman.
45:01 Substitution Jermaine Beckford is brought on as a substitute for Diniyar Bilyaletdinov.
45:00+0:54 The referee calls an end to the first half.
45:00+0:15 Ian Harte concedes a free kick for a foul on Seamus Coleman. Direct free kick taken by Phil Neville.
43:21 Free kick awarded for an unfair challenge on Louis Saha by Mikele Leigertwood. Mikel Arteta has an effort direct from the
free kick, Brynjar Gunnarsson gets a block in. Corner taken by Leighton Baines from the left by-line played to the near post,
Header from deep inside the penalty area by Leon Osman goes harmlessly over the crossbar.
43:21 Booking Mikele Leigertwood is cautioned by the ref for unsporting behaviour.
42:46 Noel Hunt takes a shot. Save made by Tim Howard.
42:03 Shane Long takes a shot. Blocked by Phil Jagielka.
40:33 Jimmy Kebe is caught offside. Free kick taken by Sylvain Distin.
38:47 Handball by Leon Osman. Indirect free kick taken by Matt Mills.
34:21 Free kick awarded for a foul by Jack Rodwell on Brynjar Gunnarsson. The free kick is delivered left-footed by Ian Harte from
right wing, Louis Saha manages to make a clearance.
34:21 Booking Jack Rodwell booked for unsporting behaviour.
31:47 Unfair challenge on Jack Rodwell by Mikele Leigertwood results in a free kick. Jack Rodwell takes the free kick.
30:20 Phil Jagielka fouled by Shane Long, the ref awards a free kick. Phil Jagielka restarts play with the free kick.
27:44 Jimmy Kebe takes a shot. Save by Tim Howard. Corner taken by Jobi McAnuff played to the near post.
25:29 Mikele Leigertwood takes a shot. Phil Jagielka gets a block in. Inswinging corner taken left-footed by Ian Harte,
25:29 GOAL - Matt Mills:Everton 0 - 1 Reading Matt Mills finds the net with a goal from just inside the area to the bottom left corner of the goal. Everton 0-1 Reading.
21:40 Zurab Khizanishvili challenges Leon Osman unfairly and gives away a free kick. The free kick is swung in right-footed by Mikel
Arteta, clearance made by Mikele Leigertwood.
21:40 Booking Zurab Khizanishvili is cautioned.
20:58 Louis Saha takes a shot. Blocked by Matt Mills.
20:04 Ian Harte takes a inswinging corner to the near post, clearance made by Phil Neville.
17:57 Foul by Phil Jagielka on Shane Long, free kick awarded. The free kick is delivered left-footed by Ian Harte from left wing,
clearance made by Leighton Baines.
17:14 Leon Osman takes a shot. Save by Alex McCarthy.
16:12 Free kick awarded for a foul by Mikele Leigertwood on Diniyar Bilyaletdinov. Free kick taken by Sylvain Distin.
14:39 Shane Long takes a shot. Comfortable save by Tim Howard.
11:07 Seamus Coleman has a headed effort from close range and clears the crossbar.
9:21 The referee penalises Brynjar Gunnarsson for handball. Free kick crossed right-footed by Mikel Arteta, blocked by Jimmy Kebe.
7:16 Unfair challenge on Diniyar Bilyaletdinov by Noel Hunt results in a free kick. Leighton Baines crosses the ball in from the
free kick, Zurab Khizanishvili makes a clearance. Corner taken by Diniyar Bilyaletdinov from the right by-line, save by Alex
3:22 Free kick awarded for a foul by Shane Long on Leighton Baines. Free kick taken by Tim Howard.
1:27 Shane Long takes a shot. Save by Tim Howard.
0:10 Foul by Mikele Leigertwood on Mikel Arteta, free kick awarded. Sylvain Distin takes the free kick.
0:00 The referee gets the game underway.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.