Fulham's Steed Malbranque scored an extra-time winner as the Cottagers secured victory in a frantic FA Cup clash.
Junichi Inamoto's second-half goal seemed to have set up a fifth round clash with West Ham but sub Francis Jeffers produced another remarkable last minute equaliser for Everton to send this tie into extra-time.
Jeffers repeated his feat from the Goodison Park tie ten days earlier and put Everton in control heading into extra-time.
But Malbranque had the last say as his close-range side-footed effort sneaked inside the Everton post to send Fulham through.
Chris Coleman's side dominated early on as Inamoto poked a shot over the bar and Barry Hayles sent a volley wide.
Everton struggled to come to terms with a messy Loftus Road pitch but it was Luis Boa Morte who was almost guilty of turning the game sour as he produced a reckless challenge on 15 minutes.
The midfielder accused Duncan Ferguson of racist abuse ahead of this clash, but Boa Morte was lucky to go unpunished himself as he seemed to produce a two-footed lunge on Lee Carsley.
The incident soon cleared over as referee Paul Durkin decided to take no action, and it was the final minutes of the first half which produced the best goalmouth action.
Tomasz Radzinski's superb effort somehow deflected back off the post, and moments later Wayne Rooney was guilty of missing a great chance as he headed straight into the ground from four yards.
After the break Kevin Kilbane was denied a goal by a superb Moritz Volz block.
But on 57 minutes the deadlock was finally broken through Inamoto. The Japanese midfielder collected the ball 25 yards from goal and unleashed an unstoppable drive into the corner of Nigel Martyn's net.
The goal forced Everton to throw Jeffers and Steve Watson onto the field and the decision proved vital.
Carsley and Watson both came close before Jeffers grabbed his second late leveller in ten days.
The 22-year-old latched onto a header from Carsley to nod the game into extra-time.
And he almost snatched the winner too, but he first failed to divert the ball in from two yards and then sent a lobbed effort over the bar.
In extra-time the visitors continued to pile on the pressure and Jeffers almost scored again.
But against the run of play Fulham went ahead on 102 minutes. Boa Morte squared to Malbranque who was unmarked five yards out and he managed to squeeze the ball in despite a desperate attempt from Martyn.
A frantic finish saw both sides go close, but in the end Fulham managed to hold out to secure a fifth round tie with West Ham.